当前位置:网站首页>Qt est basé sur le système de gestion RFID (peut être appliqué à la plupart des systèmes de gestion RFID)
Qt est basé sur le système de gestion RFID (peut être appliqué à la plupart des systèmes de gestion RFID)
2022-06-29 01:05:00 【Plus simple que la physique】
Le système est composé de:QTCompiler,Peut être appliqué à la plupart desRFIDSystème de gestion,Réglage du port possible,Fonctions de base telles que la recherche d'articles dans le système d'entrée et de sortie!
Toutes les instructions et tous les paquets pour ce sujet ont été emballés!Accès privé requis!
Mise en œuvre du système:
Oui.RFIDIntroduction de la technologie dans le système de gestion des objets de valeur au comptoir,Lié à des marchandises précieuses au comptoirRFIDÉtiquettes,En combinaison avecRFIDL'équipement d'identification est utilisé pour surveiller、Contrôle et suivi des objets de valeur marqués,Réaliser un inventaire rapide、Suivi en temps réel et gestion intelligente des ventes..Ainsi, le processus d'entrée, de sortie et de vente des produits de valeur au comptoir est suivi et enregistré de façon exhaustive,Remplacer les modes de gestion manuelle et de numérisation des codes à barres fastidieux et inefficaces par de nouvelles méthodes automatisées, précises et efficaces.Et être capable de quitter le comptoir à courte distance(3~5M)Appelez la police.,Défaut d'obtenir l'autorisation,Détruire ou libérerRFIDAlarme de liaison de l'étiquette et des objets de valeur.
1. Conception du schéma général(Argument)
2. RFIDConception de la carte
(1) Technologie RFID;(2) Sélection des étiquettes électroniques.
3. RFIDConception du matériel de lecture et d'écriture
(1) MCU;(2) Module RF;(3) Antenne;(4) Interface de communication;(5) Interface homme - machine;(6) Circuit électrique.
4. RFIDConception de logiciels de lecture et d'écriture
(1) Initialisation du système;(2) Procédure de fonctionnement de la carte;(3) Programme LCD.
Programme de mise en oeuvre partielle:
widget.cpp:
#include <QDebug>
#include "views/widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QTextCodec *codec = QTextCodec::codecForName("utf8"); //GBK gbk
QTextCodec::setCodecForLocale(codec);
this->setWindowTitle(QString::fromLocal8Bit("Basé surRFID Le système de gestion des objets de valeur "));
setWidgetbackground(this,QPixmap(":/rcs/jjo.jpg")); //Interface principale
//setButtonbackground(ui->navButton,QPixmap(":/rcs/homeButton.png"));
setButtonbackground(ui->setButton,QPixmap(":/rcs/setButton.png")); setButtonbackground(ui->recordButton,QPixmap(":/rcs/widgetButton.png"));
_serialThread = new QThread(this);
_serialConnection = new SerialConnection();
navWidget = new homeForm(); //Interface de l'appareil
setDialog = new setting(); //Configurer l'interface
m_cAlarmRecord = new CAlarmRecord(); // Interface historique
//connect(ui->navButton,SIGNAL(clicked()),navWidget,SLOT(show()));
connect(ui->setButton,SIGNAL(clicked()),setDialog,SLOT(show())); connect(ui->recordButton,SIGNAL(clicked()),m_cAlarmRecord,SLOT(show()));
connect(navWidget,SIGNAL(Record_Signal(int,quint8)),m_cAlarmRecord,SLOT(AddRecord(int,quint8))); //Stockage des données historiques
connect(navWidget,SIGNAL(DispSensor1_Signal(QString)),this,SLOT(DispSensor1_Slot(QString))); //Affichage de l'interface principale
connect(navWidget,SIGNAL(DispSensor2_Signal(QString)),this,SLOT(DispSensor2_Slot(QString))); //Affichage de l'interface principale
connect(navWidget,SIGNAL(DispSensor3_Signal(QString)),this,SLOT(DispSensor3_Slot(QString))); //Affichage de l'interface principale
/*Connexion série*/
connect(_serialThread, SIGNAL(started()),_serialConnection, SLOT(readData()));
connect(_serialThread, SIGNAL(finished()), _serialConnection, SLOT(deleteLater()));
connect(_serialConnection,SIGNAL(sendnewdata(QByteArray)),navWidget,SLOT(RecvSensorData(QByteArray)));
connect(navWidget,SIGNAL(sensorCtrol(QByteArray)),_serialConnection,SLOT(SendCmdData(QByteArray)));
connect(_serialConnection,SIGNAL(connectionStateChanged(int)),setDialog,SLOT(DispConnectState_Slot(int)));
connect(setDialog,SIGNAL(StartUartDev_Signal(int)),_serialConnection,SLOT(openConnection(int)));
connect(setDialog,SIGNAL(CloseUartDev_Signal()),_serialConnection,SLOT(closeConnection()));
_serialConnection->moveToThread(_serialThread);
_serialThread->start();
/* Minuterie de mise à jour de l'état */
m_tmDate = new QTimer(this);
connect(m_tmDate,SIGNAL(timeout()),this, SLOT(DispDate_Slot()));
m_tmDate->start(1000); //1s
}
Widget::~Widget()
{
if (_serialThread)
{
if (_serialThread->isRunning())
{
_serialThread->quit();
_serialThread->wait();
}
delete _serialThread;
_serialThread = NULL;
}
delete ui;
}
// Définir l'arrière - plan du formulaire
void Widget::setWidgetbackground(QWidget *widget,QPixmap image)
{
QPalette palette;
palette.setBrush(backgroundRole(),QBrush(image));
widget->setPalette(palette);
}
// Définir l'arrière - plan du bouton
void Widget::setButtonbackground(QPushButton *button,QPixmap picturepath)
{
button->setFixedSize(picturepath.width(),picturepath.height());
button->setIcon(QIcon(picturepath));
button->setFlat(true); button->setIconSize(QSize(picturepath.width(),picturepath.height()));
button->setToolTip("");
}
void Widget::DispSensor1_Slot(QString _strValue)
{
ui->m_DispValue_1->setText(_strValue);
}
void Widget::DispSensor2_Slot(QString _strValue)
{
ui->m_DispValue_2->setText(_strValue);
}
void Widget::DispSensor3_Slot(QString _strValue)
{
ui->m_DispValue_3->setText(_strValue);
}
/*Afficher la date*/
void Widget::DispDate_Slot(void)
{
QDateTime dateTime(QDateTime::currentDateTime());
ui->m_DispDate->setText(dateTime.toString("yyyy-MM-dd hh:mm:ss ddd"));
}
Setting.cpp
#include "views/setting.h"
#include "ui_setting.h"
#include "views/widget.h"
setting::setting(QWidget *parent) :
QDialog(parent),
ui(new Ui::setting)
{
ui->setupUi(this);
QTextCodec *codec = QTextCodec::codecForName("utf8"); //GBK gbk
QTextCodec::setCodecForLocale(codec);
this->setWindowTitle(QString::fromLocal8Bit("Paramètres"));
this->setWindowOpacity(0.9); // L'arrière - plan et les éléments définissent l'effet de transparence
this->setModal(true); // Définir comme interface modale
}
setting::~setting()
{
delete ui;
}
void setting::on_m_ExeConnectUART_clicked()
{
int com;
com = ui->m_GetComPort->currentIndex();
if(ui->m_ExeConnectUART->text() == "Connexion")
{
emit StartUartDev_Signal(com); // Connexion du signal de port série
}
else
{
emit CloseUartDev_Signal(); // Déconnecter le signal du port série
ui->m_ExeConnectUART->setText(QString::fromLocal8Bit("Connexion"));
ui->m_DispComState->setText(QString::fromLocal8Bit("Déconnecter"));
}
}
void setting::DispConnectState_Slot(int state)
{
switch (state)
{
case 0: //Disconnected
ui->m_DispComState->setText(QString::fromLocal8Bit("Déconnecté"));
break;
case 1:
ui->m_DispComState->setText(QString::fromLocal8Bit("Connexion en cours"));
break;
case 2:
ui->m_ExeConnectUART->setText(QString::fromLocal8Bit("Déconnecter"));
ui->m_DispComState->setText(QString::fromLocal8Bit("Connexion réussie"));
break;
case 3:
ui->m_DispComState->setText(QString::fromLocal8Bit("La connexion a échoué"));
break;
default:
break;
}
}
int setting::updateDeviceList()
{
int count = ui->m_GetComPort->count();
while(ui->m_GetComPort->count())
{
ui->m_GetComPort->removeItem(0);
}
serial.findSerialDevices();
ui->m_GetComPort->addItems(serial.portsList());
qDebug() << count;
return count;
}
边栏推荐
- 【图像处理】基于matlab实现图像曲线调整系统
- How to handle a SIGTERM - how to handle a SIGTERM
- 戴口罩人脸数据集和戴口罩人脸生成方法
- 最新Justnews主题源码6.0.1开心版+社交问答插件2.3.1+附教程
- 卷绕工艺与叠片工艺的对比
- [gym 102423]-elven efficiency | thinking
- 机器视觉系统的配件及工作过程
- 3D, point cloud splicing
- Redis是什么
- What is the difference between the histology and western blotting 两种方法都是进行组织染色的
猜你喜欢

