Files
checker_host/prot_cmd/cmd_m4.cpp

97 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "base/base.h"
#include "base/check_cfg.h"
#include "base/mycfg.h"
#include "prot/prot_m4.h"
#include "prot/prot_pc.h"
#include "base/beep.h"
#include "prot_cmd/cmd_coder.h"
#include "elec/coder_lib.h"
#include "elec/elec_judge.h"
typedef struct{
int key_pressed;
int ke1_pressed;
}self_def;
static self_def g_self;
static int docmd_ke1();
void cmd_m4_init()
{
prot_m4 *m4=protM4();
beep *beep_=Beep();
mycfg *cfg_=syscfg();
m4->set_irq_fun([=](myarray data){
ProtPc *pc=protPc();
g_self.key_pressed=1;
qDebug("key press");
pc->send_data_slot(0x37,myarray(1,char(0)));
},"key press");
m4->set_irq_fun([=](myarray data){
g_self.key_pressed=0;
qDebug("key up");
},"key up");
m4->set_irq_fun([=](myarray data){
g_self.ke1_pressed=1;
beep_->set_state(true);
qDebug("ke1 press");
},"ke1 press");
m4->set_irq_fun([=](myarray data){
g_self.ke1_pressed=0;
beep_->set_state(false);
qDebug("ke1 up");
docmd_ke1();
},"ke1 up");
// m4->set_irq_fun([=](myarray data){
// ProtPc *pc=protPc();
// qDebug("send 0x37 to pc");
// pc->send_data_slot(0x37,myarray(1,char(0)));
// },"key press");
}
// 返回1则按键已按下
int cmd_m4_key_pressed()
{
if(g_self.key_pressed){
return 1;
}else{
return 0;
}
}
static int docmd_ke1(){
/*
赋码仪按键按下时如果是赋码仪一体机则发送请求赋码命令0x8b
按键加上300ms屏蔽
赋码仪按键按下,直接开始检测
*/
ProtPc *pc=protPc();
mycfg *cfg_=syscfg();
check_cfg *ccfg_=check_plan();
if(cfg_->device_type=="inte_coder"){
int chip=elec_extract_chip(ccfg_->get_plan_id());
QByteArray r;
r.append(char(chip));
qInfo("key1 press:send cmd 0x8b.");
pc->send_data_slot(0x8b,r);
}else{
char data[]={10,0};
qInfo("key1 press:start check.");
pc->docmd(0xe0,myarray(data,2));
}
return 0;
}