Преглед на файлове

基于tcp的雷达数据解析

wangyingjie преди 2 месеца
родител
ревизия
f33bcb93f8

+ 3 - 3
sr71_drive/cmake/ThirdSupport.cmake

@@ -1,6 +1,6 @@
 # 第三方库支持
 
-set(ENABLE_GDAL YES) # gdal支持
-set(ENABLE_PAHO_MQTT YES) # mqtt支持
-
+set(ENABLE_GDAL OFF) # gdal支持
+set(ENABLE_PAHO_MQTT OFF) # mqtt支持
+set(ENABLE_ASIO_SOCKET YES)
 

+ 1 - 1
sr71_drive/core/CMakeLists.txt

@@ -25,4 +25,4 @@ target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::libusb)
 
 
 
-target_link_libraries(${PROJECT_NAME} PUBLIC MultiTool)
+target_link_libraries(${PROJECT_NAME} PUBLIC all_in_one)

+ 7 - 0
sr71_drive/core/controlcan.h

@@ -108,6 +108,13 @@ typedef struct _INIT_CONFIG{
 	UCHAR	Mode;
 }VCI_INIT_CONFIG,*PVCI_INIT_CONFIG;
 
+struct CanFrame
+{
+    unsigned int id;
+    unsigned int timestamp;
+    std::vector<unsigned char> data;
+};
+
 #ifdef __cplusplus
 #define EXTERN_C  extern "C"
 #else

+ 18 - 0
sr71_drive/core/radar_obj.h

@@ -13,6 +13,24 @@
 
 #include "project_marco.h"
 
+struct TargetListHeader
+{
+    uint8_t object_num; // 目标数量
+    uint16_t measurement_count; // 循环计数
+    uint8_t interface_version; // CAN接口版本号,默认为0
+};
+
+struct TargetInfo
+{
+    uint8_t id; // 目标ID
+    float distance_long; // 目标纵向距离 (m)
+    float distance_lat; // 目标横向距离 (m)
+    float velocity_long; // 目标纵向速度 (m/s)
+    uint8_t dyn_prop; // 动态属性
+    float velocity_lat; // 目标横向速度 (m/s)
+    float rcs; // RCS
+};
+
 struct RadarData
 {
   unsigned id;

+ 1 - 1
sr71_drive/core/rs71_usb_receiver.cpp

@@ -108,7 +108,7 @@ void RS71UsbReceiver::Stop()
     }
 }
 
-std::vector<RS71UsbReceiver::CanFrame> RS71UsbReceiver::GetReceivedData(unsigned channel)
+std::vector<CanFrame> RS71UsbReceiver::GetReceivedData(unsigned channel)
 {
     if (channel >= 4)
     {

+ 1 - 8
sr71_drive/core/rs71_usb_receiver.h

@@ -51,14 +51,7 @@ public:
     bool Start();
 
     void Stop();
-
-    struct CanFrame
-    {
-        unsigned int id;
-        unsigned int timestamp;
-        std::vector<unsigned char> data;
-    };
-
+    
     std::vector<CanFrame> GetReceivedData(unsigned channel);
 
 private:

+ 5 - 2
sr71_drive/src/CMakeLists.txt

@@ -2,8 +2,11 @@ cmake_minimum_required (VERSION 3.15)
 
 project(RS71_test CXX)
 
-add_executable(${PROJECT_NAME}  "main.cpp" )
-target_link_libraries(${PROJECT_NAME} PUBLIC core_lib)
+add_executable(RS71_usb  "main_usb.cpp" )
+target_link_libraries(RS71_usb PUBLIC core_lib)
+
+add_executable(RS71_socket  "main_socket.cpp" )
+target_link_libraries(RS71_socket PUBLIC core_lib)
 
 
 add_executable(test_1  "test_1.cpp" )

+ 2 - 19
sr71_drive/src/main.cpp → sr71_drive/src/main_usb.cpp

@@ -1,23 +1,6 @@
 #include "project_marco.h"
 #include "rs71_usb_receiver.h"
-
-struct TargetListHeader
-{
-    uint8_t object_num; // 目标数量
-    uint16_t measurement_count; // 循环计数
-    uint8_t interface_version; // CAN接口版本号,默认为0
-};
-
-struct TargetInfo
-{
-    uint8_t id; // 目标ID
-    float distance_long; // 目标纵向距离 (m)
-    float distance_lat; // 目标横向距离 (m)
-    float velocity_long; // 目标纵向速度 (m/s)
-    uint8_t dyn_prop; // 动态属性
-    float velocity_lat; // 目标横向速度 (m/s)
-    float rcs; // RCS
-};
+#include "radar_obj.h"
 
 int main()
 {
@@ -31,7 +14,7 @@ int main()
 
     while (true)
     {
-        std::vector<RS71UsbReceiver::CanFrame> data = dev.GetReceivedData(0); // 获取第0路CAN数据
+        std::vector<CanFrame> data = dev.GetReceivedData(0); // 获取第0路CAN数据
         printf("Frame Count: %zu\n", data.size());
         for (const auto &frame: data)
         {