当前位置:网站首页>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
边栏推荐
- Analysis of istio access control
- C language I blog assignment 03
- 仅用六种字符来完成Hello World,你能做到吗?
- A scheme to improve the memory utilization of flutter
- Python basic syntax variables
- Enabling education innovation and reconstruction with science and technology Huawei implements education informatization
- IQKeyboardManager 源代码看看
- Powershell 使用.Net对象发送邮件
- The progress bar written in Python is so wonderful~
- YGC问题排查,又让我涨姿势了!
猜你喜欢

Share the experience of passing the PMP examination

Web novice problem of attacking and defending the world

Close to the double 11, he made up for two months and successfully took the offer from a large factory and transferred to Alibaba

Analysis of ArrayList source code

用科技赋能教育创新与重构 华为将教育信息化落到实处

211考研失败后,熬夜了两个月拿下字节offer!【面经分享】

Win10 terminal + WSL 2 installation and configuration guide, exquisite development experience

PMP考试通过心得分享

Istio traffic management -- progress gateway

What can your cloud server do? What is the purpose of cloud server?
随机推荐
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
入门级!教你小程序开发不求人(附网盘链接)
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Automatically generate RSS feeds for docsify
Win10 terminal + WSL 2 installation and configuration guide, exquisite development experience
python基本语法 变量
next.js实现服务端缓存
Tidb performance competition 11.02-11.06
Where is the new target market? What is the anchored product? |Ten questions 2021 Chinese enterprise service
laravel8更新之速率限制改进
仅用六种字符来完成Hello World,你能做到吗?
2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
PMP experience sharing
Istio流量管理--Ingress Gateway
年轻一代 winner 的程序人生,改变世界的起点藏在身边
阿里撕下电商标签
Hematemesis! Alibaba Android Development Manual! (Internet disk link attached)
虚拟机中安装 macOS 11 big sur
PMP考试通过心得分享
最全!阿里巴巴经济体云原生实践!(附网盘链接)