云台控制线程

N938
XI.CHEN 6 months ago
parent 99c8e158c2
commit fcd78f02a6

@ -3681,65 +3681,75 @@ void CPhoneDevice::ConvertDngToPng(const std::string& dngPath, const std::string
void CPhoneDevice::CameraCtrl(unsigned char waitTime, unsigned char delayTime, unsigned char channel, int cmdidx, unsigned char preset, const char *serfile, unsigned int baud, int addr) void CPhoneDevice::CameraCtrl(unsigned char waitTime, unsigned char delayTime, unsigned char channel, int cmdidx, unsigned char preset, const char *serfile, unsigned int baud, int addr)
{ {
if(!(m_sensorsStatus && !m_cameraStatus)) {
CPhoneDevice *pThis = this;
std::thread ctrlThread([pThis, waitTime, delayTime, cmdidx, channel, preset, serfile, baud,
addr]() mutable {
switch (cmdidx) { switch (cmdidx) {
case 2: { case 2: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime);
CameraPhotoCmd(time(NULL), channel, MOVE_PRESETNO, 0, preset, serfile, baud, addr); pThis->OpenPTZSensors(waitTime);
ClosePTZSensors(delayTime); CameraPhotoCmd(time(NULL), channel, MOVE_PRESETNO, 0, preset, serfile, baud,
addr);
pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 3: { case 3: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, MOVE_UP, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, MOVE_UP, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 4: { case 4: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, MOVE_DOWN, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, MOVE_DOWN, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 5: { case 5: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, MOVE_LEFT, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, MOVE_LEFT, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 6: { case 6: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, MOVE_RIGHT, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, MOVE_RIGHT, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 7: { case 7: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, ZOOM_WIDE, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, ZOOM_WIDE, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 8: { case 8: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(0, channel, ZOOM_TELE, 0, 0, serfile, baud, addr); CameraPhotoCmd(0, channel, ZOOM_TELE, 0, 0, serfile, baud, addr);
ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
break; break;
} }
case 9: { case 9: {
// if(GetCameraStatus()) // if(GetCameraStatus())
OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(time(NULL), channel, SAVE_PRESETNO, 0, preset, serfile, baud, addr); CameraPhotoCmd(time(NULL), channel, SAVE_PRESETNO, 0, preset, serfile, baud,
ClosePTZSensors(delayTime); addr);
pThis->ClosePTZSensors(delayTime);
break; break;
} }
} }
});
ctrlThread.detach();
}
} }
int CPhoneDevice::GetSerialPhoto(int devno, D_IMAGE_DEF *photo) int CPhoneDevice::GetSerialPhoto(int devno, D_IMAGE_DEF *photo)

Loading…
Cancel
Save