Commit bc7e0a4c authored by baizhengyuan's avatar baizhengyuan

feat:五码合一初版

parent 03539293
......@@ -214,7 +214,7 @@ void datacheck(void)
RS485_TX_finish = 0;
}
}
else if(zhenduanflag == 1)
else if(zhenduanflag == 1)//五码合一写入
{
if(BarCode[0] == 0x59 && BarCode[1] == 0x44)
{
......@@ -309,7 +309,7 @@ void datacheck(void)
}
}
}
else if(zhenduanflag == 2)
else if(zhenduanflag == 2)//五码合一校验
{
if(BarCode[0] == 0x59 && BarCode[1] == 0x44)
{
......
......@@ -104,7 +104,7 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
if(RS485_TX_finish == 0)
{
LINE_OUT_NEG_09 = 1;
if(LINE_OUT_NEG_09 == 1)
if(LINE_OUT_NEG_09 == 1)//等于0 不发送485
{
if(connectbleFlag == 0)
{
......@@ -225,6 +225,29 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
}
}
else
{
if(zhenduanflag == 0)
{
// R485_Send_Line_0x47(MENU_CHECK_STEP);
// RS485_User_Tx_Data();
// comparestart = 0;
}
else if(zhenduanflag == 1)
{
// R485_Send_0x47();
// comparestart = 0;
Can_Send_0x794();
}
else if(zhenduanflag == 2)
{
R485_Sendcheck_0x47();
}
else
{
;
}
}
// else
// {
......@@ -374,7 +397,7 @@ void Sys_Run_Mode_100ms_Tasks_Group(void)
}
Display_PageNum();
can_submit();
//can_submit();
// Freln_Duty_HZ_Service();
if(RS485_send_time<0xFFFFFFFF)
......@@ -794,6 +817,11 @@ void can_submit(void)
data9[4] = 2;
init_CAN_Frame(&m_msg9, 0x0C11FFD1, 8, 1, data9); // 总电池电量
// data9[0] = 0x03;
// data9[1] = 0x22;
// data9[2] = 0xF1;
// data9[3] = 0x87;
// init_CAN_Frame(&m_msg9, 0x794, 8, 0, data9); // 总电池电量
data5[4] = 1500 & 0xFF;
data5[5] = (1500 >> 8) & 0xFF;
......@@ -1515,3 +1543,94 @@ void can_submit(void)
can_mid(m_msg18);
}
}
//诊断
CAN_Frame_st_t m_msg20;
uint8_t data20[8] = {0, 0, 0, 0, 0, 0, 0, 0};//0x794
uint32_t Can_Send_0x794(void)
{
uint32_t u32sendendflag = 0;
switch (zhenduansendStep)
{
case 0:
data20[0] = 0x02;
data20[1] = 0x10;
data20[2] = 0x03;
init_CAN_Frame(&m_msg20, 0x794, 8, 0, data20); //诊断
can_mid(m_msg20);
break;
case 1:
data20[0] = 0x2;
data20[1] = 0x27;
data20[2] = 0x01;
init_CAN_Frame(&m_msg20, 0x794, 8, 0, data20); //诊断
can_mid(m_msg20);
break;
case 2:
data20[0] = 0x06;
data20[1] = 0x27;
data20[2] = 0x02;
data20[3] = key_array[0];
data20[4] = key_array[1];
data20[5] = key_array[2];
data20[6] = key_array[3];
init_CAN_Frame(&m_msg20, 0x794, 8, 0, data20); //诊断
can_mid(m_msg20);
break;
case 3:
// data20[0] = 0x2E;
// data20[1] = 0xF1;
// data20[2] = 0x8A;//1 供应商名称
// memcpy(data20+3,barcode_Msg,5);
// init_CAN_Frame(&m_msg20, 0x794, 8, 0, data20); //诊断
// can_mid(m_msg20);
struct {
uint8_t msgType;
uint8_t offset;
uint8_t length;
} messages[] = {
{0x8A, 0, 5}, // 供应商名称
{0x87, 6, 15}, // 物料
{0x8A, 21, 5}, // 供应商编码
{0x99, 26, 8}, // 软件编程日期
{0x8C, 34, 6} // 序列号
};
int numMessages = sizeof(messages) / sizeof(messages[0]);
for (int i = 0; i < numMessages; i++) {
sendCANMessage(data20, barcode_Msg, messages[i].msgType, messages[i].offset, messages[i].length);
}
case 4:
LINE_OUT_NEG_01 = 0;
LINE_OUT_NEG_02 = 0;
LINE_OUT_NEG_03 = 0;
LINE_OUT_NEG_04 = 0;
break;
default:
break;
}
// if(zhenduansendStep != 4)
// {
// u32sendendflag = can_mid(m_msg20);
// }
//return u32sendendflag;
}
void sendCANMessage(uint8_t *data20, uint8_t *barcode_Msg, uint8_t msgType, uint8_t offset, uint8_t length)
{
data20[0] = 0x2E;
data20[1] = 0xF1;
data20[2] = msgType;
memcpy(data20 + 3, barcode_Msg + offset, length);
init_CAN_Frame(&m_msg20, 0x794, 8, 0, data20); // 初始化CAN帧
can_mid(m_msg20); // 发送CAN消息
}
\ No newline at end of file
......@@ -27,4 +27,7 @@ uint16_t Sys_Get_ms_Rolling_Counter(void);
void init_CAN_Frame(CAN_Frame_st_t* msg, uint32_t can_id, uint8_t can_len, uint8_t can_frame_ide, const uint8_t* data);
void can_mid(CAN_Frame_st_t Msg);
void can_submit(void);
void sendCANMessage(uint8_t *data20, uint8_t *barcode_Msg, uint8_t msgType, uint8_t offset, uint8_t length);
uint32_t Can_Send_0x794(void);
#endif
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment