From 126ea01dd6223a533777890c0700756383c744b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=BE=D0=BA=D1=80=D0=BE=D1=82=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=98=D0=B2=D0=B0=D0=BD?= Date: Wed, 30 Jan 2019 15:02:44 +0300 Subject: [PATCH] =?UTF-8?q?=E2=95=A4=D1=81=D1=8E=D0=81=D1=8A=D1=80=2019013?= =?UTF-8?q?01502?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KSM-Line-2.2.tpr | 16 ++++- KSM-Line-2.2.tprusr | 56 +++++++++------ bin/KSM-Line-2.0_TPP2_Encoder.tpc | Bin 35328 -> 0 bytes bin/KSM-Line-2.0_tpp2.tpc | Bin 29440 -> 0 bytes command.tc | 40 ++++++++++- config_work.tc | 10 +-- encoder.tc | 114 ++++++++++++++++++++++++++---- encoder.th | 2 + global.th | 4 ++ main.tc | 25 ++++--- make.cmd | 11 +++ net.tc | 2 +- premake.js | 52 ++++++++++++++ 13 files changed, 278 insertions(+), 54 deletions(-) delete mode 100644 bin/KSM-Line-2.0_TPP2_Encoder.tpc delete mode 100644 bin/KSM-Line-2.0_tpp2.tpc create mode 100644 make.cmd create mode 100644 premake.js diff --git a/KSM-Line-2.2.tpr b/KSM-Line-2.2.tpr index 4211a13..4df3015 100644 --- a/KSM-Line-2.2.tpr +++ b/KSM-Line-2.2.tpr @@ -4,7 +4,7 @@ platform=TPP2W(G2) src_lib_ver=2_01_00 name=KSM-Line-2.0 output=KSM-Line-2.0.tpc -debug=on +debug=off defines= /dLCD_TYPE=SOLOMON_SSD1963 /dOBJECT_LCD=LCD_ENABLED /dOBJECT_FD=FD_ENABLED /dOBJECT_KP=KP_ENABLED /dOBJECT_WLN=WLN_ENABLED transport=udp_broadcast [address1] @@ -163,3 +163,17 @@ format=65001 condition= locked=no location=project +[file21] +path=common.th +type=cheader +format=65001 +condition= +locked=no +location=project +[file22] +path=common.tc +type=c +format=65001 +condition= +locked=no +location=project diff --git a/KSM-Line-2.2.tprusr b/KSM-Line-2.2.tprusr index de41c3b..3181558 100644 --- a/KSM-Line-2.2.tprusr +++ b/KSM-Line-2.2.tprusr @@ -1,33 +1,33 @@ [project] -watch=works[i].Count, portVector, works[i].WorkPort +watch=works[i].Count, portVector, works[i].WorkPort, len(port), pinState, z, works[i], EncoderCfg.reinitInterval, works [file1] -line=105 -cursor=1677 +line=85 +cursor=2097 opened=yes breakpoints= [file2] -line=78 -cursor=409 +line=44 +cursor=1179 opened=yes breakpoints= [file3] line=0 -cursor=248 -opened=active +cursor=327 +opened=no breakpoints= [file4] line=0 cursor=125 -opened=yes +opened=no breakpoints= [file5] line=0 cursor=161 -opened=yes +opened=no breakpoints= [file6] -line=18 -cursor=422 +line=5 +cursor=1461 opened=yes breakpoints= [file7] @@ -45,9 +45,9 @@ line=0 cursor=0 opened=no [file10] -line=4 -cursor=1099 -opened=no +line=76 +cursor=5043 +opened=yes breakpoints= [file11] line=0 @@ -57,12 +57,12 @@ breakpoints= [file12] line=0 cursor=360 -opened=yes +opened=no breakpoints= [file13] line=0 cursor=55 -opened=yes +opened=no breakpoints= [file14] line=0 @@ -70,8 +70,8 @@ cursor=93 opened=no breakpoints= [file15] -line=12 -cursor=541 +line=0 +cursor=294 opened=yes breakpoints= [file16] @@ -82,7 +82,7 @@ breakpoints= [file17] line=0 cursor=20 -opened=yes +opened=no breakpoints= [file18] line=0 @@ -91,11 +91,21 @@ opened=yes breakpoints= [file19] line=0 -cursor=101 +cursor=93 opened=yes breakpoints= [file20] -line=18 -cursor=2430 +line=156 +cursor=3777 +opened=active +breakpoints= +[file21] +line=0 +cursor=0 opened=yes -breakpoints=24 +breakpoints= +[file22] +line=18 +cursor=0 +opened=yes +breakpoints= diff --git a/bin/KSM-Line-2.0_TPP2_Encoder.tpc b/bin/KSM-Line-2.0_TPP2_Encoder.tpc deleted file mode 100644 index c0ef48ab5cf39105952fd11ef2dedbc8181b9e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35328 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 EAKFsAg#Z8m diff --git a/command.tc b/command.tc index f26298d..71f09ea 100644 --- a/command.tc +++ b/command.tc @@ -47,13 +47,49 @@ void on_sock_inband() // обработка поступивших команд } void cmd_replay(string message){ - sock.setsendinband(chr(sock.escchar)+" "+message+chr(sock.endchar)); + sock.setsendinband(chr(sock.escchar)+" "+message+chr(sock.endchar)+chr(13)+chr(10)); } string cmd_setencoder(string params){ - return "Запущен режим калибровки энкодера"; + string message; + // setencoder=encoderpin,mode,interval,sensorspinoverdot + // setencoder=4,1,50,1.2 + d("params: "+params); + unsigned char n, p, num ; + unsigned long t; + string vals = ""; + n = 1; + p = instr(1,params,",",1); + while (p>0){ + vals+=chr(val(mid(params,n,n-p))); + n = p+1; + p = instr(n,params,",",1); + } + string port = mid(params,n,len(params)-n+1); + d("port: "+port); + string ports; + n = 1; + 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.encoderPort = vals[0]; + config.EncoderCfg.encoderMode = vals[1]; + config.EncoderCfg.encoderInterval = vals[2]; + config.EncoderCfg.workedPorts = ports; + message = "Энкодер настроен: Порт: "+str(vals[0])+ ", Режим: "+str(vals[1])+ ", Интервал: "+str(vals[2])+ ", Рабочие порты: "+port; + encoder_init(); + return message; } string cmd_enc_calibre(string params){ + int mode = val(left(params,1)); + enc_calibrate_mode(mode); + if (mode >0){ + return "Запушена калибровка энкодера в режиме "+str(mode); + } return "Остановлен режим калибровки энкодера. Среднее значение: " + str(enc_calibrate_result()); } string cmd_systeminfo(){ diff --git a/config_work.tc b/config_work.tc index 2bbfff2..d5b11f9 100644 --- a/config_work.tc +++ b/config_work.tc @@ -189,9 +189,11 @@ void config_create(){ config.BRAKERS[1] = c; config.BRAKERS[2] = c; - config.EncoderCfg.encoderPort = 4; - config.EncoderCfg.encoderMode = 1; - config.EncoderCfg.encoderInterval = 10; - config.EncoderCfg.workedPorts = "12"; + config.EncoderCfg.encoderPort = 0; + config.EncoderCfg.encoderMode = 0; + config.EncoderCfg.encoderInterval = 0; + config.EncoderCfg.windowWidth= 40; + config.EncoderCfg.reinitInterval = 3; + config.EncoderCfg.workedPorts = ""; } \ No newline at end of file diff --git a/encoder.tc b/encoder.tc index c853089..eaeb7c0 100644 --- a/encoder.tc +++ b/encoder.tc @@ -1,23 +1,31 @@ #include "global.th"; #include "sensors.th"; +#include "command.th" #define ENCWORKER 5 EncoderProcess works[ENCWORKER]; string vector[4]; char portVector[SENSORS]; int calibrate_mode = 0; - +unsigned long calibrate_buff[ENCWORKER][10]; +unsigned long calibrate_count[ENCWORKER]; +char z[ENCWORKER]; +bool inited = false; +int center; void encoder_init(){ for (int i = 0; i< SENSORS;i++){ portVector[i]=-1; } int intnum = ((int)(config.EncoderCfg.encoderPort/4)); + center = config.EncoderCfg.encoderInterval/2; for (char i = 0; i < ENCWORKER; i++){ works[i].Enabled = false; works[i].config = &config.EncoderCfg; works[i].State = false; + works[i].Inited = false; works[i].Count = config.EncoderCfg.encoderInterval/2; + works[i].Point = config.EncoderCfg.encoderInterval/2; works[i].WorkPort=0; string ports = config.EncoderCfg.workedPorts; if (i0; +} + bool getEncEnabled(unsigned char port,bool value){ + if (!inited) return true; + if (calibrate_mode>0) // в режиме калибровки не слать состояние портов + return false; if (port == config.EncoderCfg.encoderPort) return false; if (portVector[port]==-1) @@ -42,32 +58,81 @@ bool getEncEnabled(unsigned char port,bool value){ if (works[portVector[port]].Enabled && works[portVector[port]].State == false && value){ long interval = works[portVector[port]].config->encoderInterval; - long diff = interval /5; - + long diff = interval * config.EncoderCfg.windowWidth / 200; + if (works[portVector[port]].Inited == false){ + works[portVector[port]].Count = interval/2; + works[portVector[port]].Inited =true; + d(str(port)+" выравнивание по первой "); + z[portVector[port]]=0; + } if (works[portVector[port]].Count >= (interval/2 - diff) && works[portVector[port]].Count <= (interval/2+diff)){ works[portVector[port]].State = true; + d(str(port)+" попал о окно "+str(works[portVector[port]].Count)); + works[portVector[port]].Point = (works[portVector[port]].Point + works[portVector[port]].Count) /2; + int sdvig = center - works[portVector[port]].Point; + + int d1=diff/2; + if (sdvig > d1 || sdvig < 0-d1 ){ + + d(str(port)+" "+ str(works[portVector[port]].Count)+" "+str(sdvig)+" "+(sdvig < 0 ? "<<" : ">>")); + works[portVector[port]].Count = works[portVector[port]].Count + (sdvig < 0 ? 0-d1: d1); + + } + }else{ + d(str(port)+" не попал о окно "+str(works[portVector[port]].Count)); } return works[portVector[port]].State; } else{ + if (works[portVector[port]].Enabled && works[portVector[port]].State == true && value){ + d(str(port)+" Повторное срабатывание "+str(works[portVector[port]].Count)); + } return false; } } void on_io_int(unsigned char linestate){ string workers = vector[linestate-1]; - for (int i = 0; i < len(workers);i++){ - if (works[i].Enabled){ - works[i].Count++; - if (works[i].Count>works[i].config->encoderInterval) + if(calibrate_mode>0){ + for (int i=0;i=0) + { + calibrate_buff[i][z[i]]=calibrate_count[i]; + cmd_replay("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i])); + d("Калибровка энкодера "+str(port)+":"+str(calibrate_count[i])); + } + z[i]++; + calibrate_count[i]=0; + if (z[i]>9) + z[i]=0; + + } + else + calibrate_count[i]++; + } + return; + } + else{ + for (int i = 0; i < ENCWORKER;i++){ + if (works[i].Enabled){ + works[i].Count++; + if (works[i].Count>works[i].config->encoderInterval) + { + z[i] = (works[i].State? 0: z[i]+1); + //d("z["+str(i)+"] = "+ str(z[i])+" | "+str(config.EncoderCfg.reinitInterval)); + if (z[i] >= config.EncoderCfg.reinitInterval) + works[i].Inited = false; + works[i].Count = 0; + works[i].State = false; + } + //d("count ["+str(i)+"] :"+str(works[i].Count)); } - d("count ["+str(i)+"] :"+str(works[i].Count)); } } - } /// Блок калибровки @@ -88,11 +153,32 @@ void enc_calibrate_mode(int mode){ d("Установка режима калибровки энкодера - неверный режим: "+ str(mode)); break; } - + if (calibrate_mode>0){ + for (int i=0;i0){ + c++; + s+=calibrate_buff[i][x]; + } + } + o += s/c; + if (o > s/c) + o = o/2; + } + return o; } \ No newline at end of file diff --git a/encoder.th b/encoder.th index b411e7b..d4e004f 100644 --- a/encoder.th +++ b/encoder.th @@ -1,3 +1,5 @@ void encoder_init(); bool getEncEnabled(unsigned char port,bool value); +bool inEncCalibrate(); +void enc_calibrate_mode(int mode); int enc_calibrate_result(); \ No newline at end of file diff --git a/global.th b/global.th index b206def..bb03bb8 100644 --- a/global.th +++ b/global.th @@ -61,14 +61,18 @@ typedef struct EncoderConfig{ unsigned char encoderPort; unsigned char encoderMode; unsigned long encoderInterval; + unsigned char reinitInterval; + unsigned char windowWidth; string workedPorts; }; typedef struct EncoderProcess{ bool Enabled; EncoderConfig *config; + bool Inited; bool State; unsigned long Count; + unsigned long Point; unsigned char WorkPort; }; typedef struct Configuration{ diff --git a/main.tc b/main.tc index a2cfee0..ecb5482 100644 --- a/main.tc +++ b/main.tc @@ -23,7 +23,7 @@ void d(string mess){ void on_sys_init(){ -pat.play("R-R---~",PL_PAT_CANINT); +pat.play("RG~",PL_PAT_CANINT); config_init(); net_init(); @@ -68,12 +68,13 @@ pat.play("R-R---~",PL_PAT_CANINT); d("sys.freebuffpages: "+str(sys.freebuffpages)); d("config.IP="+config.IP); +// unsigned int day,min; +// unsigned char second; + // if (rtc.running){ -// unsigned int day,min; -// unsigned char second; // rtc.getdata(day,min,second); -// if (day == 0) -// rtc.setdata(daycount(18,10,25),mincount(19,58),1); +//// if (day == 0) +//// rtc.setdata(daycount(18,10,25),mincount(19,58),1); // } sys.onsystimerperiod = 1 ; net_start(); @@ -84,14 +85,14 @@ pat.play("R-R---~",PL_PAT_CANINT); io.enabled=YES; io.num=PL_IO_NUM_48; io.enabled=YES; - pat.play("G-R-R---~",PL_PAT_CANINT); + pat.play("---G-R-R~",PL_PAT_CANINT); } void on_sys_timer() { - +if (!inEncCalibrate()){ for (int i=1; i<=3; i++){ braker_proc(i); } @@ -99,11 +100,17 @@ void on_sys_timer() for (int i=1; i <= SENSORS; i++){ if (pinChange(i)){ bool state = getPinStateS(i,true); - //if (getEncEnabled(i,state)) + if (getEncEnabled(i,state)) send_sensor(i,state); } } +} + unsigned int day,min; + unsigned char second; + if (rtc.running){ + rtc.getdata(day,min,second); + } #if PLATFORM_ID != SIMULATOR sock.num = 0; @@ -123,7 +130,7 @@ void on_sys_timer() io.lineset(PL_IO_NUM_48,sock.statesimple != PL_SSTS_EST); io.state=LOW; io.state=HIGH; - io.lineset(PL_IO_NUM_48,HIGH); + io.lineset(PL_IO_NUM_48,inEncCalibrate() ? second % 2: 1); io.state=LOW; io.state=HIGH; #endif diff --git a/make.cmd b/make.cmd new file mode 100644 index 0000000..7ecd1a9 --- /dev/null +++ b/make.cmd @@ -0,0 +1,11 @@ +node premake.js +set dat=%date:~8,2%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2% +git commit -a -m " %dat%" +git push +"C:\Program Files (x86)\Tibbo\TIDE\Bin\tmake.exe" -r -p "C:\Program Files (x86)\Tibbo\TIDE\Platforms" KSM-Line-2.2_tpp2.tpr +rem ren KSM-Line-2.0.tpc KSM-Line-2.0.tpp2.%dat%.tpc +rem copy KSM-Line-2.0.tpp2.%dat%.tpc up\KSM-Line-2.0.tpp2.%dat%.tpc.zip +"C:\Program Files (x86)\Tibbo\TIDE\Bin\tmake.exe" -r -p "C:\Program Files (x86)\Tibbo\TIDE\Platforms" KSM-Line-2.2_tpp3.tpr +rem ren KSM-Line-2.0.tpc KSM-Line-2.0.tpp3.%dat%.tpc +rem copy KSM-Line-2.0.tpp3.%dat%.tpc up\KSM-Line-2.0.tpp3.%dat%.tpc.zip +call postmake.cmd \ No newline at end of file diff --git a/net.tc b/net.tc index e12692e..7be1fff 100644 --- a/net.tc +++ b/net.tc @@ -43,7 +43,7 @@ void net_start(){ net_openSocket(0,1000,false);//, &net_sensor_handle); // sensors net_openSocket(1,999,false);//, &net_relay_handle); // relay - net_openSocket(2,998,false);//, &net_diag_handle); // diag + net_openSocket(2,998,true);//, &net_diag_handle); // diag net_openSocket(3,997,true);//, &net_config_handle); // config } diff --git a/premake.js b/premake.js new file mode 100644 index 0000000..b980a22 --- /dev/null +++ b/premake.js @@ -0,0 +1,52 @@ +const fs = require('fs'); +function getFile(path){ + return fs.readFileSync(path); +} +var date = new Date(); +var dt = (''+date.getFullYear()).slice(-2) + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2)+('0' + date.getHours()).slice(-2)+('0' + date.getMinutes()).slice(-2); + +var file = getFile("KSM-Line-2.2.tpr"); +var out1 = ""; +var out2 = ""; +var lines = file.toString().split("\n") +for (line in lines){ + var l = lines[line]; + var o1 = l; + var o2 = l; + var sect = ""; + if (l.startsWith("[")){ + sect = l; + console.log(l); + } + if (sect.trim().localeCompare("[project]")){ + if (l.startsWith("platform=")){ + o1 = "platform=TPP2W(G2)"; + o2 = "platform=TPP3W(G2)"; + console.log(o1); + }else if (l.startsWith("name=")){ + o1 = "name=KSM-Line-2.0_"+dt + o1 = "name=KSM-Line-2.0_"+dt + console.log(o1); + }else if (l.startsWith("output=")){ + o1 = "output=KSM-Line-2.0.tpp2."+dt+".tpc"; + o2 = "output=KSM-Line-2.0.tpp3."+dt+".tpc"; + console.log(o1); + } + + } + out1 += o1 +"\n"; + out2 += o2 +"\n"; +} + +fs.writeFile("KSM-Line-2.2_tpp2.tpr", out1 , function(err){ console.log("tpp2")}); +fs.writeFile("KSM-Line-2.2_tpp3.tpr", out2 , function(err){ console.log("tpp3")}); + +var postmake = ""; +postmake += "copy KSM-Line-2.0.tpp2."+dt+".tpc up\\KSM-Line-2.0.tpp2."+dt+".tpc.zip\r\n"; +postmake += "copy KSM-Line-2.0.tpp3."+dt+".tpc up\\KSM-Line-2.0.tpp3."+dt+".tpc.zip\r\n"; +postmake += "move KSM-Line-2.0.tpp2."+dt+".tpc bin\\KSM-Line-2.0.tpp2."+dt+".tpc\r\n"; +postmake += "move KSM-Line-2.0.tpp3."+dt+".tpc bin\\KSM-Line-2.0.tpp3."+dt+".tpc\r\n"; +postmake += "echo wget -c -O ./KSM-Line-2.0.tpp2."+dt+".tpc http://available-we.azurewebsites.net/tibbo/KSM-Line-2.0.tpp2."+dt+".tpc.zip >up\\app.sh\r\n"; +postmake += "echo wget -c -O ./KSM-Line-2.0.tpp3."+dt+".tpc http://available-we.azurewebsites.net/tibbo/KSM-Line-2.0.tpp3."+dt+".tpc.zip >>up\\app.sh\r\n"; + +fs.writeFile("postmake.cmd", postmake , function(err){ console.log("postmake")}); \ No newline at end of file