diff --git a/app/src/main/cpp/GPIOControl.h b/app/src/main/cpp/GPIOControl.h index a0724d3b..72735849 100644 --- a/app/src/main/cpp/GPIOControl.h +++ b/app/src/main/cpp/GPIOControl.h @@ -61,8 +61,10 @@ #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_GET_CHARGING_BUS_VOLTAGE_STATE 112 +// #define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 +#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 117 +#define CMD_GET_BAT_BUS_VOLTAGE_STATE 112 #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 diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index abf97344..f41e104b 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1529,7 +1529,7 @@ bool CPhoneDevice::TakePhotoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c XYLOG(XYLOG_SEVERITY_DEBUG, "Ethernet Power ON"); std::shared_ptr ethernetPowerCtrl = std::make_shared(1); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); SetStaticIp(); std::this_thread::sleep_for(std::chrono::milliseconds(256)); @@ -2179,6 +2179,10 @@ void visualize(const char* filename, const ncnn::Mat& m) void DrawOutlineText(cv::Ptr ft2, cv::Mat& mat, const std::string& str, cv::Point startPoint, int fontSize, cv::Scalar clr, int thickness) { + if (mat.empty()) + { + return; + } std::vector lines = split(str, "\n"); int lineHeight = 0; cv::Point pt = startPoint; @@ -2258,6 +2262,13 @@ bool CPhoneDevice::onOneCapture(std::shared_ptr characteristics closeThread.detach(); } + if (rgb.empty()) + { + XYLOG(XYLOG_SEVERITY_ERROR, "Empty Mat object CH=%u IMGID=%u", (uint32_t)photoInfo.channel, (uint32_t)photoInfo.photoId); + TakePhotoCb(0, photoInfo, "", takingTime); + return true; + } + CPhoneDevice* pThis = this; std::thread th([pThis, characteristics, result, photoInfo, osds, path, rgb, facing, sensorOrientation, ldr, duration, takingTime]() { @@ -2701,11 +2712,21 @@ bool CPhoneDevice::onBurstCapture(std::shared_ptr characteristi } cv::cvtColor(rgb, rgb, cv::COLOR_RGB2BGR); #endif // USING_EXEC_HDRP - bool res = pThis->PostProcessPhoto(photoInfo, osds, path, cameraInfo, rgb); - if (res) + + if (rgb.empty()) { - // TakePhotoCb(2, photoInfo, path, takingTime); + XYLOG(XYLOG_SEVERITY_ERROR, "Empty Mat object CH=%u IMGID=%u", (uint32_t)photoInfo.channel, (uint32_t)photoInfo.photoId); + pThis->TakePhotoCb(0, photoInfo, path, takingTime); } + else + { + bool res = pThis->PostProcessPhoto(photoInfo, osds, path, cameraInfo, rgb); + if (res) + { + // TakePhotoCb(2, photoInfo, path, takingTime); + } + } + }); th.detach(); @@ -3015,11 +3036,20 @@ bool CPhoneDevice::onBurstCapture(std::shared_ptr characteristi cv::cvtColor(rgb, rgb, cv::COLOR_RGB2BGR); } - bool res = pThis->PostProcessPhoto(photoInfo, osds, path, cameraInfo, rgb); - if (res) + if (rgb.empty()) { - // TakePhotoCb(2, photoInfo, path, takingTime); + XYLOG(XYLOG_SEVERITY_ERROR, "Empty Mat object CH=%u IMGID=%u", (uint32_t)photoInfo.channel, (uint32_t)photoInfo.photoId); + pThis->TakePhotoCb(0, photoInfo, path, takingTime); } + else + { + bool res = pThis->PostProcessPhoto(photoInfo, osds, path, cameraInfo, rgb); + if (res) + { + // TakePhotoCb(2, photoInfo, path, takingTime); + } + } + }); th.detach();