diff --git a/command.tc b/command.tc index d024ba6..458a8eb 100644 --- a/command.tc +++ b/command.tc @@ -243,7 +243,18 @@ string cmd_setencoder(){ config.EncoderCfg.encoderPort = pars[0]; config.EncoderCfg.encoderMode = pars[1]; config.EncoderCfg.encoderInterval = pars[2]; - config.EncoderCfg.workedPorts = pars[par_num]; + string ports; + string port = pars[par_num]; + int n = 1; + int p = instr(1,port,".",1); + while (p>0){ + ports+=chr(val(mid(port,n,n-p))); + n = p+1; + p = instr(n,port,".",1); + } + ports += chr(val(mid(port,n,len(port)-n+1))); + + config.EncoderCfg.workedPorts = ports; config_save(); encoder_init(); return "Энкодер настроен: Порт: "+str(pars[0])+ ", Режим: "+str(pars[1])+ ", Интервал: "+str(pars[2])+ ", Рабочие порты: "+pars[par_num]; diff --git a/encoder.tc b/encoder.tc index 8ecaf3e..b31c27f 100644 --- a/encoder.tc +++ b/encoder.tc @@ -42,7 +42,8 @@ void encoder_init(){ inited = true; #if PLATFORM_ID != SIMULATOR io.intnum = intnum-1; - if (config.STORE_ENCODER) io.intenabled = YES; + //if (config.STORE_ENCODER) + io.intenabled = YES; #endif } @@ -89,9 +90,10 @@ bool getEncEnabled(unsigned char port,bool value){ }else{ if (config.debug.EncoderDebug>2) d(str(port)+" не попал о окно "+str(works[portVector[port]].Count)); } - t("enc_end"); - if (works[portVector[port]].State) + if (works[portVector[port]].State) { send_encoder_tick(port,count); + } + t("enc_end"); return works[portVector[port]].State; } else{ @@ -108,8 +110,8 @@ bool getEncEnabled(unsigned char port,bool value){ void on_io_int(unsigned char linestate){ t("enc_int_start"); count ++; - string workers = vector[linestate-1]; - if(calibrate_mode>0){ + //string workers = vector[linestate-1]; + if(calibrate_mode>0){ // калибровка for (int i=0;i0) d("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i])); + send_encoder_tick(port,count); } z[i]++; calibrate_count[i]=0; diff --git a/global.th b/global.th index d53e7c7..f0d838b 100644 --- a/global.th +++ b/global.th @@ -9,7 +9,7 @@ #message "link global not defined" #endif -#define VERSION "2.0b_1902181804" +#define VERSION "2.0b_1902201737" #define MAX_FIFO_SIZE 20 #define BRAKER_COUNT 3 @@ -126,3 +126,4 @@ extern BrakerProcess brakers[BRAKER_COUNT]; + diff --git a/main.tc b/main.tc index dadd43c..b1334e0 100644 --- a/main.tc +++ b/main.tc @@ -139,7 +139,7 @@ if (!inEncCalibrate()){ for (int i=1; i <= SENSORS; i++){ if (pinChange(i)){ //bool state = getPinStateS(i,!config.debug.EncoderStateMode); - bool state = getPinStateS(i,true); + bool state = getPinStateS(i, !inEncCalibrate()); if (getEncEnabled(i,state)){ // getPinStateS(i,config.debug.EncoderStateMode); send_sensor(i,state); diff --git a/net.tc b/net.tc index 59c5259..fbf5ca7 100644 --- a/net.tc +++ b/net.tc @@ -125,13 +125,15 @@ void send_sensor(int number, bool state){ } } void send_encoder_tick(int number, unsigned long count){ + int n = sock.num; sock.num = 0; if (sock.statesimple == PL_SSTS_EST){ if (config.debug.SensorsLook) - d("Send sensor tick "+str(number)+" : "+stri(count)); + d("Send encoder tick "+str(number)+" : "+stri(count)); sock.setdata("enc="+str(number)+":"+(lstri(count))+chr(13)+chr(10)); sock.send(); } + sock.num = n; }