Исключена обработка портов бракератора из отправки статуса портов 1903291538

This commit is contained in:
Иван Мокротоваров 2019-03-29 15:38:30 +03:00
parent c9a124e1c8
commit 88d6e9fc25
6 changed files with 41 additions and 37 deletions

View File

@ -5,19 +5,37 @@
extern Configuration config; extern Configuration config;
string ports = "";
BrakerProcess brakers[BRAKER_COUNT]; BrakerProcess brakers[BRAKER_COUNT];
void braker_add_port(char port){
if (instr(1,ports,port,1)==0){
ports+=(string)chr(port);
}
}
bool isBrakerPort(int port){
char p = (char)port;
// d(instr(1,ports,chr(p),1));
return (instr(1,ports,chr(p),1)>0);
}
void brakers_init(){ void brakers_init(){
ports = "";
config.STORE_BRAKER = false; config.STORE_BRAKER = false;
for (int num = 0;num <BRAKER_COUNT; num++){ for (int num = 0;num <BRAKER_COUNT; num++){
brakers[num].config = &config.BRAKERS[num]; brakers[num].config = &config.BRAKERS[num];
if (config.BRAKERS[num].Enable){ if (config.BRAKERS[num].Enable){
config.STORE_BRAKER = true; config.STORE_BRAKER = true;
#if PLATFORM_ID != SIMULATOR #if PLATFORM_ID != SIMULATOR
braker_add_port(config.BRAKERS[num].SensPort);
io.num = INPIN[config.BRAKERS[num].SensPort-1]; io.num = INPIN[config.BRAKERS[num].SensPort-1];
io.enabled=false; io.enabled=false;
io.num = INPIN[config.BRAKERS[num].DropPort-1]; if (config.BRAKERS[num].DropPort >0){
io.enabled=false; braker_add_port(config.BRAKERS[num].DropPort);
io.num = INPIN[config.BRAKERS[num].DropPort-1];
io.enabled=false;
}
io.num = OUTPIN[config.BRAKERS[num].Relay-1]; io.num = OUTPIN[config.BRAKERS[num].Relay-1];
io.enabled=true; io.enabled=true;
#endif #endif
@ -43,10 +61,14 @@ void braker_init(unsigned char number, unsigned char sensor, unsigned char drop,
if (config.BRAKERS[num].Enable){ if (config.BRAKERS[num].Enable){
config.STORE_BRAKER = true; config.STORE_BRAKER = true;
#if PLATFORM_ID != SIMULATOR #if PLATFORM_ID != SIMULATOR
braker_add_port(config.BRAKERS[num].SensPort);
io.num = INPIN[config.BRAKERS[num].SensPort-1]; io.num = INPIN[config.BRAKERS[num].SensPort-1];
io.enabled=false; io.enabled=false;
io.num = INPIN[config.BRAKERS[num].DropPort-1]; if (config.BRAKERS[num].DropPort >0){
io.enabled=false; braker_add_port(config.BRAKERS[num].DropPort);
io.num = INPIN[config.BRAKERS[num].DropPort-1];
io.enabled=false;
}
io.num = OUTPIN[config.BRAKERS[num].Relay-1]; io.num = OUTPIN[config.BRAKERS[num].Relay-1];
io.enabled=true; io.enabled=true;
#endif #endif
@ -105,6 +127,6 @@ string braker_get_current(unsigned char num){
string c = left(brakers[num].Fifo,1); string c = left(brakers[num].Fifo,1);
int l = len(brakers[num].Fifo); int l = len(brakers[num].Fifo);
brakers[num].Fifo = right(brakers[num].Fifo,l-1); brakers[num].Fifo = right(brakers[num].Fifo,l-1);
d("Бракиратор #"+str(num)+": Получено текущее значение = ["+c+"]"); d("Бракиратор #"+str(num+1)+": Получено текущее значение = ["+c+"]");
return c; return c;
} }

View File

@ -8,5 +8,6 @@ void braker_init(unsigned char number, unsigned char sensor, unsigned char drop,
void braker_set(string cmd); void braker_set(string cmd);
void braker_proc(unsigned char number); void braker_proc(unsigned char number);
string braker_get_current(unsigned char num); string braker_get_current(unsigned char num);
void braker_add_port(char port);
bool isBrakerPort(int port);
#endif #endif

View File

@ -61,25 +61,6 @@ void on_sock_inband() // обработка поступивших команд
}else { }else {
cmd_replay(cmd_system()); cmd_replay(cmd_system());
} }
/*
// d("{cmd}: "+cmd);
// d("{cmd}.params: "+params);
if (cmd == "setbraker"){
cmd_replay(cmd_setbraker(params));
}else if (cmd == "setencoder"){
cmd_replay(cmd_setencoder(params));
}else if (cmd == "enc_calibrate_start"){
cmd_replay(cmd_enc_calibre(params));
}else if (cmd == "enc_set_windows"){
cmd_replay(cmd_enc_set_windows(params));
}else if (cmd == "enc_calibrate_end"){
cmd_replay(cmd_enc_calibre("0"));
}else {
d("{cmd}: Unknown command: "+cmdline);
cmd_replay("{cmd}: Unknown command - ["+cmdline+"]");
}*/
position = instr(1,cmdbuffer,chr(sock.endchar),1); position = instr(1,cmdbuffer,chr(sock.endchar),1);
} }
} }
@ -257,7 +238,9 @@ string cmd_setencoder(){
config.EncoderCfg.workedPorts = ports; config.EncoderCfg.workedPorts = ports;
config_save(); config_save();
encoder_init(); encoder_init();
return "Энкодер настроен: Порт: "+str(pars[0])+ ", Режим: "+str(pars[1])+ ", Интервал: "+str(pars[2])+ ", Рабочие порты: "+pars[par_num]; string mess= "Энкодер настроен: Порт: "+str(pars[0])+ ", Режим: "+str(pars[1])+ ", Интервал: "+str(pars[2])+ ", Рабочие порты: "+pars[par_num];
d(mess);
return mess;
} }
string cmd_enc_calibre(){ string cmd_enc_calibre(){
int mode = val(pars[0]); int mode = val(pars[0]);
@ -327,14 +310,6 @@ string cmd_setbraker()
brakers_init(); brakers_init();
return "OK: Braker "+str(num)+" now OFF"; return "OK: Braker "+str(num)+" now OFF";
} }
// string rrrr = right(params,len(params)-n+1);
// if (c.Enable){
// c.Relay= vals[1];
// c.SensPort= vals[2];
// c.DropPort= vals[3];
// c.Timeout= (strtof(right(params,len(params)-n+1))*1000);
// }
// //braker_init(unsigned char number, unsigned char sensor, unsigned char drop, unsigned char relay, unsigned long timeout);
float timeout = (strtof(pars[par_num])*1000); float timeout = (strtof(pars[par_num])*1000);
braker_init(num,val(pars[2]),val(vals[3]),val(vals[1]),timeout); braker_init(num,val(pars[2]),val(vals[3]),val(vals[1]),timeout);
string message; string message;
@ -349,7 +324,6 @@ string cmd_setbraker()
void getParams(string params){ void getParams(string params){
//d("params: "+params);
for (int i=0;i<10;i++){ for (int i=0;i<10;i++){
pars[i]=""; pars[i]="";
} }

View File

@ -9,7 +9,7 @@
#message "link global not defined" #message "link global not defined"
#endif #endif
#define VERSION "2.0b_1903051448" #define VERSION "2.0b_1903291538"
#define MAX_FIFO_SIZE 20 #define MAX_FIFO_SIZE 20
#define BRAKER_COUNT 3 #define BRAKER_COUNT 3
@ -129,3 +129,4 @@ extern BrakerProcess brakers[BRAKER_COUNT];

View File

@ -137,7 +137,7 @@ if (!inEncCalibrate()){
} }
// sensors process // sensors process
for (int i=1; i <= SENSORS; i++){ for (int i=1; i <= SENSORS; i++){
if (pinChange(i)){ if (!isBrakerPort(i) && pinChange(i)){
//bool state = getPinStateS(i,!config.debug.EncoderStateMode); //bool state = getPinStateS(i,!config.debug.EncoderStateMode);
bool state = getPinStateS(i, !inEncCalibrate()); bool state = getPinStateS(i, !inEncCalibrate());
if (getEncEnabled(i,state)){ if (getEncEnabled(i,state)){

6
net.tc
View File

@ -146,21 +146,27 @@ void net_send_data(int sock_num,string data){
} }
void on_sock_data_arrival() void on_sock_data_arrival()
{ {
t("sock_start");
switch (sock.num){ switch (sock.num){
case 0: case 0:
net_sensor_handle(sock.getdata(sock.rxlen)); net_sensor_handle(sock.getdata(sock.rxlen));
break; break;
case 1: case 1:
t("relay_start");
net_relay_handle(sock.getdata(sock.rxlen)); net_relay_handle(sock.getdata(sock.rxlen));
t("relay_end");
break; break;
case 2: case 2:
net_diag_handle(sock.getdata(sock.rxlen)); net_diag_handle(sock.getdata(sock.rxlen));
break; break;
case 3: case 3:
t("relay_start");
//net_config_handle(sock.getdata(sock.rxlen)); //net_config_handle(sock.getdata(sock.rxlen));
net_relay_handle(sock.getdata(sock.rxlen)); net_relay_handle(sock.getdata(sock.rxlen));
t("relay_end");
break; break;
default: default:
sock.getdata(sock.rxlen); sock.getdata(sock.rxlen);
} }
t("sock_end");
} }