【leetcode】17. Letter combination of telephone number

Operation level smart campus system source code smart campus applet source code + electronic class card + face recognition system

Redis常用命令手册

Comparison between winding process and lamination process

【图像增强】基于matlab人工多重曝光融合AMEF图像去雾【含Matlab源码 1916期】

Mask wearing face data set and mask wearing face generation method

Two fresh students: one is practical and likes to work overtime, and the other is skilled. How to choose??
![[staff] accent mark, gradually stronger mark and gradually weaker mark](/img/5d/5738bd5503d7ed0621932f901c2e8d.jpg)
[staff] accent mark, gradually stronger mark and gradually weaker mark

EasyCVR播放视频出现卡顿花屏时如何解决?

Difference between applying for trademark in the name of individual and company
随机推荐
be based on. NETCORE development blog project starblog - (13) add friendship link function
After easycvr creates a new user, the video access page cannot be clicked. Fix the problem
Bmfont make bitmap font and use it in cocoscreator
What is the reason why easycvr can't watch the device video when it is connected to the home protocol?
不同的子序列问题I
流媒体集群应用与配置:如何在一台服务器部署多个EasyCVR?
戴口罩人臉數據集和戴口罩人臉生成方法
How to calculate the income tax of foreign-funded enterprises
一条update语句到底加了多少锁?带你深入理解底层原理
Accessories and working process of machine vision system
Misunderstanding of innovation by enterprise and it leaders
UVM: message mechanism
Go1.18 new feature: discard strings Title Method, a new pit!
Uvm:field automation mechanism
Roson's QT journey 80 qurl class
【图像处理】基于matlab实现图像曲线调整系统
Streaming media cluster application and configuration: how to deploy multiple easycvr on one server?
IT治理方面的七个错误,以及如何避免
请问基金是否靠谱,安全吗
Mapbox GL loading local publishing DEM data