调整超声波流程
This commit is contained in:
parent
f670bc5342
commit
5a8f86b81b
|
@ -410,7 +410,7 @@ void MultiFrameCapture::snaprun()
|
|||
}
|
||||
|
||||
uint32_t sendLine = video->HtCamReadFpgaRegs(0x000e);////0x000e 取出来的实际行数
|
||||
printf("--------------fpga send line ------------:%d\r\n",sendLine);
|
||||
//printf("--------------fpga send line ------------:%d\r\n",sendLine);
|
||||
if (data)
|
||||
{
|
||||
cv::Mat mat = cv::Mat(frame_info.height, frame_info.width, CV_8UC1, data, cv::Mat::AUTO_STEP);
|
||||
|
@ -418,7 +418,7 @@ void MultiFrameCapture::snaprun()
|
|||
// printf("--------------frame_index------------:%d\r\n",frame_index);
|
||||
if (cnt == 2)
|
||||
{
|
||||
cv::imwrite("/home/root/test.bmp", mat);
|
||||
//cv::imwrite("/home/root/test.bmp", mat);
|
||||
//cv::imwrite("/home/root/test.bmp", mat);
|
||||
//savebitmap(data,15552,512,"1.bmp");
|
||||
}
|
||||
|
@ -446,7 +446,7 @@ void MultiFrameCapture::snaprun()
|
|||
m_glue.m_imageready(info);
|
||||
|
||||
//m_frameinfos.Put(frame_info);
|
||||
printf("采集图像耗时:%f\r\n",sw.elapsed_ms());
|
||||
//printf("采集图像耗时:%f\r\n",sw.elapsed_ms());
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
|
@ -491,7 +491,7 @@ void MultiFrameCapture::snaprun()
|
|||
|
||||
for (size_t i = 1; i <= frame_cnt; i++)
|
||||
{
|
||||
printf("***********设置的帧数:%d 正在采集第[%d]帧************\r\n",frame_cnt,i);
|
||||
//printf("***********设置的帧数:%d 正在采集第[%d]帧************\r\n",frame_cnt,i);
|
||||
|
||||
frame_info.first_frame = i == 1 ? true : false;
|
||||
frame_info.last_frame = i == frame_cnt ? true : false;
|
||||
|
@ -518,7 +518,7 @@ void MultiFrameCapture::snaprun()
|
|||
{
|
||||
frame_info.last_frame = val == 1 ? true : false;
|
||||
func_sig = snap_func(frame_info, channels,time_out);//同上面一样
|
||||
printf("-----------当前采集到第:[%d]帧 CIS总共采集[%d]帧 -------\r\n",ind,frame_num);
|
||||
//printf("-----------当前采集到第:[%d]帧 CIS总共采集[%d]帧 -------\r\n",ind,frame_num);
|
||||
|
||||
if (func_sig == -1 )
|
||||
{
|
||||
|
|
|
@ -83,9 +83,9 @@ Scanner::Scanner(ScannerGlue glue)
|
|||
motorCuozhi.setDirection(false);
|
||||
//sensor->isPaperAtScan();
|
||||
//system("cat /sys/class/gpio/gpio226/value");
|
||||
sensor->enableDoubleSensor(true);
|
||||
//sensor->enableDoubleSensor(true);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
||||
sensor->enableDoubleSensor(false);
|
||||
//sensor->enableDoubleSensor(false);
|
||||
FsmState::setScanner(this);
|
||||
threadRunMessageLoop = std::thread(&Scanner::runMessageLoop, this);
|
||||
Motor::enablePower(true);
|
||||
|
@ -216,7 +216,7 @@ void Scanner::runScan()
|
|||
motorCuozhi.pauseWaitForThread();
|
||||
|
||||
//capturer->open();
|
||||
sensor->enableDoubleSensor(false);
|
||||
//sensor->enableDoubleSensor(false);
|
||||
|
||||
if (!isPaperInit)
|
||||
{
|
||||
|
@ -269,7 +269,7 @@ void Scanner::runScan()
|
|||
}
|
||||
|
||||
sensor->enableDoubleSensor(m_config.params.doubleFeeded);
|
||||
//LOG("enableDoubleSensor QQQQQQQ:%s %s\n", m_config.params.doubleFeeded ? "true" : "false",GetCurrentTimeStamp(2).c_str());
|
||||
LOG("enableDoubleSensor QQQQQQQ:%s %s\n", m_config.params.doubleFeeded ? "true" : "false",GetCurrentTimeStamp(2).c_str());
|
||||
if (m_DstScannum == 0) //被取消扫描了
|
||||
{
|
||||
LOG("canceled canceled canceled 999999999999999999999999999999999999999999 \n");
|
||||
|
|
11
Scanner.h
11
Scanner.h
|
@ -33,7 +33,7 @@ public:
|
|||
void startScan();
|
||||
void emergency_stop(int id)
|
||||
{
|
||||
sensor->enableDoubleSensor(false);
|
||||
|
||||
sensor->cancelWaitPaper();
|
||||
m_DstScannum = 0;
|
||||
if (id == 1) //双张
|
||||
|
@ -45,13 +45,16 @@ public:
|
|||
put(S_EVT_SCAN_STOPPED);
|
||||
SaveScaninfo(m_scaninfo);
|
||||
start_enter_lowpwoer();
|
||||
LOG("emergency_stop capturer->close() \n");
|
||||
printf("emergency_stop capturer->close() \n");
|
||||
|
||||
|
||||
//sensor->enableDoubleSensor(false);
|
||||
}
|
||||
|
||||
void stop_scan()
|
||||
{
|
||||
//LOG("!!!!!!!!!!!!!!!!!!!!!stop_scan() waitting snap session done \n");
|
||||
sensor->enableDoubleSensor(false);
|
||||
printf("!!!!!!!!!!!!!!!!!!!!!stop_scan() waitting snap session done \n");
|
||||
//sensor->enableDoubleSensor(false);
|
||||
sensor->cancelWaitPaper();
|
||||
m_DstScannum = 0;
|
||||
//LOG("!!!!!!!!!!!!!!!!!!!!!!!!!!stop_scan() waitting snap session done \n");
|
||||
|
|
24
Sensor.cpp
24
Sensor.cpp
|
@ -18,8 +18,8 @@ Sensor::Sensor(BlockingQueue<ScanEvent> &sysEvents)
|
|||
paperPin(PIN_PORT_7010::HAVE_OR_NO_PAPER),
|
||||
scanPin (PIN_PORT_7010::SCAN_SENSOR),
|
||||
doubleEnablePin(PIN_PORT_7010::ULTRASONIC_SENSORS_ON),
|
||||
double_out0_Pin(PIN_PORT_7010::ULTRASONIC_SENSORS_OUT0),
|
||||
double_out1_Pin(PIN_PORT_7010::ULTRASONIC_SENSORS_OUT1),
|
||||
double_out0_Pin(PIN_PORT_7010::ULTRASONIC_SENSORS_OUT1),
|
||||
double_out1_Pin(PIN_PORT_7010::ULTRASONIC_SENSORS_OUT0),
|
||||
sensor_power(PIN_PORT_7010::SENSOR_POWER)
|
||||
|
||||
{
|
||||
|
@ -52,7 +52,6 @@ Sensor::Sensor(BlockingQueue<ScanEvent> &sysEvents)
|
|||
//std::cout<<"scanPin "<< scanPin.getValue()<<std::endl;
|
||||
thread_monitor = std::thread(&Sensor::monitor, this);
|
||||
thread_monitor2 = std::thread(&Sensor::monitor2, this);
|
||||
enableDoubleSensor(true);
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||
enableDoubleSensor(false);
|
||||
LOG(" init sensor done \n");
|
||||
|
@ -70,7 +69,7 @@ Sensor::~Sensor()
|
|||
|
||||
bool Sensor::isCoverClosed()
|
||||
{
|
||||
std::cout<<"isCoverClosed "<< coverPin.getValue()<<std::endl;
|
||||
//std::cout<<"isCoverClosed "<< coverPin.getValue()<<std::endl;
|
||||
return coverPin.getValue() == Gpio::Low;
|
||||
}
|
||||
|
||||
|
@ -80,7 +79,7 @@ void Sensor::resetPaperPin()
|
|||
}
|
||||
bool Sensor::isPaperStandby()
|
||||
{
|
||||
std::cout<<"isPaperStandby "<< paperPin.getValue()<<std::endl;
|
||||
//std::cout<<"isPaperStandby "<< paperPin.getValue()<<std::endl;
|
||||
return paperPin.getValue();
|
||||
}
|
||||
|
||||
|
@ -239,40 +238,39 @@ void Sensor::monitor2()
|
|||
// //LOG("\n\n---------------double paper ----------------:%s \n\n", GetCurrentTimeStamp(2).c_str());
|
||||
// enableDoubleSensor(false);
|
||||
// }
|
||||
printf("i:%d\r\n",i);
|
||||
if (i == 2)
|
||||
{
|
||||
double_1 = ret;
|
||||
printf("2 double_1 :%d double_2:%d\r\n",double_1,double_2);
|
||||
if (double_2 && double_1)
|
||||
if (double_2 && double_1 && enbale_double_)
|
||||
{
|
||||
|
||||
printf("双张111111111111111111111111\r\n");
|
||||
events.Put(ScanEvent(S_EVT_DOUBLEPAPER));
|
||||
enableDoubleSensor(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
//printf("3 double_1 :%d double_2:%d\r\n",double_1,double_2);
|
||||
events.Put(ScanEvent(S_EVT_NOT_DOUBLEPAPER));
|
||||
//events.Put(ScanEvent(S_EVT_NOT_DOUBLEPAPER));
|
||||
}
|
||||
}
|
||||
if (i == 3)
|
||||
{
|
||||
double_2 = ret;
|
||||
printf("3 double_1 :%d double_2:%d\r\n",double_1,double_2);
|
||||
if (double_2 && double_1)
|
||||
if (double_2 && double_1 && enbale_double_)
|
||||
{
|
||||
|
||||
printf("双张2222222222222222222222\r\n");
|
||||
events.Put(ScanEvent(S_EVT_DOUBLEPAPER));
|
||||
enableDoubleSensor(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
//printf("4 double_1 :%d double_2:%d\r\n",double_1,double_2);
|
||||
events.Put(ScanEvent(S_EVT_NOT_DOUBLEPAPER));
|
||||
//events.Put(ScanEvent(S_EVT_NOT_DOUBLEPAPER));
|
||||
}
|
||||
}
|
||||
if (i != 4 && i != 3)
|
||||
if (i != 2 && i != 3)
|
||||
{
|
||||
if(i == 1)
|
||||
{
|
||||
|
|
4
Sensor.h
4
Sensor.h
|
@ -12,8 +12,11 @@ public:
|
|||
Sensor(BlockingQueue<ScanEvent>& sysEvents);
|
||||
~Sensor();
|
||||
|
||||
//出现双张或者在没有双张时并且结束扫描需要关闭超声波检测,
|
||||
void enableDoubleSensor(bool enable) {
|
||||
enbale_double_ = enable;
|
||||
doubleEnablePin.setValue((Gpio::GpioLevel)enable);
|
||||
printf("是否使能超声波:%s\r\n",enable?"true":"false");
|
||||
}
|
||||
|
||||
void resetPaperPin();
|
||||
|
@ -62,6 +65,7 @@ private:
|
|||
volatile bool bMonitor2 = true;
|
||||
volatile bool double_1 = false;
|
||||
volatile bool double_2 = false;
|
||||
volatile bool enbale_double_=false;
|
||||
void monitor();
|
||||
void monitor2();
|
||||
int readfile(int fd,int num , char* buf);
|
||||
|
|
2
main.cpp
2
main.cpp
|
@ -386,7 +386,7 @@ int main(int argc, char *argv[])
|
|||
//free(info.pJpegData);
|
||||
tjFree(info.pJpegData);
|
||||
LOG("Free info.pJpegData done\n");
|
||||
printf("TIME!!!!!!!!!!!!! :%f info.DataLength:%d\r\n",sw.elapsed_ms(),info.DataLength);
|
||||
//printf("TIME!!!!!!!!!!!!! :%f info.DataLength:%d\r\n",sw.elapsed_ms(),info.DataLength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue