M350b版本

This commit is contained in:
xin
2026-01-21 14:44:51 +08:00
parent a76d4b77e9
commit 742b0a1e5a
14 changed files with 92 additions and 45 deletions

View File

@ -117,7 +117,9 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void)
if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V3 || if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V3 ||
baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_EPORT_V2_RIBBON_CABLE) { 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."); USER_LOG_INFO("Start to apply high power.");

View File

@ -184,8 +184,8 @@ int IrisSensor_Gas_P0::GetMeasuredData(unsigned long &ulCO2, unsigned long &ulH2
ParseMeasuredData_Chk(); ParseMeasuredData_Chk();
ulCO2 = m_ulCO2; ulCO2 = m_ulCO2*1.0;
ulH2O = m_ulH2O; ulH2O = m_ulH2O*1.0;
fTPTemperature = m_fTPTemperature; fTPTemperature = m_fTPTemperature;
fPP = m_fPP; fPP = m_fPP;
fPB = m_fPB; fPB = m_fPB;
@ -226,6 +226,7 @@ int IrisSensor_Gas_P0::ZeroCalibration_Air()
int IrisSensor_Gas_P0::SpanCalibration(char cChannel,unsigned int uiPPM) int IrisSensor_Gas_P0::SpanCalibration(char cChannel,unsigned int uiPPM)
{ {
qDebug()<<"start span calirbation"<< uiPPM<<" on channel "<<(int)cChannel;
unsigned char ucChksum=0x0; unsigned char ucChksum=0x0;
QByteArray qbSend; QByteArray qbSend;
qbSend.append(0x02); qbSend.append(0x02);
@ -251,6 +252,7 @@ int IrisSensor_Gas_P0::SpanCalibration(char cChannel,unsigned int uiPPM)
ucChksum = ~ucChksum + 1; ucChksum = ~ucChksum + 1;
qbSend.append(ucChksum); //chksum qbSend.append(ucChksum); //chksum
SendData_Chk(qbSend.toStdString());
delete[] pResult; delete[] pResult;
return 0; return 0;

View File

@ -134,6 +134,7 @@ int IrisSensor_WDA_P0::ParseData_NChk()
int IrisSensor_WDA_P0::Initialize(std::string ucPortNumber) int IrisSensor_WDA_P0::Initialize(std::string ucPortNumber)
{ {
QString qstrPortName = QString::fromStdString(ucPortNumber); QString qstrPortName = QString::fromStdString(ucPortNumber);
qDebug()<<"port name is"<<qstrPortName;
m_pSerialPort->setPortName(qstrPortName); m_pSerialPort->setPortName(qstrPortName);
m_pSerialPort->setReadBufferSize(512); m_pSerialPort->setReadBufferSize(512);

View File

@ -153,12 +153,18 @@ int ZZ_ConfigParser_M300RTK::LoadParams()
m_struAppRegInfo.qstrUserAppName = qstrUSER_APP_NAME; m_struAppRegInfo.qstrUserAppName = qstrUSER_APP_NAME;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QString qstrUSER_BAUD_RATE = m_pqfM300ConfigFiles[1]->value(QString("COMPORT/USER_BAUD_RATE"),"NULL").toString(); 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; qDebug() << qstrUSER_BAUD_RATE;
if (qstrUSER_BAUD_RATE == "NULL") if (qstrUSER_BAUD_RATE == "NULL")
{ {
qDebug() << "ZZ_ConfigParser_M300:Func LoadParams.USER_BAUD_RATE not load"; qDebug() << "ZZ_ConfigParser_M300:Func LoadParams.USER_BAUD_RATE not load";
return 1; 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(); int iCONFIG_HARDWARE_CONNECTION = m_pqfM300ConfigFiles[1]->value(QString("ADV MODE/CONFIG_HARDWARE_CONNECTION"),10000).toInt();
qDebug() << iCONFIG_HARDWARE_CONNECTION; qDebug() << iCONFIG_HARDWARE_CONNECTION;
@ -170,6 +176,7 @@ int ZZ_ConfigParser_M300RTK::LoadParams()
m_struHardwareInfo.enumHCM = HardwareConnectionMode(iCONFIG_HARDWARE_CONNECTION); m_struHardwareInfo.enumHCM = HardwareConnectionMode(iCONFIG_HARDWARE_CONNECTION);
m_struHardwareInfo.qstrBaudRate = qstrUSER_BAUD_RATE; m_struHardwareInfo.qstrBaudRate = qstrUSER_BAUD_RATE;
m_struHardwareInfo.AirplaneType = qstrAirplaneType;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int iCaptureMode = m_pqfM300ConfigFiles[2]->value(QString("PSDK/CaptureMode"), -1).toInt(); int iCaptureMode = m_pqfM300ConfigFiles[2]->value(QString("PSDK/CaptureMode"), -1).toInt();
qDebug() << iCaptureMode; qDebug() << iCaptureMode;

View File

@ -237,12 +237,7 @@ int VehicleController::SetupEnvironment_M300RTK()
throw std::runtime_error("Register osal handler error."); 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) // if (m_struHardwareInfo.enumHCM == HardwareConnectionMode::UartAndNetwork)
// { // {
@ -253,8 +248,14 @@ int VehicleController::SetupEnvironment_M300RTK()
// throw std::runtime_error("Register hal network handler error"); // 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.");
}
//<2F><><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD>
returnCode = DjiPlatform_RegHalNetworkHandler(&networkHandler); returnCode = DjiPlatform_RegHalNetworkHandler(&networkHandler);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
@ -268,16 +269,15 @@ int VehicleController::SetupEnvironment_M300RTK()
printf("register osal socket handler error"); printf("register osal socket handler error");
return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_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); returnCode = DjiPlatform_RegFileSystemHandler(&fileSystemHandler);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{ {
@ -348,20 +348,20 @@ int VehicleController::StartupPSDK_M300RTK()
throw std::runtime_error("Start sdk application error."); throw std::runtime_error("Start sdk application error.");
} }
// T_DjiTestApplyHighPowerHandler applyHighPowerHandler = { T_DjiTestApplyHighPowerHandler applyHighPowerHandler = {
// .pinInit = DjiTest_HighPowerApplyPinInit, .pinInit = DjiTest_HighPowerApplyPinInit,
// .pinWrite = DjiTest_WriteHighPowerApplyPin, .pinWrite = DjiTest_WriteHighPowerApplyPin,
// }; };
//
// returnCode = DjiTest_RegApplyHighPowerHandler(&applyHighPowerHandler); returnCode = DjiTest_RegApplyHighPowerHandler(&applyHighPowerHandler);
// if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
// USER_LOG_ERROR("regsiter apply high power handler error"); USER_LOG_ERROR("regsiter apply high power handler error");
// } }
//
// returnCode = DjiTest_PowerManagementStartService(); returnCode = DjiTest_PowerManagementStartService();
// if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
// USER_LOG_ERROR("power management init error"); USER_LOG_ERROR("power management init error");
// } }
osalHandler->TaskSleepMs(5000); osalHandler->TaskSleepMs(5000);
SetupWidget();//<2F>?<EFBFBD><C9BC>?<EFBFBD><DFBC><3E><><EFBFBD> SetupWidget();//<2F>?<EFBFBD><C9BC>?<EFBFBD><DFBC><3E><><EFBFBD>
osalHandler->TaskSleepMs(5000); osalHandler->TaskSleepMs(5000);
@ -784,6 +784,9 @@ int VehicleController::InitSystemParams()
// qt.fromString(qstrTime,"hhmmsszzz"); // qt.fromString(qstrTime,"hhmmsszzz");
qstrDateTime = qstrDate + qstrTime; qstrDateTime = qstrDate + qstrTime;
qdtDateTime = QDateTime::fromString(qstrDateTime, "yyyyMMddhhmmss"); 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(); time_t stdTime = qdtDateTime.toTime_t();
if (qdtDateTime.isValid()) if (qdtDateTime.isValid())

View File

@ -75,6 +75,7 @@ T_DjiReturnCode DjiTest_PowerManagementStartService(void)
T_DjiReturnCode returnCode; T_DjiReturnCode returnCode;
T_DjiAircraftInfoBaseInfo baseInfo = {0}; T_DjiAircraftInfoBaseInfo baseInfo = {0};
int bbb=11;
returnCode = DjiPowerManagement_Init(); returnCode = DjiPowerManagement_Init();
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("power management init error: 0x%08llX.", returnCode); 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 || if (baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V3 ||
baseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_EPORT_V2_RIBBON_CABLE) { 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."); USER_LOG_INFO("Start to apply high power.");

View File

@ -29,6 +29,7 @@ namespace ZZ
{ {
HardwareConnectionMode enumHCM; HardwareConnectionMode enumHCM;
QString qstrBaudRate; QString qstrBaudRate;
QString AirplaneType;
}HardwareInfo; }HardwareInfo;
typedef struct tagUIConfig typedef struct tagUIConfig

View File

@ -292,6 +292,7 @@ void CMainAcqThread::GetCommand(QString Worker, QString Command) {
// 用qDebug打印接收到的命令 // 用qDebug打印接收到的命令
qDebug()<<"Received Command - Worker:" << Worker << ", Command:" << Command; qDebug()<<"Received Command - Worker:" << Worker << ", Command:" << Command;
int waitebefore=120;
int waitetime=10; int waitetime=10;
qDebug()<<"GetCommand Worker:"<<Worker<<" Command:"<<Command; qDebug()<<"GetCommand Worker:"<<Worker<<" Command:"<<Command;
if (Worker=="WDA") { if (Worker=="WDA") {
@ -319,23 +320,23 @@ void CMainAcqThread::GetCommand(QString Worker, QString Command) {
return; return;
} }
if (arc[1]=="Air") { if (arc[1]=="Air") {
// system("sudo gpio write 7 1"); system("sudo gpio write 7 1");
qDebug()<<"Start Gas Motor now"; qDebug()<<"Start Gas Motor now";
QThread::sleep(waitetime); QThread::sleep(waitetime);
m_ctrlGasSensor.ZeroCalibration_Air(); m_ctrlGasSensor.ZeroCalibration_Air();
QThread::sleep(waitetime); QThread::sleep(waitetime);
emit SendCommand("GAS", "Finish"); emit SendCommand("GAS", "Finish");
// system("sudo gpio write 7 0"); system("sudo gpio write 7 0");
qDebug()<<"Stop Gas Motor now"; qDebug()<<"Stop Gas Motor now";
} }
else if (arc[1] == "N2") { else if (arc[1] == "N2") {
// system("sudo gpio write 7 1"); system("sudo gpio write 7 1");
qDebug()<<"Start Gas Motor now"; qDebug()<<"Start Gas Motor now";
QThread::sleep(waitetime); QThread::sleep(waitetime);
m_ctrlGasSensor.ZeroCalibration_N2(); m_ctrlGasSensor.ZeroCalibration_N2();
QThread::sleep(waitetime); QThread::sleep(waitetime);
emit SendCommand("GAS", "Finish"); emit SendCommand("GAS", "Finish");
// system("sudo gpio write 7 0"); system("sudo gpio write 7 0");
qDebug()<<"Stop Gas Motor now"; qDebug()<<"Stop Gas Motor now";
} }
else { else {
@ -363,13 +364,13 @@ void CMainAcqThread::GetCommand(QString Worker, QString Command) {
return; return;
} }
unsigned int uiPPM=arc[2].toUInt(); unsigned int uiPPM=arc[2].toUInt();
// system("sudo gpio write 7 1"); system("sudo gpio write 7 1");
qDebug()<<"Start Gas Motor now"; qDebug()<<"Start Gas Motor now";
QThread::sleep(waitetime); QThread::sleep(waitebefore);
m_ctrlGasSensor.SpanCalibration(cChannel,uiPPM); m_ctrlGasSensor.SpanCalibration(cChannel,uiPPM);
QThread::sleep(waitetime); QThread::sleep(waitetime);
emit SendCommand("GAS", "Finish"); emit SendCommand("GAS", "Finish");
// system("sudo gpio write 7 0"); system("sudo gpio write 7 0");
qDebug()<<"Stop Gas Motor now"; qDebug()<<"Stop Gas Motor now";

View File

@ -28,7 +28,7 @@ public:
private: private:
QTime lastTime; QTime lastTime;
QTimer m_clsCapTimer; QTimer m_clsCapTimer;
std::atomic<int> m_WorkingState;
int iFlagIsPathGenerated; int iFlagIsPathGenerated;
MiscControls m_struMiscCtrls; MiscControls m_struMiscCtrls;

View File

@ -115,8 +115,10 @@ namespace ZZ_DATA_DEF
{ {
typedef struct tagGSDataFrame typedef struct tagGSDataFrame
{ {
unsigned long ulCO2; // unsigned long ulCO2;
unsigned long ulH2O; // unsigned long ulH2O;
float ulCO2;
float ulH2O;
float fTemp; float fTemp;
float fPB; float fPB;
float fPP; float fPP;

1
USB_BULK/dep.sh Normal file
View File

@ -0,0 +1 @@
sudo apt-get install libaio-dev

24
choosescript.sh Normal file
View File

@ -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

View File

@ -1,4 +1,6 @@
[COMPORT] [COMPORT]
USER_BAUD_RATE=230400 USER_BAUD_RATE=230400
[ADV MODE] [ADV MODE]
CONFIG_HARDWARE_CONNECTION=1 CONFIG_HARDWARE_CONNECTION=1
[Airplane]
AirplaneType=M400

View File

@ -1,5 +1,5 @@
[SENSOR] [SENSOR]
WindSensorPort=/dev/ttyS2 WindSensorPort=/dev/ttyWind
GasSensorPort=/dev/ttyS1 GasSensorPort=/dev/ttyS1
[M300RTK] [M300RTK]
UART1=/dev/ttyUSB0 UART1=/dev/ttyUSB0