当前位置:网站首页>Windows下快递投递柜、寄存柜的软件初探
Windows下快递投递柜、寄存柜的软件初探
2020-11-08 12:11:00 【osc_id7cvef1】
最近又有人再询问快递柜软件开发的事情。闲来没事就琢磨琢磨。先了解下快递柜电子部分的组成。
硬件的简略功能是主控机通过显示触摸屏和外部交互,通过监控抓取和录制图像,通过网络模块和服务器通讯,通过锁控板来开锁和检测锁开关状态。
现在主要是主控机的软件,主控机可以为工业主板运行windows或其他操作系统。
软件主要功能如下:
一、用户端口
1、快递寄件2、快递取件 3、个人中心
二、快递员端口
1、快递存件 2、快递取件
三、管理端口
看起来不算复杂。不过硬件部分的锁控板以前没有用过,就丛网上搜了下,资料不多。在电商平台搜了下,有些厂家卖这东西。看了介绍,基本上都是通过串口发送命令,锁控板就开锁或者查询锁的开合情况,也有是通过网口给锁控板发送指令的,但形式都差不多。网口的价格要高点。
下面研究下这个锁控板的驱动编程。
串口收发数据,前几年弄过,采集一个仪表数据到计算机。记得当时用Vb开发,界面很好设计,串口通讯用的是一个控件mscomm。只需要设置好参数,打开串口,就可以收发数据,根据协议分析数据,不用时关闭串口就可以了。在MFC中没有用过串口通讯。先看看锁控板。经过比较选了这种锁控板。
型号还算全,8、12、16、20、24门的都有。某宝链接https://item.taobao.com/item.htm?id=581917013199
通过串口通讯开锁和查询锁状态。在网上搜了有关VS 串口通讯的有关文章。方法也有多种,有通过ActiveX控件通讯,有调用Windows的API函数封装类来操作。调用Windows的API函数封装类的方法比较灵活,结合网上别人的代码比较方便。再来看锁控板的指令形式,可以简化为发送一串十六进制的数据,格式如下
这里说的锁控板地址一般为1。多块的时候,硬件可以通过拨码开关设置为其它值2,3等,这里填入N就是对硬件设置为N的电路板发送指令。锁编号是锁控板上锁的通道号,填入M就开M号锁,数据最后两字节是校验。这样就明确了,通过《锁控板地址》区分不同的板,再通过《锁编号》区分和锁板连接的不同锁。这样的话如果是60门的柜子,用5块12门的锁控板,发送指令就容易了,先确定门锁连接的板子的编号,再定锁连接的板子上的编号,填入数据到上面格式的数据帧中,计算校验后更新校验数据,通过串口发送出去,对应门就开了。
使用VS2010 MFC编程,采用按钮控件组的方法,视图如下
代码如下
void CrockdemoDlg::OnButton(UINT nID)
{
DWORD rtlen;
BOOL fright=TRUE;
UINT CrcCheck,temp1;
BYTE rbuf[100]={0};
BYTE sbuf[] = {0xAA,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x0A};
if(f_common)
{
UpdateData(TRUE);
sbuf[1]=setadd;//锁控板的地址
sbuf[3]=nID-IDC_BUTTON1+1; //开锁控板的第几个锁
CrcCheck=Crc16(sbuf,7);
sbuf[7]=BYTE(CrcCheck%256);
sbuf[8]=BYTE(CrcCheck/256);
serial.SendData(sbuf,9);
}
else
{
MessageBox(_T("数据接收错误,请检查线有没连接好"),_T("提示"), MB_OK);
}
}
经过测试能顺利的开锁。经过上面试验,已了解锁控板的驱动,整个软件开发也更心里有数。
关于串口通讯,网上有些资料不错,可以参考下
Windows 串口通信简单示例
https://blog.csdn.net/horizons_kong/article/details/54412339
VC++实现串口通信的应用程序设计
https://blog.csdn.net/crjmail/article/details/91043991
好了今天先写到这里。
版权声明
本文为[osc_id7cvef1]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4348626/blog/4708077
边栏推荐
- 笔试面试题目:求丢失的猪
- VC++指定目录下文件按时间排序输出
- Windows10关机问题----只有“睡眠”、“更新并重启”、“更新并关机”,但是又不想更新,解决办法
- Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
- 一文剖析2020年最火十大物联网应用|IoT Analytics 年度重磅报告出炉!
- Ubuntu20.04下访问FTP服务器乱码问题+上传文件
- Harbor项目高手问答及赠书活动
- Xamarin deploys IOS from scratch Walterlv.CloudKeyboard application
- 原创 | 数据资产确权浅议
- 笔试面试题目:求缺失的最小正整数
猜你喜欢

The progress bar written in Python is so wonderful~

Analysis of ArrayList source code

Ali! Visual computing developer's series of manuals (with internet disk link)

最全!阿里巴巴经济体云原生实践!(附网盘链接)

TCP协议如何确保可靠传输

如何将 PyTorch Lightning 模型部署到生产中

Python basic syntax variables

python基本语法 变量

蘑菇街电商交易平台服务架构及改造优化历程(含PPT)

年轻一代 winner 的程序人生,改变世界的起点藏在身边
随机推荐
C language I blog assignment 03
2天,利用下班后的4小时开发一个测试工具
C language I blog assignment 03
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
We interviewed the product manager of SQL server of Alibaba cloud database, and he said that it is enough to understand these four problems
Flink从入门到真香(6、Flink实现UDF函数-实现更细粒度的控制流)
211 postgraduate entrance examination failed, stay up for two months, get the byte offer! [face to face sharing]
From a friend recently Ali, Tencent, meituan and other P7 Python development post interview questions
一个方案提升Flutter内存利用率
11 server monitoring tools commonly used by operation and maintenance personnel
Service architecture and transformation optimization process of e-commerce trading platform in mogujie (including ppt)
Don't look! Full interpretation of Alibaba cloud's original data lake system! (Internet disk link attached)
第二次作业
为 Docsify 自动生成 RSS 订阅
Automatically generate RSS feeds for docsify
新的目标市场在哪里?锚定的产品是什么?| 十问2021中国企业服务
Analysis of ArrayList source code
The most complete! Alibaba economy cloud original practice! (Internet disk link attached)
[data structure Python description] use hash table to manually implement a dictionary class based on Python interpreter
python小工具:编码转换