当前位置:网站首页>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
边栏推荐
- 一文读懂机器学习“数据中毒”
- Rust: performance test criteria Library
- 你的云服务器可以用来做什么?云服务器有什么用途?
- Q & A and book giving activities of harbor project experts
- This year's salary is 35W +! Why is the salary of Internet companies getting higher and higher?
- 为什么 Schnorr 签名被誉为比特币 Segwit 后的最大技术更新
- Python基础语法
- Flink的sink实战之一:初探
- OR Talk NO.19 | Facebook田渊栋博士:基于蒙特卡洛树搜索的隐动作集黑盒优化 - 知乎
- 2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
猜你喜欢
Analysis of istio access control
Istio traffic management -- progress gateway
VC + + specified directory file output by time
“1024”征文活动结果新鲜出炉!快来看看是否榜上有名?~~
Q & A and book giving activities of harbor project experts
On monotonous stack
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Second assignment
阿里撕下电商标签
临近双11,恶补了两个月成功拿下大厂offer,跳槽到阿里巴巴
随机推荐
VC++指定目录下文件按时间排序输出
原创 | 数据资产确权浅议
为 Docsify 自动生成 RSS 订阅
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Python Gadgets: code conversion
我们采访了阿里云云数据库SQL Server的产品经理,他说了解这四个问题就可以了...
临近双11,恶补了两个月成功拿下大厂offer,跳槽到阿里巴巴
We interviewed the product manager of SQL server of Alibaba cloud database, and he said that it is enough to understand these four problems
维图PDMS切图软件
笔试面试题目:求缺失的最小正整数
YGC问题排查,又让我涨姿势了!
攻防世界之web新手题
Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用
Flink的sink实战之一:初探
Analysis of ArrayList source code
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
This paper analyzes the top ten Internet of things applications in 2020!
浅谈单调栈
当Kubernetes遇到机密计算,看阿里巴巴如何保护容器内数据的安全!(附网盘链接)
Harbor项目高手问答及赠书活动