当前位置:网站首页>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;
}
边栏推荐
- 【leetcode】1719. Number of schemes for reconstructing a tree
- [eight part essay] MySQL
- 搭建单机 nacos 负载均衡ribbon 轮询策略 权重2种方式
- GUI Graphical user interface programming example - color selection box
- 请问基金是否靠谱,安全吗
- If you can play these four we media operation tools, the sideline income of 6000+ is very easy
- UVM: message mechanism
- Is it safe to open an account on the flush
- Reasons for high price of optical fiber slip ring
- 企业和IT领导者对创新的误解
猜你喜欢

《Reinforcement learning based parameters adaption method for particleswarm optimization》代码复现

Browser cache library design summary (localstorage/indexeddb)

Précautions d'installation et d'utilisation des joints rotatifs

Program environment and pretreatment

674. longest continuous increasing sequence

Streaming media cluster application and configuration: how to deploy multiple easycvr on one server?

Nodejs安装和下载

Cocoscrreator dynamically switches skeletondata to update bones

Pytorch -- use and modification of existing network model

【温度检测】基于matlab GUI热红外图像温度检测系统【含Matlab源码 1920期】
随机推荐
Is l1-031 too fat (10 points)
基于.NetCore开发博客项目 StarBlog - (13) 加入友情链接功能
立创eda学习笔记:铺铜死区?孤岛?死铜?
Comparison between winding process and lamination process
Drawing ECG curve with WPF
Blazor University (34)表单 —— 获得表单状态
卷绕工艺与叠片工艺的对比
[eight part essay] MySQL
IT治理方面的七个错误,以及如何避免
浏览器缓存库设计总结(localStorage/indexedDB)
Redis是什么
大智慧上开户是安全的吗
请问基金是否靠谱,安全吗
接雨水系列问题
[MCU club] design of GSM version of range hood based on MCU [physical design]
Redis common command manual
【leetcode】17. Letter combination of telephone number
UI高度自适应的修改方案
[proteus simulation] 4x4 matrix keyboard interrupt mode scanning + nixie tube display
【Proteus仿真】4x4矩阵键盘中断方式扫描 +数码管显示