1,功能描述
1,发送自身io状态,发送端口:in_mcpu_N_statu_port
2,根据调度完成消息执行开门动作
接收消息:指令反馈队列的指令表单,如果是停车指令且表单正常,则关门
消息队列:close_door_N_queue 需判断内容中入口号
执行关门动作
2,使用平台:
linux x64 / linux-arm
3,业务逻辑
出口单片机发送数据格式:前四位为头(@501),后三位为尾($\0\0),中间为json格式消息体
楚天出入口单片机通信协议_jansson
一、楚天项目出入口传感器设备由单片机控制,负责采集光电开关,出口雷达,内门控制等。
二、单片机使用tcp通信,jansson协议。
单片机:TCP server
ip:192,168,1, (120+(DISPATCH_DIRECTION-1)*10+TERMINAL_ID
DISPATCH_DIRECTION:入口为1, 出口为2。
TERMINAL_ID:0~5分别对应0~5的出入口编号。
例如,A1入口:192.168.1.120B2出口:192.168.1.133
端口:默认40000(40000~40007都行,8个端口可以连接8个client)
上位机:TCP client
ip:192.168.1.xxx (须相同网段)
三、jansson协议模板
例如:B1出口
单片机-》上位机
{"TerminalID": 2, "ProcessControl": 0, "CarHeightStatusPassing": 0, "OutsideDoorStatus": 3,
"DispatchDirection": 2, "InPutDi": {"Di0": 0, "Di4": 0, "Di1": 0, "Di5": 0, "Di9": 0,
"Di2": 0, "Di3": 0, "Di6": 0, "Di7": 0, "Di8": 0, "Di10": 0, "Di12": 0, "Di11": 0, "Di13": 0,
"Di14": 0, "Di15": 0}, "OutsideExistenceFlag": 1, "InsideExistenceFlag": 1,
"OverBorderStatus": 1, "DispatchFinishFlag": 0, "ProcessStatus": 40,
"CarHeightStatusCurrent": 0, "OutsideDoorControl": 0, "ResetFlag": 0, "StopFlag": 0}
上位机-》单片机
{"TerminalID": 2, "DispatchDirection": 2, "OutPutDo": {"Do0": 0, "Do1": 0, "Do2": 0,
"Do3": 0,"Do4": 0, "Do5": 0, "Do6": 0, "Do7": 0}, "ProcessControl": 0}
四、jansson协议解释
TerminalID:0~5分别对应0~5的出入口编号。
DispatchDirection:入口为1, 出口为2。
OutsideExistenceFlag:出口是否有障碍物,1有0无
ProcessControl:
PROCESS_CONTROL_UNKNOWN= 0,//未知
PROCESS_CONTROL_FULL_AUTO= 1,//全自动,
PROCESS_CONTROL_MANUAL= 2,//手动
PROCESS_CONTROL_AUTO_CLOSE= 3,//半自动关门
PROCESS_CONTROL_AUTO_OPEN= 4,//半自动开门
PROCESS_CONTROL_TO_READY= 5,//切换到待机
入口需要上位机控制关门,那么 "ProcessControl": 3
出口需要上位机控制开门,那么 "ProcessControl": 4
特殊情况下可以手动设置8个输出量, "ProcessControl": 2
4,编译
5,部署