From 742b0a1e5addf095dfd78df71d6489f2a9352e10 Mon Sep 17 00:00:00 2001 From: xin Date: Wed, 21 Jan 2026 14:44:51 +0800 Subject: [PATCH] =?UTF-8?q?M350b=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../power_management/test_power_management.c | 4 +- Source/IrisSensor_Gas_P0.cpp | 6 +- Source/IrisSensor_WDA_P0.cpp | 1 + .../PSDK_Qt/Config/ConfigParser_M300RTK.cpp | 7 +++ .../M300/PSDK_Qt/Main/VehicleController.cpp | 61 ++++++++++--------- .../M300/PSDK_Qt/Main/test_power_management.c | 3 +- Source/M300/PSDK_Qt/ZZ_Types_DJI.h | 1 + Source/MainAcqThread.cpp | 15 ++--- Source/MainAcqThread.h | 2 +- Source/ZZ_Types.h | 6 +- USB_BULK/dep.sh | 1 + choosescript.sh | 24 ++++++++ configfile/DJI/Settings/HardwareSettings.ini | 4 +- configfile/data/Settings/MainSettings.ini | 2 +- 14 files changed, 92 insertions(+), 45 deletions(-) create mode 100644 USB_BULK/dep.sh create mode 100644 choosescript.sh diff --git a/PSDK/samples/sample_c/module_sample/power_management/test_power_management.c b/PSDK/samples/sample_c/module_sample/power_management/test_power_management.c index 3c6c524..e340c69 100644 --- a/PSDK/samples/sample_c/module_sample/power_management/test_power_management.c +++ b/PSDK/samples/sample_c/module_sample/power_management/test_power_management.c @@ -117,7 +117,9 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void) if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V3 || baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_EPORT_V2_RIBBON_CABLE) { - E_DjiHighPowerVoltage voltage = E_DJI_HIGH_POWER_VOLTAGE_17V; + E_DjiHighPowerVoltage voltage = E_DJI_HIGH_POWER_VOLTAGE_24V; + + USER_LOG_INFO("Start to apply high power."); diff --git a/Source/IrisSensor_Gas_P0.cpp b/Source/IrisSensor_Gas_P0.cpp index b0f6b6c..5117213 100644 --- a/Source/IrisSensor_Gas_P0.cpp +++ b/Source/IrisSensor_Gas_P0.cpp @@ -184,8 +184,8 @@ int IrisSensor_Gas_P0::GetMeasuredData(unsigned long &ulCO2, unsigned long &ulH2 ParseMeasuredData_Chk(); - ulCO2 = m_ulCO2; - ulH2O = m_ulH2O; + ulCO2 = m_ulCO2*1.0; + ulH2O = m_ulH2O*1.0; fTPTemperature = m_fTPTemperature; fPP = m_fPP; fPB = m_fPB; @@ -226,6 +226,7 @@ int IrisSensor_Gas_P0::ZeroCalibration_Air() int IrisSensor_Gas_P0::SpanCalibration(char cChannel,unsigned int uiPPM) { + qDebug()<<"start span calirbation"<< uiPPM<<" on channel "<<(int)cChannel; unsigned char ucChksum=0x0; QByteArray qbSend; qbSend.append(0x02); @@ -251,6 +252,7 @@ int IrisSensor_Gas_P0::SpanCalibration(char cChannel,unsigned int uiPPM) ucChksum = ~ucChksum + 1; qbSend.append(ucChksum); //chksum + SendData_Chk(qbSend.toStdString()); delete[] pResult; return 0; diff --git a/Source/IrisSensor_WDA_P0.cpp b/Source/IrisSensor_WDA_P0.cpp index 6a462e6..2eed1b5 100644 --- a/Source/IrisSensor_WDA_P0.cpp +++ b/Source/IrisSensor_WDA_P0.cpp @@ -134,6 +134,7 @@ int IrisSensor_WDA_P0::ParseData_NChk() int IrisSensor_WDA_P0::Initialize(std::string ucPortNumber) { QString qstrPortName = QString::fromStdString(ucPortNumber); + qDebug()<<"port name is"<setPortName(qstrPortName); m_pSerialPort->setReadBufferSize(512); diff --git a/Source/M300/PSDK_Qt/Config/ConfigParser_M300RTK.cpp b/Source/M300/PSDK_Qt/Config/ConfigParser_M300RTK.cpp index 475f08e..951ce5f 100644 --- a/Source/M300/PSDK_Qt/Config/ConfigParser_M300RTK.cpp +++ b/Source/M300/PSDK_Qt/Config/ConfigParser_M300RTK.cpp @@ -153,12 +153,18 @@ int ZZ_ConfigParser_M300RTK::LoadParams() m_struAppRegInfo.qstrUserAppName = qstrUSER_APP_NAME; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// QString qstrUSER_BAUD_RATE = m_pqfM300ConfigFiles[1]->value(QString("COMPORT/USER_BAUD_RATE"),"NULL").toString(); + QString qstrAirplaneType = m_pqfM300ConfigFiles[1]->value(QString("Airplane/AirplaneType"),"NULL").toString(); qDebug() << qstrUSER_BAUD_RATE; if (qstrUSER_BAUD_RATE == "NULL") { qDebug() << "ZZ_ConfigParser_M300:Func LoadParams.USER_BAUD_RATE not load"; return 1; } + if (qstrAirplaneType == "NULL") + { + qDebug() << "ZZ_ConfigParser_M300:Func LoadParams.AirplaneType not load"; + qstrAirplaneType="M350"; + } int iCONFIG_HARDWARE_CONNECTION = m_pqfM300ConfigFiles[1]->value(QString("ADV MODE/CONFIG_HARDWARE_CONNECTION"),10000).toInt(); qDebug() << iCONFIG_HARDWARE_CONNECTION; @@ -170,6 +176,7 @@ int ZZ_ConfigParser_M300RTK::LoadParams() m_struHardwareInfo.enumHCM = HardwareConnectionMode(iCONFIG_HARDWARE_CONNECTION); m_struHardwareInfo.qstrBaudRate = qstrUSER_BAUD_RATE; + m_struHardwareInfo.AirplaneType = qstrAirplaneType; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int iCaptureMode = m_pqfM300ConfigFiles[2]->value(QString("PSDK/CaptureMode"), -1).toInt(); qDebug() << iCaptureMode; diff --git a/Source/M300/PSDK_Qt/Main/VehicleController.cpp b/Source/M300/PSDK_Qt/Main/VehicleController.cpp index 1296514..34f5cd2 100644 --- a/Source/M300/PSDK_Qt/Main/VehicleController.cpp +++ b/Source/M300/PSDK_Qt/Main/VehicleController.cpp @@ -237,12 +237,7 @@ int VehicleController::SetupEnvironment_M300RTK() throw std::runtime_error("Register osal handler error."); } - returnCode = DjiPlatform_RegHalUartHandler(&uartHandler); - if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) - { - qDebug() << "VehicleController: Func DjiPlatform_RegHalUartHandler. Register hal uart handler error"; - throw std::runtime_error("Register hal uart handler error."); - } + // if (m_struHardwareInfo.enumHCM == HardwareConnectionMode::UartAndNetwork) // { @@ -253,8 +248,14 @@ int VehicleController::SetupEnvironment_M300RTK() // throw std::runtime_error("Register hal network handler error"); // } // } - + if (m_struHardwareInfo.AirplaneType=="M350"||m_struHardwareInfo.AirplaneType == "M300") { + returnCode = DjiPlatform_RegHalUartHandler(&uartHandler); + if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) + { + qDebug() << "VehicleController: Func DjiPlatform_RegHalUartHandler. Register hal uart handler error"; + throw std::runtime_error("Register hal uart handler error."); + } // returnCode = DjiPlatform_RegHalNetworkHandler(&networkHandler); if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { @@ -268,16 +269,15 @@ int VehicleController::SetupEnvironment_M300RTK() printf("register osal socket handler error"); return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR; } + }else { + returnCode = DjiPlatform_RegHalUsbBulkHandler(&usbBulkHandler); + if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { + printf("register hal usb bulk handler error"); + return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR; + } } - // { - // returnCode = DjiPlatform_RegHalUsbBulkHandler(&usbBulkHandler); - // if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { - // printf("register hal usb bulk handler error"); - // return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR; - // } - // - // } + returnCode = DjiPlatform_RegFileSystemHandler(&fileSystemHandler); if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { @@ -348,20 +348,20 @@ int VehicleController::StartupPSDK_M300RTK() throw std::runtime_error("Start sdk application error."); } - // T_DjiTestApplyHighPowerHandler applyHighPowerHandler = { - // .pinInit = DjiTest_HighPowerApplyPinInit, - // .pinWrite = DjiTest_WriteHighPowerApplyPin, - // }; - // - // returnCode = DjiTest_RegApplyHighPowerHandler(&applyHighPowerHandler); - // if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { - // USER_LOG_ERROR("regsiter apply high power handler error"); - // } - // - // returnCode = DjiTest_PowerManagementStartService(); - // if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { - // USER_LOG_ERROR("power management init error"); - // } + T_DjiTestApplyHighPowerHandler applyHighPowerHandler = { + .pinInit = DjiTest_HighPowerApplyPinInit, + .pinWrite = DjiTest_WriteHighPowerApplyPin, + }; + + returnCode = DjiTest_RegApplyHighPowerHandler(&applyHighPowerHandler); + if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { + USER_LOG_ERROR("regsiter apply high power handler error"); + } + + returnCode = DjiTest_PowerManagementStartService(); + if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { + USER_LOG_ERROR("power management init error"); + } osalHandler->TaskSleepMs(5000); SetupWidget();//<2F>?? osalHandler->TaskSleepMs(5000); @@ -784,6 +784,9 @@ int VehicleController::InitSystemParams() // qt.fromString(qstrTime,"hhmmsszzz"); qstrDateTime = qstrDate + qstrTime; qdtDateTime = QDateTime::fromString(qstrDateTime, "yyyyMMddhhmmss"); + QString command="date -s \""+qdtDateTime.toString("yyyy-MM-dd hh:mm:ss")+"\""; + system(command.toLatin1().data()); + time_t stdTime = qdtDateTime.toTime_t(); if (qdtDateTime.isValid()) diff --git a/Source/M300/PSDK_Qt/Main/test_power_management.c b/Source/M300/PSDK_Qt/Main/test_power_management.c index 3c6c524..771152f 100644 --- a/Source/M300/PSDK_Qt/Main/test_power_management.c +++ b/Source/M300/PSDK_Qt/Main/test_power_management.c @@ -75,6 +75,7 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void) T_DjiReturnCode returnCode; T_DjiAircraftInfoBaseInfo baseInfo = {0}; + int bbb=11; returnCode = DjiPowerManagement_Init(); if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { USER_LOG_ERROR("power management init error: 0x%08llX.", returnCode); @@ -117,7 +118,7 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void) if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V3 || baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_EPORT_V2_RIBBON_CABLE) { - E_DjiHighPowerVoltage voltage = E_DJI_HIGH_POWER_VOLTAGE_17V; + E_DjiHighPowerVoltage voltage = E_DJI_HIGH_POWER_VOLTAGE_24V; USER_LOG_INFO("Start to apply high power."); diff --git a/Source/M300/PSDK_Qt/ZZ_Types_DJI.h b/Source/M300/PSDK_Qt/ZZ_Types_DJI.h index 6cdd612..dbbb46a 100644 --- a/Source/M300/PSDK_Qt/ZZ_Types_DJI.h +++ b/Source/M300/PSDK_Qt/ZZ_Types_DJI.h @@ -29,6 +29,7 @@ namespace ZZ { HardwareConnectionMode enumHCM; QString qstrBaudRate; + QString AirplaneType; }HardwareInfo; typedef struct tagUIConfig diff --git a/Source/MainAcqThread.cpp b/Source/MainAcqThread.cpp index 41790e9..fc7b339 100644 --- a/Source/MainAcqThread.cpp +++ b/Source/MainAcqThread.cpp @@ -292,6 +292,7 @@ void CMainAcqThread::GetCommand(QString Worker, QString Command) { // 用qDebug打印接收到的命令 qDebug()<<"Received Command - Worker:" << Worker << ", Command:" << Command; + int waitebefore=120; int waitetime=10; qDebug()<<"GetCommand Worker:"< m_WorkingState; int iFlagIsPathGenerated; MiscControls m_struMiscCtrls; diff --git a/Source/ZZ_Types.h b/Source/ZZ_Types.h index a78079e..dbb934d 100644 --- a/Source/ZZ_Types.h +++ b/Source/ZZ_Types.h @@ -115,8 +115,10 @@ namespace ZZ_DATA_DEF { typedef struct tagGSDataFrame { - unsigned long ulCO2; - unsigned long ulH2O; + // unsigned long ulCO2; + // unsigned long ulH2O; + float ulCO2; + float ulH2O; float fTemp; float fPB; float fPP; diff --git a/USB_BULK/dep.sh b/USB_BULK/dep.sh new file mode 100644 index 0000000..c7395d9 --- /dev/null +++ b/USB_BULK/dep.sh @@ -0,0 +1 @@ +sudo apt-get install libaio-dev \ No newline at end of file diff --git a/choosescript.sh b/choosescript.sh new file mode 100644 index 0000000..e6109df --- /dev/null +++ b/choosescript.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# 定义配置文件路径 +CONFIG_FILE="/home/DJI/Settings/HardwareSettings.ini" +# 判断文件是否存在 +if [ ! -f "$CONFIG_FILE" ]; then + echo "错误: 找不到配置文件 $CONFIG_FILE" + exit 1 +fi +# 提取 AirplaneType 的值 +# 1. grep 找到包含 AirplaneType 的行 +# 2. cut 以 '=' 为分隔符取第二个字段 +# 3. tr -d 去除回车符(\r)和空格,防止空字符导致判断失败 +PLANE_TYPE=$(grep "AirplaneType" "$CONFIG_FILE" | cut -d'=' -f2 | tr -d '\r ') +echo "当前的机型是: [$PLANE_TYPE]" +# 进行判断 +if [ "$PLANE_TYPE" = "M400" ]; then + echo "执行 bash a.sh" + chmod +x /root/raspusb.sh + bash /root/raspusb.sh +else + echo "机型不是 M400,执行 sh b.sh" + chmod +x /root/mountdjirndis.sh + sh /root/mountdjirndis.sh +fi \ No newline at end of file diff --git a/configfile/DJI/Settings/HardwareSettings.ini b/configfile/DJI/Settings/HardwareSettings.ini index 82b034a..b133d55 100644 --- a/configfile/DJI/Settings/HardwareSettings.ini +++ b/configfile/DJI/Settings/HardwareSettings.ini @@ -1,4 +1,6 @@ [COMPORT] USER_BAUD_RATE=230400 [ADV MODE] -CONFIG_HARDWARE_CONNECTION=1 \ No newline at end of file +CONFIG_HARDWARE_CONNECTION=1 +[Airplane] +AirplaneType=M400 \ No newline at end of file diff --git a/configfile/data/Settings/MainSettings.ini b/configfile/data/Settings/MainSettings.ini index 3f4436a..3f4dc9c 100644 --- a/configfile/data/Settings/MainSettings.ini +++ b/configfile/data/Settings/MainSettings.ini @@ -1,5 +1,5 @@ [SENSOR] -WindSensorPort=/dev/ttyS2 +WindSensorPort=/dev/ttyWind GasSensorPort=/dev/ttyS1 [M300RTK] UART1=/dev/ttyUSB0