task_communication(2699).c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "task_communication.h"
  2. // 定义测试函数
  3. void test_isPointInPolygon() {
  4. // 定义多边形的经纬度坐标集合
  5. double polygonLat[] = {34.34934, 34.25916, 34.36221, 34.21619};
  6. double polygonLng[] = {108.84569, 108.80257, 109.03829, 109.05611};
  7. // 测试点在多边形内部的情况
  8. double point1Lat = 34.33312;
  9. double point1Lng = 108.8531;
  10. bool result1 = isPointInPolygon(point1Lat, point1Lng, polygonLat, polygonLng);
  11. printf("Test case 1: Point (%f, %f) is%s inside the polygon.\n", point1Lat, point1Lng, result1 ? "" : " not");
  12. }
  13. /* USER CODE BEGIN Header_Task_communication */
  14. /**
  15. * @brief Function implementing the communication thread.
  16. * @param argument: Not used
  17. * @retval None
  18. */
  19. /* USER CODE END Header_Task_communication */
  20. void task_communication_content(void)
  21. {
  22. // unsigned long times = 0;
  23. LED0_TOGGLE(); // 灯翻转
  24. EC800_FTP_OTA_Upgrade(); // OTA升级
  25. // 固件升级时不做其他操作,保证固件更新的完成
  26. if(s_ec800Date.hardwareUpdate != 0){
  27. osDelay(200);
  28. }else{
  29. test_isPointInPolygon(); // 电子围栏
  30. rs485_poll_sendReceive(); // 与车进行通信
  31. osDelay(1000);
  32. }
  33. // times = getRunTimeCounterValue();
  34. // printf("test_isPointInPolygon:%ld\r\n", times);
  35. }