diff --git a/ETH/UdpServer/User/main.c b/ETH/UdpServer/User/main.c index 4bd8511..558b476 100644 --- a/ETH/UdpServer/User/main.c +++ b/ETH/UdpServer/User/main.c @@ -133,7 +133,7 @@ int main(void) bootInterfaceInit(); appMonitorInit(); - testAppInit(); +// testAppInit(); feedWatchdog(); dataProcessingAppInit(); ethernetInterfaceInit(); diff --git a/ETH/UdpServer/app/app_data_processing.c b/ETH/UdpServer/app/app_data_processing.c index 608a962..ac34883 100644 --- a/ETH/UdpServer/app/app_data_processing.c +++ b/ETH/UdpServer/app/app_data_processing.c @@ -2,27 +2,27 @@ #include #include -// ?????? +// ¶¨Ê±Æ÷½á¹¹Ìå Timer data_processing_timer; Timer iim6234_timer; Timer rm3100_timer; Timer rs232_output_timer; -StrInfNavigationOutput nav_data = {0}; // ?????0 +StrInfNavigationOutput nav_data = {0}; // ³õʼ»¯ÎªÈ«0 UnInfProtocolFrame yis321_data = {0}; GGA_Data gga_data1 = {0}; VTG_Data vtg_data1 = {0}; THS_Data ths_data1 = {0}; -// ??????? +// ¶¨Òå°´Å¥½á¹¹Ìå uint8_t remote_tcp_ip[4] = {192,168,10,7}; -/* ????????????? */ +/* ½«¶È·Ö¸ñʽת»»ÎªÊ®½øÖƶÈÊý */ double nmea_to_decimal(double dm, char direction) { double degrees = (int)(dm / 100); @@ -31,7 +31,7 @@ double nmea_to_decimal(double dm, char direction) return (direction == 'S' || direction == 'W') ? -decimal : decimal; } -// ??GNGGA?? +// ½âÎöGNGGAº¯Êý uint8_t parse_GGA(const char* data, GGA_Data* gga) { char buffer[256]; @@ -55,8 +55,8 @@ uint8_t parse_GGA(const char* data, GGA_Data* gga) field_index++; } - // ?????????????????? - if (field_index > 5) { // ?????????? + // ¶È·Öתʮ½øÖÆ£¨ÔÚ½âÎöÍê³Éºóͳһ´¦Àí£© + if (field_index > 5) { // È·±£ÒѽâÎöµ½¾­¶È×Ö¶Î gga->latitude = nmea_to_decimal(gga->latitude, gga->lat_dir); gga->longitude = nmea_to_decimal(gga->longitude, gga->lon_dir); } @@ -64,22 +64,22 @@ uint8_t parse_GGA(const char* data, GGA_Data* gga) return 0; } -// ??GNVTG?? +// ½âÎöGNVTGÓï¾ä uint8_t parse_VTG(const char* data, VTG_Data* vtg) { char buffer[256]; strncpy(buffer, data, sizeof(buffer)); - buffer[sizeof(buffer)-1] = '\0'; // ??????? + buffer[sizeof(buffer)-1] = '\0'; // È·±£×Ö·û´®ÖÕÖ¹ char* token = strtok(buffer, ","); int field_index = 0; while (token != NULL) { switch (field_index) { - case 1: vtg->course_true = atof(token); break; // ???? - case 3: vtg->course_magnetic = atof(token); break; // ???? - case 5: vtg->speed_knots = atof(token); break; // ????? - case 7: vtg->speed_kmh = atof(token); break; // ???km/h? - case 9: vtg->mode = token[0]; break; // ???? + case 1: vtg->course_true = atof(token); break; // Õæ±±º½Ïò + case 3: vtg->course_magnetic = atof(token); break; // ´Å±±º½Ïò + case 5: vtg->speed_knots = atof(token); break; // ËÙ¶È£¨½Ú£© + case 7: vtg->speed_kmh = atof(token); break; // ËÙ¶È£¨km/h£© + case 9: vtg->mode = token[0]; break; // ģʽָʾ } token = strtok(NULL, ","); field_index++; @@ -87,7 +87,7 @@ uint8_t parse_VTG(const char* data, VTG_Data* vtg) return 0; } -// ??GNTHS?? +// ½âÎöGNTHSÓï¾ä uint8_t parse_THS(const char* data, THS_Data* ths) { char buffer[128]; @@ -98,13 +98,13 @@ uint8_t parse_THS(const char* data, THS_Data* ths) while (token != NULL) { switch (field_index) { - case 1: // ?????????341.3344? + case 1: // º½Ïò×ֶΣ¨Ê¾ÀýÖµ£º341.3344£© ths->heading = atof(token); break; - case 2: // ?????????A? + case 2: // ģʽ×ֶΣ¨Ê¾ÀýÖµ£ºA£© ths->mode = token[0]; break; - // ???????????????? + // ÆäËû×ֶΣ¨Ð£ÑéºÍµÈ£©¸ù¾ÝÐèÇóÀ©Õ¹ } token = strtok(NULL, ","); field_index++; @@ -118,18 +118,18 @@ uint8_t parse_THS(const char* data, THS_Data* ths) void nmeaProcess(void *signal_id) { - (void)signal_id; // ???????????????? + (void)signal_id; // ±ê¼Ç±äÁ¿ÎªÒÑʹÓ㬱ÜÃâ±àÒëÆ÷¾¯¸æ // printf("AccX:%f,AccY:%f,AccZ:%f,",Acc[0],Acc[1],Acc[2]); -// printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//??????????????? +// printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//ʹÓô®¿Ú´òÓ¡¼ÓËÙ¶È£¬½ÇËÙ¶ÈÊý¾Ý - // if (!nmea_validate_checksum(&nema_output1.buffer[nema_output1.active_buf^1][0])) //???? + // if (!nmea_validate_checksum(&nema_output1.buffer[nema_output1.active_buf^1][0])) //УÑé´úÂë // { // printf("NMEA CRC Failed"); // return; // } - // ???3??????"GGA"/"VTG"/"THS" + // ÅжϺó3¸ö×Ö·ûÊÇ·ñΪ"GGA"/"VTG"/"THS" if(strncmp(&nema_output1.buffer[3], "GGA", 3) == 0) { nema_output1.frame_ready = 1; } @@ -140,11 +140,11 @@ void nmeaProcess(void *signal_id) nema_output1.frame_ready = 3; } else - { // ???????? + { // ·ÇÄ¿±êЭÒéÔòÖØÖà nema_output1.frame_ready = 0; } - // ????switch?? + // Ð޸ĺóµÄswitchÓï¾ä switch(nema_output1.frame_ready) { case NMEA_TYPE_GGA: @@ -152,9 +152,9 @@ void nmeaProcess(void *signal_id) if (0 == parse_GGA(&nema_output1.buffer[0], &gga_data1)) { - navigation_output1.bit_data.lon = (int32_t) (gga_data1.longitude * 10000000); //20250426??????10?? + navigation_output1.bit_data.lon = (int32_t) (gga_data1.longitude * 10000000); //20250426¶È·Öת»»Îª¶È10½øÖÆ navigation_output1.bit_data.lat = (int32_t) (gga_data1.latitude * 10000000); - navigation_output1.bit_data.high = (int32_t)(gga_data1.altitude * 1000);//??1000 + navigation_output1.bit_data.high = (int32_t)(gga_data1.altitude * 1000);//À©´ó1000 navigation_output1.bit_data.rtk_state = gga_data1.fix_quality;// @@ -173,8 +173,8 @@ void nmeaProcess(void *signal_id) if (0 == parse_VTG(&nema_output1.buffer[0], &vtg_data1)) { - navigation_output1.bit_data.gps_speed = (int16_t)(vtg_data1.speed_kmh*1000/3600*100);//???m/s ??100? - // printf("[VTG] Course:%.1f° Speed:%.1fkm/h\n", + navigation_output1.bit_data.gps_speed = (int16_t)(vtg_data1.speed_kmh*1000/3600*100);//ת»»Îªm/s À©´ó100±¶ + // printf("[VTG] Course:%.1f¡ã Speed:%.1fkm/h\n", // vtg_data1.course_true, vtg_data1.speed_kmh); } else @@ -187,8 +187,8 @@ void nmeaProcess(void *signal_id) if (0 == parse_THS(&nema_output1.buffer[0], &ths_data1)) { - navigation_output1.bit_data.dual_antenna_heading = (int16_t)(ths_data1.heading*100);// ??100? - // printf("[THS] Heading:%.1f° Mode:%c\n", + navigation_output1.bit_data.dual_antenna_heading = (int16_t)(ths_data1.heading*100);// À©´ó100±¶ + // printf("[THS] Heading:%.1f¡ã Mode:%c\n", // ths_data1.heading, ths_data1.mode); } else @@ -197,13 +197,13 @@ void nmeaProcess(void *signal_id) } break; - default: // ?????? + default: // ´¦Àíδ֪ÀàÐÍ // printf("Unknown NMEA frame type\n"); break; } } -unsigned short NumCheak(unsigned char *data,unsigned char len)//????? +unsigned short NumCheak(unsigned char *data,unsigned char len)//ºÍУÑ鼯Ëã { unsigned short NUM=0; unsigned char i; @@ -214,7 +214,7 @@ unsigned short NumCheak(unsigned char *data,unsigned char len)//????? return NUM; } -// ?????????0-56? +// ¼ÆËãÒì»òУÑ飨×Ö½Ú0-56£© uint8_t calculate_checksum(const uint8_t* data, uint8_t len) { uint8_t checksum = 0; for (size_t i = 0; i < len; ++i) { @@ -223,7 +223,7 @@ uint8_t calculate_checksum(const uint8_t* data, uint8_t len) { return checksum; } -uint16_t yis321Cheak(unsigned char *data,unsigned char len)//????? +uint16_t yis321Cheak(unsigned char *data,unsigned char len)//ºÍУÑ鼯Ëã { uint8_t CK1 = 0; uint8_t CK2 = 0; @@ -294,8 +294,104 @@ void rm3100Process(void *signal_id) timerStart(&rm3100_timer, RM3100_TIME,1);//10ms } + +/** + * @brief ½«GGAʱ¼ä£¨HHMMSS.SSS¸ñʽµÄdouble£©×ª»»ÎªÐ­Òéʱ¼ä£¨U32£¬·Å´ó4000±¶£© + * @param utc_time GGAʱ¼ä£¨Èç75049.00±íʾ07:50:49.00£© + * @return uint32_t ЭÒéʱ¼ä£¨Êµ¼ÊÃëÊý = ·µ»ØÖµ / 4000£© + */ +uint32_t GgaTimeToProtocol(double utc_time) +{ + // 1. ÌáÈ¡ÕûÊý²¿·ÖºÍСÊý²¿·Ö£¨±ÜÃ⸡µãÔËË㣩 + uint32_t time_int = (uint32_t)utc_time; // HHMMSS + uint32_t time_frac = (uint32_t)((utc_time - time_int) * 1000 + 0.5); // .SSS ¡ú ºÁÃ루ËÄÉáÎåÈ룩 + + // 2. ·Ö½âHH¡¢MM¡¢SS + uint32_t hh = time_int / 10000; // Сʱ + uint32_t mm = (time_int % 10000) / 100; // ·ÖÖÓ + uint32_t ss = time_int % 100; // Ãë + + // 3. ¼ÆËã×ܺÁÃëÊý£¨HH*3600 + MM*60 + SS£©* 1000 + SSS + uint32_t total_ms = hh * 3600000 + mm * 60000 + ss * 1000 + time_frac; + + // 4. ת»»ÎªÐ­Òéʱ¼ä£¨·Å´ó4000±¶£¬µÈ¼ÛÓÚ total_ms * 4£© + return total_ms * 4; +} + + +void rs232Process(void) +{ + float float_temp = 0.0f; + + // navigation_rs232_output.bit_data.header[0] = 0xBD;//BD + // navigation_rs232_output.bit_data.header[1] = 0xDB;//DB + // navigation_rs232_output.bit_data.header[2] = 0x0B;//0B + + navigation_rs232_output.bit_data.header1 = 0xBD;//BD + navigation_rs232_output.bit_data.header2 = 0xDB;//DB + navigation_rs232_output.bit_data.header3 = 0x0B;//0B + + +//Å·À­½Ç + float_temp = (float) (yis321_data.bit_data.roll)*0.000001; + navigation_rs232_output.bit_data.roll = (int16_t) (float_temp*32768/360.0f); + + float_temp = (float) (yis321_data.bit_data.pitch)*0.000001; + navigation_rs232_output.bit_data.pitch = (int16_t) (float_temp*32768/360.0f); + + float_temp = (float) (yis321_data.bit_data.yaw)*0.000001; + navigation_rs232_output.bit_data.yaw = (int16_t) (float_temp*32768/360.0f); + +//ÍÓÂÝ + float_temp = (float) (yis321_data.bit_data.gyro_x)*0.000001; + navigation_rs232_output.bit_data.gyro_x = (int16_t) (float_temp*32768/300.0f); + + float_temp = (float) (yis321_data.bit_data.gyro_y)*0.000001; + navigation_rs232_output.bit_data.gyro_y = (int16_t) (float_temp*32768/300.0f); + + float_temp = (float) (yis321_data.bit_data.gyro_z)*0.000001f; + navigation_rs232_output.bit_data.gyro_z = (int16_t) (float_temp*32768/300.0f); + +//¼ÓËÙ¶È + float_temp = (float) (yis321_data.bit_data.acc_x)*0.000001f/9.8;//Ð޸ĵ¥Î»Îªg + navigation_rs232_output.bit_data.accel_x = (int16_t) (float_temp*32768/12.0f); + + float_temp = (float) (yis321_data.bit_data.acc_y)*0.000001f/9.8;//Ð޸ĵ¥Î»Îªg + navigation_rs232_output.bit_data.accel_y = (int16_t) (float_temp*32768/12.0f); + + float_temp = (float) (yis321_data.bit_data.acc_z)*0.000001f/9.8;//Ð޸ĵ¥Î»Îªg + navigation_rs232_output.bit_data.accel_z = (int16_t) (float_temp*32768/12.0f); + +//gpsÐÅÏ¢ + navigation_rs232_output.bit_data.latitude = (int32_t) (gga_data1.latitude * 10000000); + navigation_rs232_output.bit_data.longitude = (int32_t) (gga_data1.longitude * 10000000); + navigation_rs232_output.bit_data.altitude = (int32_t) (gga_data1.altitude * 1000); + navigation_rs232_output.bit_data.init_status = 0xF; + navigation_rs232_output.bit_data.rtk_status = gga_data1.fix_quality; + float_temp = (float)vtg_data1.speed_kmh/3.6f*100.0f;//ϵÊý100 + navigation_rs232_output.bit_data.gps_speed = (int16_t)float_temp; + navigation_rs232_output.bit_data.dual_heading = (int16_t)(ths_data1.heading*100);// À©´ó100±¶; + navigation_rs232_output.bit_data.nav_status = 0x32; + + navigation_rs232_output.bit_data.timestamp = GgaTimeToProtocol(gga_data1.utc_time); + + navigation_rs232_output.bit_data.checksum = calculate_checksum(&navigation_rs232_output.arr[0],57); + publishMessage(&navigation_rs232_output, 1); + +// uint32_t debubg_len = 58; +// uint8_t debug_ip[4] = {192,168,17,77}; +// UdpSendToData(SocketId2, (uint8_t *)&navigation_output2, &debubg_len,debug_ip,8011);//·¢ËÍÊý¾Ý + + + +// timerStart(&rs232_output_timer, 20,1);//10ms +} + + void imuInput(void *signal_id) { + static uint8_t navigationProcessCnt = 0; + switch(imu_buffer1.type) { case IIM46234: @@ -308,7 +404,7 @@ void imuInput(void *signal_id) { memcpy(&yis321_data.arr[0],&imu_buffer1.dma_buffer[imu_buffer1.active_buf^1][0],sizeof(UnInfProtocolFrame)); - //???? + //¾«¶Èת»» Acc[0] = (float)((int32_t)yis321_data.bit_data.acc_x)*0.000001f; Acc[1] = (float)((int32_t)yis321_data.bit_data.acc_y)*0.000001f; Acc[2] = (float)((int32_t)yis321_data.bit_data.acc_z)*0.000001f; @@ -328,6 +424,17 @@ void imuInput(void *signal_id) navigation_outputC1.bit_data.q2 = SWAP_ENDIAN_32(yis321_data.bit_data.q2); navigation_outputC1.bit_data.q3 = SWAP_ENDIAN_32(yis321_data.bit_data.q3); + navigationProcessCnt ++;//±ÜÃⶨʱ²»×¼µ¼Ö·¢ËÍÆµÂʽµµÍµÄÎÊÌâ + if(navigationProcessCnt >= 5) + { + navigationProcessCnt = 0; + rs232Process(); + + } + + + + publishMessage(&navigation_output1, 1); } break; @@ -375,141 +482,61 @@ void iim6234Init(void *signal_id) void nmeaPrintf(void *signal_id) { - printf("[THS] Heading:%.1f° Mode:%c\n", - ths_data1.heading, ths_data1.mode); - printf("[VTG] Course:%.1f° Speed:%.1fkm/h\n", - vtg_data1.course_true, vtg_data1.speed_kmh); + // printf("[THS] Heading:%.1f¡ã Mode:%c\n", + // ths_data1.heading, ths_data1.mode); + // printf("[VTG] Course:%.1f¡ã Speed:%.1fkm/h\n", + // vtg_data1.course_true, vtg_data1.speed_kmh); - printf("[GGA] Time:%.2f Lat:%.5f%c Lon:%.5f%c Alt:%.2f rtk_state:%d satellite:%d hdop:%2f\n", - gga_data1.utc_time, - gga_data1.latitude, gga_data1.lat_dir, - gga_data1.longitude, gga_data1.lon_dir, - gga_data1.altitude, // ???????M(?) - gga_data1.fix_quality, - gga_data1.satellites, - gga_data1.hdop - ); + // printf("[GGA] Time:%.2f Lat:%.5f%c Lon:%.5f%c Alt:%.2f rtk_state:%d satellite:%d hdop:%2f\n", + // gga_data1.utc_time, + // gga_data1.latitude, gga_data1.lat_dir, + // gga_data1.longitude, gga_data1.lon_dir, + // gga_data1.altitude, // ¼ÙÉè¸ß¶Èµ¥Î»ÎªM(Ã×) + // gga_data1.fix_quality, + // gga_data1.satellites, + // gga_data1.hdop + // ); - printf("???: (%.6f, %.6f, %.6f, %.6f)\n", - yis321_data.bit_data.q0*0.000001, yis321_data.bit_data.q1*0.000001, yis321_data.bit_data.q2*0.000001, (int32_t)yis321_data.bit_data.q3*0.000001); + // printf("ËÄÔªÊý: (%.6f, %.6f, %.6f, %.6f)\n", + // yis321_data.bit_data.q0*0.000001, yis321_data.bit_data.q1*0.000001, yis321_data.bit_data.q2*0.000001, (int32_t)yis321_data.bit_data.q3*0.000001); - printf("???: (%.6f, %.6f, %.6f)\n", - yis321_data.bit_data.pitch*0.000001, yis321_data.bit_data.roll*0.000001, yis321_data.bit_data.yaw*0.000001); + // printf("Å·À­½Ç: (%.6f, %.6f, %.6f)\n", + // yis321_data.bit_data.pitch*0.000001, yis321_data.bit_data.roll*0.000001, yis321_data.bit_data.yaw*0.000001); - timerStart(&data_processing_timer, 1000,1);//100ms + printf("AccX:%f,AccY:%f,AccZ:%f,",Acc[0],Acc[1],Acc[2]); + printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//ʹÓô®¿Ú´òÓ¡¼ÓËÙ¶È£¬½ÇËÙ¶ÈÊý¾Ý + + + + timerStart(&data_processing_timer, 1000,1);//100ms } -/** - * @brief ?GGA???HHMMSS.SSS???double?????????U32???4000?? - * @param utc_time GGA????75049.00??07:50:49.00? - * @return uint32_t ????????? = ??? / 4000? - */ -uint32_t GgaTimeToProtocol(double utc_time) -{ - // 1. ??????????????????? - uint32_t time_int = (uint32_t)utc_time; // HHMMSS - uint32_t time_frac = (uint32_t)((utc_time - time_int) * 1000 + 0.5); // .SSS ? ???????? - - // 2. ??HH?MM?SS - uint32_t hh = time_int / 10000; // ?? - uint32_t mm = (time_int % 10000) / 100; // ?? - uint32_t ss = time_int % 100; // ? - - // 3. ???????HH*3600 + MM*60 + SS?* 1000 + SSS - uint32_t total_ms = hh * 3600000 + mm * 60000 + ss * 1000 + time_frac; - - // 4. ??????????4000????? total_ms * 4? - return total_ms * 4; -} - -void rs232Process(void *signal_id) -{ - float float_temp = 0.0f; - - // navigation_rs232_output.bit_data.header[0] = 0xBD;//BD - // navigation_rs232_output.bit_data.header[1] = 0xDB;//DB - // navigation_rs232_output.bit_data.header[2] = 0x0B;//0B - - navigation_rs232_output.bit_data.header1 = 0xBD;//BD - navigation_rs232_output.bit_data.header2 = 0xDB;//DB - navigation_rs232_output.bit_data.header3 = 0x0B;//0B -//??? - float_temp = (float) (yis321_data.bit_data.roll)*0.000001; - navigation_rs232_output.bit_data.roll = (int16_t) (float_temp*32768/360.0f); - - float_temp = (float) (yis321_data.bit_data.pitch)*0.000001; - navigation_rs232_output.bit_data.pitch = (int16_t) (float_temp*32768/360.0f); - - float_temp = (float) (yis321_data.bit_data.yaw)*0.000001; - navigation_rs232_output.bit_data.yaw = (int16_t) (float_temp*32768/360.0f); - -//?? - float_temp = (float) (yis321_data.bit_data.gyro_x)*0.000001; - navigation_rs232_output.bit_data.gyro_x = (int16_t) (float_temp*32768/300.0f); - - float_temp = (float) (yis321_data.bit_data.gyro_x)*0.000001; - navigation_rs232_output.bit_data.gyro_x = (int16_t) (float_temp*32768/300.0f); - - float_temp = (float) (yis321_data.bit_data.gyro_z)*0.000001f; - navigation_rs232_output.bit_data.gyro_z = (int16_t) (float_temp*32768/300.0f); - -//??? - float_temp = (float) (yis321_data.bit_data.acc_x)*0.000001f; - navigation_rs232_output.bit_data.accel_x = (int16_t) (float_temp*32768/12.0f); - - float_temp = (float) (yis321_data.bit_data.acc_y)*0.000001f; - navigation_rs232_output.bit_data.accel_y = (int16_t) (float_temp*32768/12.0f); - - float_temp = (float) (yis321_data.bit_data.acc_z)*0.000001f; - navigation_rs232_output.bit_data.accel_z = (int16_t) (float_temp*32768/12.0f); - -//gps?? - navigation_rs232_output.bit_data.latitude = (int32_t) (gga_data1.latitude * 10000000); - navigation_rs232_output.bit_data.longitude = (int32_t) (gga_data1.longitude * 10000000); - navigation_rs232_output.bit_data.altitude = (int32_t) (gga_data1.altitude * 1000); - navigation_rs232_output.bit_data.init_status = 0xF; - navigation_rs232_output.bit_data.rtk_status = gga_data1.fix_quality; - float_temp = (float)vtg_data1.speed_kmh/3.6f*100.0f;//??100 - navigation_rs232_output.bit_data.gps_speed = (int16_t)float_temp; - navigation_rs232_output.bit_data.dual_heading = (int16_t)(ths_data1.heading*100);// ??100?; - - navigation_rs232_output.bit_data.timestamp = GgaTimeToProtocol(gga_data1.utc_time); - - navigation_rs232_output.bit_data.checksum = calculate_checksum(&navigation_rs232_output.arr[0],57); - - - publishMessage(&navigation_rs232_output, 1); - - timerStart(&rs232_output_timer, 10,1);//10ms -} - - -// APP?????? +// APPÄ£¿éµÄ³õʼ»¯ void dataProcessingAppInit(void) { - // ?????? + // ³õʼ»¯¶¨Ê±Æ÷ timerInit(&iim6234_timer); timerInit(&rm3100_timer); timerInit(&data_processing_timer); timerInit(&rs232_output_timer); - rm3100Init();//???RM3100 - // ????????????GNGGA?? + rm3100Init();//³õʼ»¯RM3100 + // ¶©ÔĶ¨Ê±Æ÷Ðźţ¬ÓÃÓÚ½âÎöGNGGAÊý¾Ý subscribe(&iim6234_timer, iim6234Init); subscribe(&rm3100_timer, rm3100Process); subscribe(&nema_output1, nmeaProcess); subscribe(&data_processing_timer, nmeaPrintf); subscribe(&imu_buffer1, imuInput); - subscribe(&rs232_output_timer,rs232Process); +// subscribe(&rs232_output_timer,rs232Process); timerStart(&rm3100_timer, RM3100_TIME,1);// timerStart(&iim6234_timer, 100,1);//100ms timerStart(&data_processing_timer, 1000,1);//100ms - timerStart(&rs232_output_timer, 50,1);//50ms +// timerStart(&rs232_output_timer, 50,1);//50ms printf("APP: initial OK %d\n",getCurrentTime()); } diff --git a/ETH/UdpServer/app/app_data_processing.h b/ETH/UdpServer/app/app_data_processing.h index 6fae3cc..f39fafa 100644 --- a/ETH/UdpServer/app/app_data_processing.h +++ b/ETH/UdpServer/app/app_data_processing.h @@ -47,16 +47,16 @@ typedef struct { // ¼ÓËٶȼƣ¨Êý¾ÝID 0x10£© uint8_t acc_id; ///< ±êʶ·û0x10£¨Ð­Ò鸽¼A.1£© uint8_t acc_len; ///< Êý¾Ý³¤¶È£º12×Ö½Ú - uint32_t acc_x; ///< XÖá¼ÓËÙ¶È£¬¾«¶È 0.000001 µ¥Î» m/s2 - uint32_t acc_y; ///< YÖá¼ÓËÙ¶È ¾«¶È 0.000001 µ¥Î» m/s2 - uint32_t acc_z; ///< ZÖá¼ÓËÙ¶È ¾«¶È 0.000001 µ¥Î» m/s2 + int32_t acc_x; ///< XÖá¼ÓËÙ¶È£¬¾«¶È 0.000001 µ¥Î» m/s2 + int32_t acc_y; ///< YÖá¼ÓËÙ¶È ¾«¶È 0.000001 µ¥Î» m/s2 + int32_t acc_z; ///< ZÖá¼ÓËÙ¶È ¾«¶È 0.000001 µ¥Î» m/s2 // ÍÓÂÝÒÇ£¨Êý¾ÝID 0x20£© uint8_t gyro_id; ///< ±êʶ·û0x20 uint8_t gyro_len; ///< Êý¾Ý³¤¶È£º12×Ö½Ú - uint32_t gyro_x; ///< XÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s - uint32_t gyro_y; ///< YÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s - uint32_t gyro_z; ///< ZÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s + int32_t gyro_x; ///< XÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s + int32_t gyro_y; ///< YÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s + int32_t gyro_z; ///< ZÖá½ÇËÙ¶È ¾«¶È 0.000001 µ¥Î» deg/s // Å·À­½Ç£¨Êý¾ÝID 0x40£©[1,2](@ref) uint8_t euler_id; ///< ±êʶ·û£º¹Ì¶¨Öµ0x40£¨Ð­Ò鸽¼A.4£¬Tait-Bryan½ÇÔ¼¶¨£©