╤сюЁър 1901301648
This commit is contained in:
parent
39d899aca1
commit
659bcc8ed4
|
|
@ -1,13 +1,13 @@
|
||||||
[project]
|
[project]
|
||||||
watch=works[i].Count, portVector, works[i].WorkPort, len(port), pinState, z, works[i], EncoderCfg.reinitInterval, works
|
watch=works[i].Count, portVector, works[i].WorkPort, len(port), pinState, z, works[i], EncoderCfg.reinitInterval, works
|
||||||
[file1]
|
[file1]
|
||||||
line=0
|
line=60
|
||||||
cursor=263
|
cursor=465
|
||||||
opened=active
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file2]
|
[file2]
|
||||||
line=62
|
line=68
|
||||||
cursor=1455
|
cursor=1100
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file3]
|
[file3]
|
||||||
|
|
@ -26,13 +26,13 @@ cursor=161
|
||||||
opened=no
|
opened=no
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file6]
|
[file6]
|
||||||
line=0
|
line=108
|
||||||
cursor=190
|
cursor=1395
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file7]
|
[file7]
|
||||||
line=100
|
line=0
|
||||||
cursor=2644
|
cursor=2450
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file8]
|
[file8]
|
||||||
|
|
@ -45,8 +45,8 @@ line=0
|
||||||
cursor=0
|
cursor=0
|
||||||
opened=no
|
opened=no
|
||||||
[file10]
|
[file10]
|
||||||
line=22
|
line=168
|
||||||
cursor=5043
|
cursor=5269
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file11]
|
[file11]
|
||||||
|
|
@ -70,8 +70,8 @@ cursor=93
|
||||||
opened=no
|
opened=no
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file15]
|
[file15]
|
||||||
line=0
|
line=7
|
||||||
cursor=294
|
cursor=20
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file16]
|
[file16]
|
||||||
|
|
@ -86,7 +86,7 @@ opened=no
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file18]
|
[file18]
|
||||||
line=0
|
line=0
|
||||||
cursor=334
|
cursor=295
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file19]
|
[file19]
|
||||||
|
|
@ -95,9 +95,9 @@ cursor=93
|
||||||
opened=yes
|
opened=yes
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file20]
|
[file20]
|
||||||
line=0
|
line=48
|
||||||
cursor=2782
|
cursor=2344
|
||||||
opened=yes
|
opened=active
|
||||||
breakpoints=
|
breakpoints=
|
||||||
[file21]
|
[file21]
|
||||||
line=0
|
line=0
|
||||||
|
|
|
||||||
27
command.tc
27
command.tc
|
|
@ -21,15 +21,13 @@ void on_sock_inband() // обработка поступивших команд
|
||||||
cmdlen = instr(1,cmdline,chr('&'),1);
|
cmdlen = instr(1,cmdline,chr('&'),1);
|
||||||
string cmd = left(cmdline,cmdlen-1);
|
string cmd = left(cmdline,cmdlen-1);
|
||||||
string params = mid(cmdline,cmdlen+1,position-cmdlen-1);
|
string params = mid(cmdline,cmdlen+1,position-cmdlen-1);
|
||||||
d("{cmd}: "+cmd);
|
// d("{cmd}: "+cmd);
|
||||||
d("{cmd}.params: "+params);
|
// d("{cmd}.params: "+params);
|
||||||
if (cmd =="systeminfo"){
|
if (cmd =="systeminfo"){
|
||||||
cmd_replay(cmd_systeminfo());
|
cmd_replay(cmd_systeminfo());
|
||||||
}else if (cmd == "reset" || cmd == "reboot"){
|
}else if (cmd == "reset" || cmd == "reboot"){
|
||||||
// cmd_replay(cmd_reset());
|
|
||||||
cmd_replay("{cmd} Rebooting...");
|
cmd_replay("{cmd} Rebooting...");
|
||||||
cmd_reset();
|
cmd_reset();
|
||||||
|
|
||||||
}else if (cmd == "ip"){
|
}else if (cmd == "ip"){
|
||||||
cmd_replay(cmd_ip(params));
|
cmd_replay(cmd_ip(params));
|
||||||
}else if (cmd == "setbraker"){
|
}else if (cmd == "setbraker"){
|
||||||
|
|
@ -38,6 +36,10 @@ void on_sock_inband() // обработка поступивших команд
|
||||||
cmd_replay(cmd_setencoder(params));
|
cmd_replay(cmd_setencoder(params));
|
||||||
}else if (cmd == "enc_calibrate_start"){
|
}else if (cmd == "enc_calibrate_start"){
|
||||||
cmd_replay(cmd_enc_calibre(params));
|
cmd_replay(cmd_enc_calibre(params));
|
||||||
|
}else if (cmd == "enc_set_windows"){
|
||||||
|
cmd_replay(cmd_enc_set_windows(params));
|
||||||
|
}else if (cmd == "debug_enc_level"){
|
||||||
|
cmd_replay(cmd_debug_enc_level(params));
|
||||||
}else if (cmd == "debug_sensors"){
|
}else if (cmd == "debug_sensors"){
|
||||||
cmd_replay(cmd_debug_sensors(params));
|
cmd_replay(cmd_debug_sensors(params));
|
||||||
}else if (cmd == "debug_showtime"){
|
}else if (cmd == "debug_showtime"){
|
||||||
|
|
@ -55,15 +57,28 @@ void on_sock_inband() // обработка поступивших команд
|
||||||
string cmd_debug_sensors(string params){
|
string cmd_debug_sensors(string params){
|
||||||
getParams(params);
|
getParams(params);
|
||||||
config.debug.SensorsLook = val(pars[0])>0;
|
config.debug.SensorsLook = val(pars[0])>0;
|
||||||
return "Debug sensors SET="+config.debug.SensorsLook? "TRUE":"FALSE";
|
return "Debug sensors SET="+(config.debug.SensorsLook? "TRUE":"FALSE");
|
||||||
}
|
}
|
||||||
|
string cmd_debug_enc_level(string params){
|
||||||
|
getParams(params);
|
||||||
|
config.debug.EncoderDebug= val(pars[0]);
|
||||||
|
return "Debug encoder level SET="+str(config.debug.EncoderDebug);
|
||||||
|
}
|
||||||
|
|
||||||
string cmd_debug_showtime(string params){
|
string cmd_debug_showtime(string params){
|
||||||
getParams(params);
|
getParams(params);
|
||||||
config.debug.ShowTime = val(pars[0])>0;
|
config.debug.ShowTime = val(pars[0])>0;
|
||||||
return "Debug show time SET="+config.debug.ShowTime? "TRUE":"FALSE";
|
return "Debug show time SET="+(config.debug.ShowTime? "TRUE":"FALSE");
|
||||||
|
}
|
||||||
|
|
||||||
|
string cmd_enc_set_windows(string params){
|
||||||
|
getParams(params);
|
||||||
|
config.EncoderCfg.windowWidth = val(pars[0]);
|
||||||
|
return "Encoder window SET="+str(config.EncoderCfg.windowWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmd_replay(string message){
|
void cmd_replay(string message){
|
||||||
|
d(message);
|
||||||
sock.setsendinband(chr(sock.escchar)+" "+message+chr(sock.endchar)+chr(13)+chr(10));
|
sock.setsendinband(chr(sock.escchar)+" "+message+chr(sock.endchar)+chr(13)+chr(10));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ string cmd_ip(string params);
|
||||||
string cmd_setbraker(string params);
|
string cmd_setbraker(string params);
|
||||||
string cmd_setencoder(string params);
|
string cmd_setencoder(string params);
|
||||||
string cmd_enc_calibre(string params);
|
string cmd_enc_calibre(string params);
|
||||||
|
string cmd_enc_set_windows(string params);
|
||||||
|
string cmd_debug_enc_level(string params);
|
||||||
string cmd_debug_sensors(string params);
|
string cmd_debug_sensors(string params);
|
||||||
string cmd_debug_showtime(string params);
|
string cmd_debug_showtime(string params);
|
||||||
void getParams(string params);
|
void getParams(string params);
|
||||||
|
|
|
||||||
|
|
@ -195,5 +195,7 @@ void config_create(){
|
||||||
config.EncoderCfg.windowWidth= 40;
|
config.EncoderCfg.windowWidth= 40;
|
||||||
config.EncoderCfg.reinitInterval = 3;
|
config.EncoderCfg.reinitInterval = 3;
|
||||||
config.EncoderCfg.workedPorts = "";
|
config.EncoderCfg.workedPorts = "";
|
||||||
|
|
||||||
|
config.debug.EncoderDebug=0;
|
||||||
|
|
||||||
}
|
}
|
||||||
25
encoder.tc
25
encoder.tc
|
|
@ -62,30 +62,35 @@ bool getEncEnabled(unsigned char port,bool value){
|
||||||
if (works[portVector[port]].Inited == false){
|
if (works[portVector[port]].Inited == false){
|
||||||
works[portVector[port]].Count = interval/2;
|
works[portVector[port]].Count = interval/2;
|
||||||
works[portVector[port]].Inited =true;
|
works[portVector[port]].Inited =true;
|
||||||
d(str(port)+" выравнивание по первой ");
|
if (config.debug.EncoderDebug>0) d(str(port)+" выравнивание по первой ");
|
||||||
z[portVector[port]]=0;
|
z[portVector[port]]=0;
|
||||||
}
|
}
|
||||||
|
int point = (works[portVector[port]].Point + works[portVector[port]].Count) /2;
|
||||||
|
int sdvig = center - point;
|
||||||
|
|
||||||
|
if (config.debug.EncoderDebug>3) d(str(port)+ " count:"+str(works[portVector[port]].Count)+" center:"+str(center)+" point:"+str(point)+" diff:"+str(diff)+" sdvig:"+stri(sdvig));
|
||||||
|
|
||||||
if (works[portVector[port]].Count >= (interval/2 - diff) && works[portVector[port]].Count <= (interval/2+diff)){
|
if (works[portVector[port]].Count >= (interval/2 - diff) && works[portVector[port]].Count <= (interval/2+diff)){
|
||||||
works[portVector[port]].State = true;
|
works[portVector[port]].State = true;
|
||||||
d(str(port)+" попал о окно "+str(works[portVector[port]].Count));
|
if (config.debug.EncoderDebug>2) d(str(port)+" попал о окно "+str(works[portVector[port]].Count));
|
||||||
works[portVector[port]].Point = (works[portVector[port]].Point + works[portVector[port]].Count) /2;
|
works[portVector[port]].Point = (works[portVector[port]].Point + works[portVector[port]].Count) /2;
|
||||||
int sdvig = center - works[portVector[port]].Point;
|
//int point = works[portVector[port]].Point;
|
||||||
|
//int sdvig = center - point;
|
||||||
int d1=diff/2;
|
int d1=diff/2;
|
||||||
if (sdvig > d1 || sdvig < 0-d1 ){
|
if (sdvig > d1 || sdvig < 0-d1 ){
|
||||||
|
int nc = center;
|
||||||
d(str(port)+" "+ str(works[portVector[port]].Count)+" "+str(sdvig)+" "+(sdvig < 0 ? "<<" : ">>"));
|
if (config.debug.EncoderDebug>1) d(str(port)+" "+ str(works[portVector[port]].Count)+" "+stri(sdvig)+" "+(sdvig < 0 ? " << " : " >> ")+" new "+str(nc));
|
||||||
works[portVector[port]].Count = works[portVector[port]].Count + (sdvig < 0 ? 0-d1: d1);
|
works[portVector[port]].Count = nc;
|
||||||
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
d(str(port)+" не попал о окно "+str(works[portVector[port]].Count));
|
if (config.debug.EncoderDebug>2) d(str(port)+" не попал о окно "+str(works[portVector[port]].Count));
|
||||||
}
|
}
|
||||||
return works[portVector[port]].State;
|
return works[portVector[port]].State;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if (works[portVector[port]].Enabled && works[portVector[port]].State == true && value){
|
if (works[portVector[port]].Enabled && works[portVector[port]].State == true && value){
|
||||||
d(str(port)+" Повторное срабатывание "+str(works[portVector[port]].Count));
|
if (config.debug.EncoderDebug>1) d(str(port)+" Повторное срабатывание "+str(works[portVector[port]].Count));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -103,7 +108,7 @@ void on_io_int(unsigned char linestate){
|
||||||
{
|
{
|
||||||
calibrate_buff[i][z[i]]=calibrate_count[i];
|
calibrate_buff[i][z[i]]=calibrate_count[i];
|
||||||
cmd_replay("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i]));
|
cmd_replay("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i]));
|
||||||
d("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i]));
|
if (config.debug.EncoderDebug>0) d("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i]));
|
||||||
}
|
}
|
||||||
z[i]++;
|
z[i]++;
|
||||||
calibrate_count[i]=0;
|
calibrate_count[i]=0;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ typedef struct BrakerProcess{
|
||||||
typedef struct EncoderConfig{
|
typedef struct EncoderConfig{
|
||||||
unsigned char encoderPort;
|
unsigned char encoderPort;
|
||||||
unsigned char encoderMode;
|
unsigned char encoderMode;
|
||||||
unsigned long encoderInterval;
|
unsigned int encoderInterval;
|
||||||
unsigned char reinitInterval;
|
unsigned char reinitInterval;
|
||||||
unsigned char windowWidth;
|
unsigned char windowWidth;
|
||||||
string workedPorts;
|
string workedPorts;
|
||||||
|
|
@ -71,14 +71,15 @@ typedef struct EncoderProcess{
|
||||||
EncoderConfig *config;
|
EncoderConfig *config;
|
||||||
bool Inited;
|
bool Inited;
|
||||||
bool State;
|
bool State;
|
||||||
unsigned long Count;
|
unsigned int Count;
|
||||||
unsigned long Point;
|
unsigned int Point;
|
||||||
unsigned char WorkPort;
|
unsigned char WorkPort;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct DebugConf{
|
typedef struct DebugConf{
|
||||||
bool SensorsLook;
|
bool SensorsLook;
|
||||||
bool ShowTime;
|
bool ShowTime;
|
||||||
|
int EncoderDebug;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct Configuration{
|
typedef struct Configuration{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue