Исключена обработка портов бракератора из отправки статуса портов 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;
string ports = "";
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(){
ports = "";
config.STORE_BRAKER = false;
for (int num = 0;num <BRAKER_COUNT; num++){
brakers[num].config = &config.BRAKERS[num];
if (config.BRAKERS[num].Enable){
config.STORE_BRAKER = true;
#if PLATFORM_ID != SIMULATOR
braker_add_port(config.BRAKERS[num].SensPort);
io.num = INPIN[config.BRAKERS[num].SensPort-1];
io.enabled=false;
io.num = INPIN[config.BRAKERS[num].DropPort-1];
io.enabled=false;
if (config.BRAKERS[num].DropPort >0){
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.enabled=true;
#endif
@ -43,10 +61,14 @@ void braker_init(unsigned char number, unsigned char sensor, unsigned char drop,
if (config.BRAKERS[num].Enable){
config.STORE_BRAKER = true;
#if PLATFORM_ID != SIMULATOR
braker_add_port(config.BRAKERS[num].SensPort);
io.num = INPIN[config.BRAKERS[num].SensPort-1];
io.enabled=false;
io.num = INPIN[config.BRAKERS[num].DropPort-1];
io.enabled=false;
if (config.BRAKERS[num].DropPort >0){
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.enabled=true;
#endif
@ -105,6 +127,6 @@ string braker_get_current(unsigned char num){
string c = left(brakers[num].Fifo,1);
int l = len(brakers[num].Fifo);
brakers[num].Fifo = right(brakers[num].Fifo,l-1);
d("Бракиратор #"+str(num)+": Получено текущее значение = ["+c+"]");
d("Бракиратор #"+str(num+1)+": Получено текущее значение = ["+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_proc(unsigned char number);
string braker_get_current(unsigned char num);
void braker_add_port(char port);
bool isBrakerPort(int port);
#endif

View File

@ -61,25 +61,6 @@ void on_sock_inband() // обработка поступивших команд
}else {
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);
}
}
@ -257,7 +238,9 @@ string cmd_setencoder(){
config.EncoderCfg.workedPorts = ports;
config_save();
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(){
int mode = val(pars[0]);
@ -327,14 +310,6 @@ string cmd_setbraker()
brakers_init();
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);
braker_init(num,val(pars[2]),val(vals[3]),val(vals[1]),timeout);
string message;
@ -349,7 +324,6 @@ string cmd_setbraker()
void getParams(string params){
//d("params: "+params);
for (int i=0;i<10;i++){
pars[i]="";
}

View File

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

View File

@ -137,7 +137,7 @@ if (!inEncCalibrate()){
}
// sensors process
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, !inEncCalibrate());
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()
{
t("sock_start");
switch (sock.num){
case 0:
net_sensor_handle(sock.getdata(sock.rxlen));
break;
case 1:
t("relay_start");
net_relay_handle(sock.getdata(sock.rxlen));
t("relay_end");
break;
case 2:
net_diag_handle(sock.getdata(sock.rxlen));
break;
case 3:
t("relay_start");
//net_config_handle(sock.getdata(sock.rxlen));
net_relay_handle(sock.getdata(sock.rxlen));
t("relay_end");
break;
default:
sock.getdata(sock.rxlen);
}
t("sock_end");
}