C
ccweifen
Unregistered / Unconfirmed
GUEST, unregistred user!
最近要写一个与考勤仪通讯的程序,硬件厂方提供以下资料:
上下位通讯语句均采用以下统一的格式传递指令:
呼叫 + 类型 + 机号 + 内容 + 校验 + 结束码
---- 上位呼叫码: 00H + 00H + 00H + 00H + 5fH + 5fH
---- 下位呼叫码: 00H + 00H + 00H + 00H + 6fH + 6fH + 99H (版本号)
---- 机号: 1 byte (有效值 1 ~ 255)
---- 内容: 长度 + 数据段
(长度: 2 byte, 16进制, 高位在前, 低位在后,表示整个内容的长度)
---- 校验: 类型+机号+内容累加和(1 byte, 8位)
---- 上位结束码: 8fH + 8fH
---- 下位结束码: 9fH + 9fH
---- 以上指令中只有内容部分可缺省
类型:
1.考勤仪检测
上位类型: 50H + 50H ( + 机号 + 校验 )
下位应答: 60H + 60H ( + 机号 + 校验, 表示听到呼叫)
2.写管理员密码(考勤仪上的密码)
上位类型: 5bH + 5bH ( + 机号 + 密码内容 + 校验 )
下位应答: 6bH + 6bH ( + 机号 + 校验)
****
密码内容 = (00,06) + 密码(4 byte, 8位数)
3.读考勤仪内登录数据
上位请求类型: 5cH + 5cH ( + 机号 + 校验 )
下位发送类型: 6cH + 6cH ( + 机号 + 数据内容1 + 校验)
上位确认收到: 5dH + 5dH ( + 机号 + 数据内容2 + 校验)
下位确认清除: 6dH + 6dH ( + 机号 + 校验 )
****
数据内容1 = (全长) + 若干个数据记录 (10个记录每次)
10*X+2
数据记录 = X * (卡号 + 年 + 月 + 日 + 小时 + 分钟+状态)
4byte 1byte 1byte 1byte 1byte 1byte 1byte
数据内容2 = (00,04)+ X(2byte,16进制,高位在前,低位在后)
与硬件没打过交道,不知该如何下手,请高手指点迷津.
如果有类似或相近的程序最好(如果合适再加300)
上下位通讯语句均采用以下统一的格式传递指令:
呼叫 + 类型 + 机号 + 内容 + 校验 + 结束码
---- 上位呼叫码: 00H + 00H + 00H + 00H + 5fH + 5fH
---- 下位呼叫码: 00H + 00H + 00H + 00H + 6fH + 6fH + 99H (版本号)
---- 机号: 1 byte (有效值 1 ~ 255)
---- 内容: 长度 + 数据段
(长度: 2 byte, 16进制, 高位在前, 低位在后,表示整个内容的长度)
---- 校验: 类型+机号+内容累加和(1 byte, 8位)
---- 上位结束码: 8fH + 8fH
---- 下位结束码: 9fH + 9fH
---- 以上指令中只有内容部分可缺省
类型:
1.考勤仪检测
上位类型: 50H + 50H ( + 机号 + 校验 )
下位应答: 60H + 60H ( + 机号 + 校验, 表示听到呼叫)
2.写管理员密码(考勤仪上的密码)
上位类型: 5bH + 5bH ( + 机号 + 密码内容 + 校验 )
下位应答: 6bH + 6bH ( + 机号 + 校验)
****
密码内容 = (00,06) + 密码(4 byte, 8位数)
3.读考勤仪内登录数据
上位请求类型: 5cH + 5cH ( + 机号 + 校验 )
下位发送类型: 6cH + 6cH ( + 机号 + 数据内容1 + 校验)
上位确认收到: 5dH + 5dH ( + 机号 + 数据内容2 + 校验)
下位确认清除: 6dH + 6dH ( + 机号 + 校验 )
****
数据内容1 = (全长) + 若干个数据记录 (10个记录每次)
10*X+2
数据记录 = X * (卡号 + 年 + 月 + 日 + 小时 + 分钟+状态)
4byte 1byte 1byte 1byte 1byte 1byte 1byte
数据内容2 = (00,04)+ X(2byte,16进制,高位在前,低位在后)
与硬件没打过交道,不知该如何下手,请高手指点迷津.
如果有类似或相近的程序最好(如果合适再加300)