From 73fd656cb61658cbe900bab897abfd15dd419601 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" Date: Wed, 9 Oct 2024 16:44:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E5=8C=96=E4=BC=A0=E6=84=9F=E5=99=A8?= =?UTF-8?q?=E7=94=B5=E6=BA=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 100 ++++++++++++++++++------------- app/src/main/cpp/PhoneDevice.h | 4 +- 2 files changed, 60 insertions(+), 44 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 0ee12da7..7224b07f 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -3076,75 +3076,91 @@ int CPhoneDevice::GetWData(IDevice::WEATHER_INFO *weatherInfo) } #ifdef USING_N938 -bool CPhoneDevice::OpenSensors() +bool CPhoneDevice::OpenSensors(int sensortype) { GpioControl::setInt(CMD_SET_CAM_3V3_EN_STATE, true ? 1 : 0); GpioControl::setInt(CMD_SET_485_EN_STATE, true ? 1 : 0); int igpio; - GpioControl::setInt(CMD_SET_WTH_POWER, 1); - GpioControl::setInt(CMD_SET_PULL_POWER, 1); - GpioControl::setInt(CMD_SET_ANGLE_POWER, 1); - GpioControl::setInt(CMD_SET_OTHER_POWER, 1); - GpioControl::setInt(CMD_SET_PIC1_POWER, 1); - igpio = GpioControl::getInt(CMD_SET_WTH_POWER); - igpio = GpioControl::getInt(CMD_SET_PULL_POWER); - igpio = GpioControl::getInt(CMD_SET_ANGLE_POWER); - igpio = GpioControl::getInt(CMD_SET_OTHER_POWER); - igpio = GpioControl::getInt(CMD_SET_PIC1_POWER); + if(sensortype == CAMERA_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_PIC1_POWER, 1); + igpio = GpioControl::getInt(CMD_SET_PIC1_POWER); + GpioControl::setInt(CMD_SET_485_en4, 1); + igpio = GpioControl::getInt(CMD_SET_485_en4); + }else if(sensortype == WEATHER_SENSOR_OPEN || sensortype == ICETHICK_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_WTH_POWER, 1); + igpio = GpioControl::getInt(CMD_SET_WTH_POWER); + GpioControl::setInt(CMD_SET_485_en0, 1); + igpio = GpioControl::getInt(CMD_SET_485_en0); + } + if(sensortype == ICETHICK_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_PULL_POWER, 1); + GpioControl::setInt(CMD_SET_ANGLE_POWER, 1); + igpio = GpioControl::getInt(CMD_SET_PULL_POWER); + igpio = GpioControl::getInt(CMD_SET_ANGLE_POWER); + GpioControl::setInt(CMD_SET_485_en1, 1); + GpioControl::setInt(CMD_SET_485_en2, 1); + igpio = GpioControl::getInt(CMD_SET_485_en1); + igpio = GpioControl::getInt(CMD_SET_485_en2); + } + + GpioControl::setInt(CMD_SET_OTHER_POWER, 1); + igpio = GpioControl::getInt(CMD_SET_OTHER_POWER); GpioControl::setInt(CMD_SET_SPI_POWER, 1); - GpioControl::setInt(CMD_SET_485_en0, 1); - GpioControl::setInt(CMD_SET_485_en1, 1); - GpioControl::setInt(CMD_SET_485_en2, 1); GpioControl::setInt(CMD_SET_485_en3, 1); - GpioControl::setInt(CMD_SET_485_en4, 1); - igpio = GpioControl::getInt(CMD_SET_SPI_POWER); - igpio = GpioControl::getInt(CMD_SET_485_en0); - igpio = GpioControl::getInt(CMD_SET_485_en1); - igpio = GpioControl::getInt(CMD_SET_485_en2); igpio = GpioControl::getInt(CMD_SET_485_en3); - igpio = GpioControl::getInt(CMD_SET_485_en4); + return 0; } -bool CPhoneDevice::CloseSensors() +bool CPhoneDevice::CloseSensors(int sensortype) { GpioControl::setInt(CMD_SET_12V_EN_STATE, false ? 1 : 0); GpioControl::setInt(CMD_SET_CAM_3V3_EN_STATE, false ? 1 : 0); GpioControl::setInt(CMD_SET_485_EN_STATE, false ? 1 : 0); int igpio; - GpioControl::setInt(CMD_SET_WTH_POWER, 0); - GpioControl::setInt(CMD_SET_PULL_POWER, 0); - GpioControl::setInt(CMD_SET_ANGLE_POWER, 0); - GpioControl::setInt(CMD_SET_OTHER_POWER, 0); - GpioControl::setInt(CMD_SET_PIC1_POWER, 0); + if(sensortype == CAMERA_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_PIC1_POWER, 0); + igpio = GpioControl::getInt(CMD_SET_PIC1_POWER); + GpioControl::setInt(CMD_SET_485_en4, 0); + igpio = GpioControl::getInt(CMD_SET_485_en4); + }else if(sensortype == WEATHER_SENSOR_OPEN || sensortype == ICETHICK_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_WTH_POWER, 0); + igpio = GpioControl::getInt(CMD_SET_WTH_POWER); + GpioControl::setInt(CMD_SET_485_en0, 0); + igpio = GpioControl::getInt(CMD_SET_485_en0); + } + if(sensortype == ICETHICK_SENSOR_OPEN) + { + GpioControl::setInt(CMD_SET_PULL_POWER, 0); + GpioControl::setInt(CMD_SET_ANGLE_POWER, 0); + igpio = GpioControl::getInt(CMD_SET_PULL_POWER); + igpio = GpioControl::getInt(CMD_SET_ANGLE_POWER); + GpioControl::setInt(CMD_SET_485_en1, 0); + GpioControl::setInt(CMD_SET_485_en2, 0); + igpio = GpioControl::getInt(CMD_SET_485_en1); + igpio = GpioControl::getInt(CMD_SET_485_en2); + } - igpio = GpioControl::getInt(CMD_SET_WTH_POWER); - igpio = GpioControl::getInt(CMD_SET_PULL_POWER); - igpio = GpioControl::getInt(CMD_SET_ANGLE_POWER); - igpio = GpioControl::getInt(CMD_SET_OTHER_POWER); - igpio = GpioControl::getInt(CMD_SET_PIC1_POWER); + GpioControl::setInt(CMD_SET_OTHER_POWER, 0); + igpio = GpioControl::getInt(CMD_SET_OTHER_POWER); GpioControl::setInt(CMD_SET_SPI_POWER, 0); - GpioControl::setInt(CMD_SET_485_en0, 0); - GpioControl::setInt(CMD_SET_485_en1, 0); - GpioControl::setInt(CMD_SET_485_en2, 0); GpioControl::setInt(CMD_SET_485_en3, 0); - GpioControl::setInt(CMD_SET_485_en4, 0); - - //sleep(3); igpio = GpioControl::getInt(CMD_SET_SPI_POWER); - igpio = GpioControl::getInt(CMD_SET_485_en0); - igpio = GpioControl::getInt(CMD_SET_485_en1); - igpio = GpioControl::getInt(CMD_SET_485_en2); igpio = GpioControl::getInt(CMD_SET_485_en3); - igpio = GpioControl::getInt(CMD_SET_485_en4); + return 0; } #else -bool CPhoneDevice::OpenSensors() +bool CPhoneDevice::OpenSensors(int sensortype) { return false; } diff --git a/app/src/main/cpp/PhoneDevice.h b/app/src/main/cpp/PhoneDevice.h index 35e970df..54bbcb08 100644 --- a/app/src/main/cpp/PhoneDevice.h +++ b/app/src/main/cpp/PhoneDevice.h @@ -219,8 +219,8 @@ public: virtual int GetWData(WEATHER_INFO *weatherInfo); virtual int GetIceData(ICE_INFO *iceInfo, ICE_TAIL *icetail, SENSOR_PARAM *sensorParam); - virtual bool OpenSensors(); - virtual bool CloseSensors(); + virtual bool OpenSensors(int sensortype); + virtual bool CloseSensors(int sensortype); bool GetNextScheduleItem(uint32_t tsBasedZero, uint32_t scheduleTime, vector& items);