From 0243d9b7d4318bb9e48cf47ecccbf67ab3aae4fb Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 2 Jan 2025 12:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dgpio=20bug=E5=92=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/GPIOControl.cpp | 8 ++-- app/src/main/cpp/GPIOControl.h | 74 ++++++++++++++++++-------------- app/src/main/cpp/PhoneDevice.cpp | 4 ++ 3 files changed, 49 insertions(+), 37 deletions(-) diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 5e9f1893..78866f76 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -47,7 +47,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param) if (it->cmd == param.cmd) { it->references++; - it->closeTime = 0; + // it->closeTime = 0; references = it->references; SetCamerastatus(it->cmd, true); break; @@ -360,7 +360,7 @@ void GpioControl::PowerControlThreadProc() if (it->references == 0 && it->closeCmds == 0 && it->closeTime == 0) { #ifdef _DEBUG - ALOGI("PWR TH cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); + ALOGI("PWR THREAD cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); #endif continue; } @@ -389,7 +389,7 @@ void GpioControl::PowerControlThreadProc() setInt(it->cmd, 0); it->closeTime = 0; #ifdef _DEBUG - ALOGI("PWR TH DO TurnOff cmd=%d", it->cmd); + ALOGI("PWR THREAD DO TurnOff cmd=%d", it->cmd); #endif SetCamerastatus(it->cmd, false); } @@ -404,7 +404,7 @@ void GpioControl::PowerControlThreadProc() } } #ifdef _DEBUG - ALOGI("PWR TH cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); + ALOGI("PWR THREAD cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); #endif } m_locker.unlock(); diff --git a/app/src/main/cpp/GPIOControl.h b/app/src/main/cpp/GPIOControl.h index 49c9d5e9..5a77c437 100644 --- a/app/src/main/cpp/GPIOControl.h +++ b/app/src/main/cpp/GPIOControl.h @@ -26,16 +26,16 @@ #define CMD_SET_NETWORK_STATE 106 #define CMD_SET_OTG_STATE 107 #define CMD_GET_OTG_STATE 108 -#define CMD_GET_CHARGING_VOL_STATE 110 -#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 111 +//#define CMD_GET_CHARGING_VOL_STATE 110 +//#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 111 #define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 -#define CMD_GET_CHARGING_POWER_STATE 113 -#define CMD_GET_CHARGING_CURRENT_STATE 114 -#define CMD_GET_BAT_VOL_STATE 115 -#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 116 +//#define CMD_GET_CHARGING_POWER_STATE 113 +//#define CMD_GET_CHARGING_CURRENT_STATE 114 +//#define CMD_GET_BAT_VOL_STATE 115 +//#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 116 #define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 -#define CMD_GET_BAT_POWER_STATE 118 -#define CMD_GET_BAT_CURRENT_STATE 119 +//#define CMD_GET_BAT_POWER_STATE 118 +//#define CMD_GET_BAT_CURRENT_STATE 119 #define CMD_SET_485_STATE 121 #define CMD_SET_SPI_MODE 123 #define CMD_SET_SPI_BITS_PER_WORD 124 @@ -56,18 +56,13 @@ #define CMD_GET_OTG_STATE 108 #define CMD_SET_SPI_POWER 129 + #define CMD_SET_12V_EN_STATE 0 // TO BE ADDED -#define CMD_SET_SYSTEM_RESET 0 // TO BE ADDED -#define CMD_GET_CHARGING_VOL_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_POWER_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_CURRENT_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_VOL_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_BUS_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_POWER_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_CURRENT_STATE 0 // TO BE ADDED +#define CMD_SET_SYSTEM_RESET 202 +#define CMD_GET_LIGHT_ADC 101 +#define CMD_SET_LIGHT_ADC 102 +#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 +#define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 #define CMD_SET_SPI_MODE 0 // TO BE ADDED #define CMD_SET_SPI_BITS_PER_WORD 0 // TO BE ADDED #define CMD_SET_SPI_MAXSPEEDHZ 0 // TO BE ADDED @@ -132,6 +127,9 @@ #define CMD_SET_485_EN_STATE 131 #define CMD_SET_OTG_STATE 107 +#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 +#define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 + #endif // USING_N938 @@ -320,12 +318,13 @@ public: static int getChargingVoltage() { #ifndef USING_N938 - return getInt(CMD_GET_CHARGING_VOL_STATE); + return getInt(CMD_GET_CHARGING_BUS_VOLTAGE_STATE); #else return -1; #endif } +#if 0 static int getChargingShuntVoltage() { #ifndef USING_N938 @@ -334,6 +333,7 @@ public: return -1; #endif } +#endif static int getChargingBusVoltage() { #ifndef USING_N938 @@ -343,6 +343,7 @@ public: #endif } +#if 0 static int getChargingPower() { #ifndef USING_N938 return getInt(CMD_GET_CHARGING_POWER_STATE); @@ -358,15 +359,13 @@ public: return -1; #endif } +#endif static int getBatteryVoltage() { -#ifndef USING_N938 - return getInt(CMD_GET_BAT_VOL_STATE); -#else - return -1; -#endif + return getInt(CMD_GET_BAT_BUS_VOLTAGE_STATE); } +#if 0 static int getBatteryShuntVoltage() { #ifndef USING_N938 return getInt(CMD_GET_BAT_SHUNT_VOLTAGE_STATE); @@ -374,15 +373,13 @@ public: return -1; #endif } +#endif static int getBatteryBusVoltage() { -#ifndef USING_N938 return getInt(CMD_GET_BAT_BUS_VOLTAGE_STATE); -#else - return -1; -#endif } +#if 0 static int getBatteryPower() { #ifndef USING_N938 return getInt(CMD_GET_BAT_POWER_STATE); @@ -398,6 +395,7 @@ public: return -1; #endif } +#endif static void set485WriteMode() { #if 0 @@ -463,7 +461,7 @@ public: m_cmds.resize(4, cmd1); m_cmds[1] = cmd2; m_cmds[2] = cmd3; - m_cmds[3] = cmd3; + m_cmds[3] = cmd4; TurnOn(); } PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) @@ -471,8 +469,18 @@ public: m_cmds.resize(5, cmd1); m_cmds[1] = cmd2; m_cmds[2] = cmd3; - m_cmds[3] = cmd3; - m_cmds[4] = cmd4; + m_cmds[3] = cmd4; + m_cmds[4] = cmd5; + TurnOn(); + } + PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, int cmd6, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) + { + m_cmds.resize(5, cmd1); + m_cmds[1] = cmd2; + m_cmds[2] = cmd3; + m_cmds[3] = cmd4; + m_cmds[4] = cmd5; + m_cmds[4] = cmd6; TurnOn(); } @@ -534,7 +542,7 @@ public: PowerControl(CMD_SET_OTG_STATE, CMD_SET_NETWORK_POWER_EN, CMD_SET_PIC1_POWER, CMD_SET_485_EN_STATE, closeDelayTime) #else // USING_N938 #ifdef USING_PLZ - PowerControl(CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) + PowerControl(CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_485_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) #else // USING_PLZ PowerControl(CMD_SET_OTG_STATE, CMD_SET_12V_EN_STATE, closeDelayTime) #endif // USING_PLZ diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 9bffede4..f142b841 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -970,6 +970,7 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro int val = GpioControl::getLightAdc(); it->second = std::to_string(val); } +#if 0 else if (it->first == (PROP_CHARGING_CURRENT)) { it->second = std::to_string(GpioControl::getChargingCurrent()); @@ -978,6 +979,7 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro { it->second = std::to_string(GpioControl::getChargingPower()); } +#endif else if (it->first == (PROP_CHARGING_BUS_VOL) || it->first == (PROP_CHARGING_VOLTAGE)) { double val = -1; @@ -994,10 +996,12 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro break; } } +#if 0 else if (it->first == (PROP_BATTERY_POWER)) { it->second = std::to_string(GpioControl::getBatteryPower()); } +#endif else if (it->first == (PROP_BATTERY_BUS_VOL) || it->first == (PROP_BATTERY_VOLTAGE)) { int val = QueryBatteryVoltage(DEFAULT_BATTERY_QUERY_RETRIES); // // BatVol