|
|
@@ -277,7 +277,7 @@ void seed_init_send_info(uint8_t device_type,char *factory)
|
|
|
switch (device_type)
|
|
|
{
|
|
|
case WEIGHT_DEVICE:
|
|
|
- if(weight_init_eft.status != 0)
|
|
|
+ if(weight_init_eft.status != 0 && eft_weightDev_priority == false)
|
|
|
{
|
|
|
if(weight_init_eft.step.read_k_flag != 0)
|
|
|
{
|
|
|
@@ -285,18 +285,6 @@ void seed_init_send_info(uint8_t device_type,char *factory)
|
|
|
vk_canbuf[5] = 0xf1;
|
|
|
vk_canbuf[6] = 0xf3;
|
|
|
}
|
|
|
- // else if(weight_init.step.sn_flag != 0) //EFT前板没有反馈。SN和版本
|
|
|
- // {
|
|
|
- // vk_canbuf[0] = 0xF8;
|
|
|
- // vk_canbuf[5] = 0xf1;
|
|
|
- // vk_canbuf[6] = 0xf3;
|
|
|
- // }
|
|
|
- // else if(weight_init.step.version_flag != 0)
|
|
|
- // {
|
|
|
- // vk_canbuf[0] = 0xf9;
|
|
|
- // vk_canbuf[5] = 0xf1;
|
|
|
- // vk_canbuf[6] = 0xf3;
|
|
|
- // }
|
|
|
can_send_msg_normal((unsigned char *)&vk_canbuf, 8, vk_can_id);
|
|
|
}
|
|
|
break;
|
|
|
@@ -356,8 +344,13 @@ void Set_Seed_Weight_Par(uint8_t device_type,char *factory)
|
|
|
break;
|
|
|
//重量校准
|
|
|
case Weight_Kg:
|
|
|
+ {
|
|
|
+ int weight_kgCal = 0;
|
|
|
+ weight_kgCal = weight_order.order_con2 + weight_order.order_con3 * 65536;
|
|
|
+
|
|
|
can_buf[0] = 0xF2;
|
|
|
- memcpy(&can_buf[1], &weight_order.order_con2,2);
|
|
|
+ memcpy(&can_buf[1], &weight_kgCal,4);
|
|
|
+ }
|
|
|
break;
|
|
|
case Weight_Reserve:
|
|
|
break;
|
|
|
@@ -433,47 +426,100 @@ void Set_Seed_Weight_Par(uint8_t device_type,char *factory)
|
|
|
}
|
|
|
break;
|
|
|
case WEIGHT_DEVICE:
|
|
|
- if(weight_order.type != 0)
|
|
|
- {
|
|
|
- can_buf[1] = 0x00;
|
|
|
+ if(eft_weightDev_priority == true)
|
|
|
+ {
|
|
|
+ can_buf[1] = 0x00; //D1 - D4
|
|
|
can_buf[2] = 0x00;
|
|
|
can_buf[3] = 0x00;
|
|
|
can_buf[4] = 0x00;
|
|
|
- can_buf[5] = 0xf1;
|
|
|
- can_buf[6] = 0xf3;
|
|
|
- can_buf[7] = 0;
|
|
|
+ can_buf[5] = 0xF1;
|
|
|
+ can_buf[6] = 0xF3;
|
|
|
+ can_buf[7] = 0x00; //D5
|
|
|
|
|
|
switch (weight_order.type)
|
|
|
{
|
|
|
+ //去皮校准
|
|
|
case Weight_Peer:
|
|
|
- can_buf[0] = 0xF6;
|
|
|
+ can_buf[0] = 0xE1;
|
|
|
break;
|
|
|
+ //重量校准
|
|
|
case Weight_Kg:
|
|
|
- can_buf[0] = 0xF7;
|
|
|
- can_buf[1] = (weight_order.order_con2 >> 8) & 0xff;
|
|
|
- can_buf[2] = weight_order.order_con2 & 0xff;
|
|
|
+ can_buf[0] = 0xE2;
|
|
|
+ memcpy(&can_buf[1], &weight_order.order_con2,2);
|
|
|
break;
|
|
|
case Weight_Reserve:
|
|
|
break;
|
|
|
+ //恢复出厂设置
|
|
|
case Weight_Bcak:
|
|
|
- can_buf[0] = 0xF5;
|
|
|
+ can_buf[0] = 0xF4;
|
|
|
break;
|
|
|
+ //称重传感器K值
|
|
|
case Weight_Set_K:
|
|
|
- can_buf[0] = 0xFC;
|
|
|
- can_buf[1] = eft_info.seed_k[0];
|
|
|
- can_buf[2] = eft_info.seed_k[1];
|
|
|
- can_buf[3] = eft_info.seed_k[2];
|
|
|
-
|
|
|
- can_buf[weight_order.order_con1] = weight_order.order_con2 & 0xff;
|
|
|
-
|
|
|
+ z70weight.buf[0] = 0xE3;
|
|
|
+ if(weight_order.order_con1 == 1)
|
|
|
+ z70weight.info.k1 = weight_order.order_con2;
|
|
|
+ else if(weight_order.order_con1 == 2)
|
|
|
+ z70weight.info.k2 = weight_order.order_con2;
|
|
|
+ else if(weight_order.order_con1 == 3)
|
|
|
+ z70weight.info.k3 = weight_order.order_con2;
|
|
|
+ else if(weight_order.order_con1 == 4)
|
|
|
+ z70weight.info.k4 = weight_order.order_con2;
|
|
|
+
|
|
|
+ memcpy(&can_buf,&z70weight.buf[0],8);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
- can_send_msg_normal((unsigned char *)&can_buf, 8, SEND_EFT_INFO);
|
|
|
+ can_send_msg_normal((unsigned char *)&can_buf, 8, 0x88BB);
|
|
|
HAL_Delay(10);
|
|
|
weight_order.type = 0;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(weight_order.type != 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ can_buf[1] = 0x00;
|
|
|
+ can_buf[2] = 0x00;
|
|
|
+ can_buf[3] = 0x00;
|
|
|
+ can_buf[4] = 0x00;
|
|
|
+ can_buf[5] = 0xf1;
|
|
|
+ can_buf[6] = 0xf3;
|
|
|
+ can_buf[7] = 0;
|
|
|
+
|
|
|
+ switch (weight_order.type)
|
|
|
+ {
|
|
|
+ case Weight_Peer:
|
|
|
+ can_buf[0] = 0xF6;
|
|
|
+ break;
|
|
|
+ case Weight_Kg:
|
|
|
+ can_buf[0] = 0xF7;
|
|
|
+ can_buf[1] = (weight_order.order_con2 >> 8) & 0xff;
|
|
|
+ can_buf[2] = weight_order.order_con2 & 0xff;
|
|
|
+ break;
|
|
|
+ case Weight_Reserve:
|
|
|
+ break;
|
|
|
+ case Weight_Bcak:
|
|
|
+ can_buf[0] = 0xF5;
|
|
|
+ break;
|
|
|
+ case Weight_Set_K:
|
|
|
+ can_buf[0] = 0xFC;
|
|
|
+ can_buf[1] = eft_info.seed_k[0];
|
|
|
+ can_buf[2] = eft_info.seed_k[1];
|
|
|
+ can_buf[3] = eft_info.seed_k[2];
|
|
|
+
|
|
|
+ can_buf[weight_order.order_con1] = weight_order.order_con2 & 0xff;
|
|
|
+
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ can_send_msg_normal((unsigned char *)&can_buf, 8, SEND_EFT_INFO);
|
|
|
+ HAL_Delay(10);
|
|
|
+ weight_order.type = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -594,43 +640,43 @@ void check_dev_type_link(void )
|
|
|
|
|
|
}
|
|
|
|
|
|
-void DM_obs_test( void )
|
|
|
-{
|
|
|
- static uint32_t time_50hz = 0;
|
|
|
- static uint32_t time_49hz = 0;
|
|
|
- static uint32_t time_48hz = 0;
|
|
|
- static uint32_t time_47hz = 0;
|
|
|
- uint8_t can_buf[8] = {0};
|
|
|
- if(Check_Timer_Ready(&time_50hz,20))
|
|
|
- {
|
|
|
- memcpy(&can_buf[0],&planep.QuaterQ0,4);
|
|
|
- memcpy(&can_buf[4],&planep.QuaterQ1,4);
|
|
|
- can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2345);
|
|
|
- }
|
|
|
-
|
|
|
- if(Check_Timer_Ready(&time_49hz,20))
|
|
|
- {
|
|
|
- memcpy(&can_buf[0],&planep.QuaterQ2,4);
|
|
|
- memcpy(&can_buf[4],&planep.QuaterQ3,4);
|
|
|
- can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2346);
|
|
|
- }
|
|
|
-
|
|
|
- if(Check_Timer_Ready(&time_48hz,50))
|
|
|
- {
|
|
|
- memcpy(&can_buf[0],&planep.pos_x,4);
|
|
|
- memcpy(&can_buf[4],&planep.pos_y,4);
|
|
|
- can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2347);
|
|
|
- }
|
|
|
-
|
|
|
- if(Check_Timer_Ready(&time_47hz,50))
|
|
|
- {
|
|
|
- memcpy(&can_buf[0],&planep.pos_z,4);
|
|
|
- memcpy(&can_buf[4],&planep.pos_flag,4);
|
|
|
- can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2348);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
+// void DM_obs_test( void )
|
|
|
+// {
|
|
|
+// static uint32_t time_50hz = 0;
|
|
|
+// static uint32_t time_49hz = 0;
|
|
|
+// static uint32_t time_48hz = 0;
|
|
|
+// static uint32_t time_47hz = 0;
|
|
|
+// uint8_t can_buf[8] = {0};
|
|
|
+// if(Check_Timer_Ready(&time_50hz,20))
|
|
|
+// {
|
|
|
+// memcpy(&can_buf[0],&planep.QuaterQ0,4);
|
|
|
+// memcpy(&can_buf[4],&planep.QuaterQ1,4);
|
|
|
+// can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2345);
|
|
|
+// }
|
|
|
+
|
|
|
+// if(Check_Timer_Ready(&time_49hz,20))
|
|
|
+// {
|
|
|
+// memcpy(&can_buf[0],&planep.QuaterQ2,4);
|
|
|
+// memcpy(&can_buf[4],&planep.QuaterQ3,4);
|
|
|
+// can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2346);
|
|
|
+// }
|
|
|
+
|
|
|
+// if(Check_Timer_Ready(&time_48hz,50))
|
|
|
+// {
|
|
|
+// memcpy(&can_buf[0],&planep.pos_x,4);
|
|
|
+// memcpy(&can_buf[4],&planep.pos_y,4);
|
|
|
+// can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2347);
|
|
|
+// }
|
|
|
+
|
|
|
+// if(Check_Timer_Ready(&time_47hz,50))
|
|
|
+// {
|
|
|
+// memcpy(&can_buf[0],&planep.pos_z,4);
|
|
|
+// memcpy(&can_buf[4],&planep.pos_flag,4);
|
|
|
+// can_send_msg_normal((unsigned char *)&can_buf, 8, 0x2348);
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// }
|
|
|
/**
|
|
|
* @file update_device_type_data
|
|
|
* @brief 更新设备信息
|
|
|
@@ -683,7 +729,6 @@ void update_device_type_data(void)
|
|
|
|
|
|
if(Check_Timer_Ready(&time_50hz,_50_HZ_))
|
|
|
{
|
|
|
- //tes_mmm();
|
|
|
//好盈电调水泵
|
|
|
Hobbywing_esc_func();
|
|
|
//播撒器
|
|
|
@@ -744,6 +789,16 @@ void update_device_type_data(void)
|
|
|
Dev.Weight.k4 = 0;
|
|
|
Dev.Weight.warn = eft_info.watering_warn_status >> 4 & 0xff;
|
|
|
break;
|
|
|
+ case FAC_LIFTWEIGHT:
|
|
|
+ Dev.Weight.mode = 0;
|
|
|
+ Dev.Weight.kg = eft_info.weight;
|
|
|
+ Dev.Weight.rate = 0;
|
|
|
+ Dev.Weight.k1 = eft_info.seed_k[0];
|
|
|
+ Dev.Weight.k2 = eft_info.seed_k[1];
|
|
|
+ Dev.Weight.k3 = eft_info.seed_k[2];
|
|
|
+ Dev.Weight.k4 = 0;
|
|
|
+ Dev.Weight.warn = (LiftingWeight_warning << 8) & 0xff00;
|
|
|
+ break;
|
|
|
case FAC_QIFEI:
|
|
|
Dev.Weight.mode = weight_vkinfo.mode;
|
|
|
Dev.Weight.kg = weight_vkinfo.weight / 10;
|
|
|
@@ -856,6 +911,8 @@ void update_device_type_data(void)
|
|
|
case FAC_VK:
|
|
|
break;
|
|
|
case FAC_EFT:
|
|
|
+ Dev.L_pump1.warn = Lpump1.error_status;
|
|
|
+ Dev.L_pump1.rpm = Lpump1.rpm;
|
|
|
break;
|
|
|
case FAC_HW_ESC:
|
|
|
Dev.L_pump1.warn = EscMsg[1].warn_flag;
|
|
|
@@ -872,6 +929,8 @@ void update_device_type_data(void)
|
|
|
case FAC_VK:
|
|
|
break;
|
|
|
case FAC_EFT:
|
|
|
+ Dev.L_pump2.warn = Lpump2.error_status;
|
|
|
+ Dev.L_pump2.rpm = Lpump2.rpm;
|
|
|
break;
|
|
|
case FAC_HW_ESC:
|
|
|
Dev.L_pump2.warn = EscMsg[2].warn_flag;
|