# 1,功能描述 1,发送自身io状态,发送端口:out_mcpu_N_statu_port 2,根据调度完成消息执行开门动作 数据库存在状态为2 的指令,且雷达检测到有信号,执行开门 3,车辆开走后,门自动关闭后,删除对应指令 门自动关后, 数据库队列表存在该出口的指令,且指令状态为2(已到出口), 且雷达检测到无信号,删除指令 # 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,部署