#include <stdio.h>
#include <string.h>
char getcheck_sum(char *p, int len)
{
char sum = 0;
while(len--)
{
sum += *p;
p++;
}
return sum;
}
int main()
{
unsigned char data[] = {0x68, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x68,
0x14, 13,
0x09, 0x01, 0x08, 0x09,
0x00,//设备类型,0:发送特征电路设备
//0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//发送特征电流时间
0,30,14,25,7,24,//2024-7-25 14:30:00
0x00,0x00,//特征位宽,默认600ms
0x00,0x00,0x00,//特征信号开关频率,默认833.33Hz
0x02,//特征信息码长度
0xAA,0xE9,//特征信息码,默认AAE9
0x00,0x00,//高电平脉宽,400us
0x00,0x00,//低电平脉宽, 800us
//预留
0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
0x00,0x16};
int bit_len = 600; //特征位宽 ,ms
int freq = 83333; //特征信号开关频率
int send_code = 0xAAE9; //特征信息码
int high_time = 400; //高电平脉宽, us
int low_time = 800; //低电平脉宽, us
int len = sizeof(data);
int i;
unsigned int val;
data[9] = len - 12;
memcpy(&data[21], &bit_len, 2);
memcpy(&data[23], &freq, 3);
data[27] = (send_code>>8)&0xFF;
data[28] = send_code&0xFF;
memcpy(&data[29], &high_time, 2);
memcpy(&data[31], &low_time, 2);
for(i = 10; i < len - 2; i++)
{
data[i] += 0x33;
}
data[len-2] = getcheck_sum(data, len - 2);
for(i = 0; i < len; i++)
{
val = data[i];
printf("%02X ", val);
}
return 0;
}