123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "task_communication.h"
- // 定义测试函数
- void test_isPointInPolygon() {
- // 定义多边形的经纬度坐标集合
- double polygonLat[] = {34.34934, 34.25916, 34.36221, 34.21619};
- double polygonLng[] = {108.84569, 108.80257, 109.03829, 109.05611};
- // 测试点在多边形内部的情况
- double point1Lat = 34.33312;
- double point1Lng = 108.8531;
-
- /* 尝试获取互斥量,等待无限长时间 */
- if(osMutexAcquire(s_messageDate_locationHandle, osWaitForever) == osOK)
- {
- /* 安全地访问s_rs485RecDate结构体 */
- point1Lat = s_messageDate.latitude / 100000;
- point1Lng = s_messageDate.longitude / 100000;
-
- /* 访问完成,释放互斥量 */
- osMutexRelease(s_messageDate_locationHandle);
- }
-
- bool result1 = isPointInPolygon(point1Lat, point1Lng, polygonLat, polygonLng);
- printf("Test case 1: Point (%f, %f) is%s inside the polygon.\n", point1Lat, point1Lng, result1 ? "" : " not");
- }
- /* USER CODE BEGIN Header_Task_communication */
- /**
- * @brief Function implementing the communication thread.
- * @param argument: Not used
- * @retval None
- */
- /* USER CODE END Header_Task_communication */
- void task_communication_content(void)
- {
- // unsigned long times = 0;
-
- LED0_TOGGLE(); // 灯翻转
- EC800_FTP_OTA_Upgrade(); // OTA升级
- // 固件升级时不做其他操作,保证固件更新的完成
- if(s_ec800Date.hardwareUpdate != 0){
- osDelay(200);
- }else{
- test_isPointInPolygon(); // 电子围栏
- rs485_poll_sendReceive(); // 与车进行通信
- osDelay(1000);
- }
- // times = getRunTimeCounterValue();
- // printf("test_isPointInPolygon:%ld\r\n", times);
-
- }
|