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);