vad7 %!s(int64=2) %!d(string=hai) anos
pai
achega
41fbbbf563
Modificáronse 2 ficheiros con 53 adicións e 48 borrados
  1. 44 44
      Distr/nrf24batch/Kitchen Vent.txt
  2. 9 4
      nrf24batch.c

+ 44 - 44
Distr/nrf24batch/Kitchen Vent.txt

@@ -9,46 +9,30 @@ Resend: 3
 Delay_ms: 30
 
 Payload struct: 2,1,1
-EEPROM=0; RAM=1; PROGMEM=2; ID=3; RESET=4
+EEPROM=0; RAM=1; PROGMEM=2; ID=3; RESET=4, WRAM=0x89
 
 R default: ,EEPROM,0xC1
 W default: n,,0x81
 Write start: 0,0,0x8F
 
 R: ID*=,ID
-R: FanOn=0x77,RAM,0xC1
-S: FanSet=,,0x40
-S: Lamp=,,0x20
-R: FanSpeed=0x76,RAM,0xC1
-
-R: CO2 level 1*2=4,,0xC2
-W: CO2 level 1=,4,0x82
-R: CO2 level 2*2=6,,0xC2
-W: CO2 level 2=,6,0x82
-R: CO2 level 3*2=8,,0xC2
-W: CO2 level 3=,8,0x82
-
-R: FanSpeed_1=19
-W: FanSpeed_1=,19
-R: FanSpeed_2=20
-W: FanSpeed_2=,20
-R: FanSpeed_3=21
-W: FanSpeed_3=,21
-R: FanCookSpeed_1=22
-W: FanCookSpeed_1=,22
-R: FanCookSpeed_2=23
-W: FanCookSpeed_2=,23
-R: FanCookSpeed_3=24
-W: FanCookSpeed_3=,24
-
-R: FanStartupTime=10
-W: FanStartupTime=,10
+
+R: CO2 level*2[3]=i:4,,0xC2
+W: CO2 level*2=,i:4,0x82
+
+R: FanSpeed[3]=i:19
+W: FanSpeed=,i:19
+R: FanCookSpeed[3]=i:22
+W: FanCookSpeed=,i:22
+
+R: FanOnTime=10
+W: FanOnTime=,10
 
 R: FanOffTime=11
 W: FanOffTime=,11
 
-R: FanCookStartupTime=12
-W: FanCookStartupTime=,12
+R: FanCookOnTime=12
+W: FanCookOnTime=,12
 
 R: FanCookOffTime=13
 W: FanCookOffTime=,13
@@ -59,17 +43,17 @@ W: FanSleep=,14
 R: FanCookSleep=15
 W: FanCookSleep=,15
 
-R: FanSpeedInitIdx=16
-W: FanSpeedInitIdx=,16
+R: SpeedInitIdx=16
+W: SpeedInitIdx=,16
 
-R: FanSpeedKey=17
-W: FanSpeedKey=,17
+R: SpeedKeyIdx=17
+W: SpeedKeyIdx=,17
 
 R: IRRemotes=32
 W: IRRemotes=,32
 
 R: IRRemotesHash*2[80]=i:32#
-W: IRRemotesHash=,i:32
+W: IRRemotesHash*2=,i:32
 
 R: OutPeriod=18
 W: OutPeriod=,18
@@ -83,9 +67,24 @@ W: RxAddr=,2
 R: Ch=3
 W: Ch=,3
 
-R: OSCCAL=0x51,RAM
+R: OSCCAL#=0x51,RAM
+W: OSCCAL#=,0x51,WRAM
 R: OSCCAL_EMEM=0      				
 
+R: PORTA#=0x39,RAM
+W: PORTA#=,0x3B,WRAM
+R: PORTB#=0x36,RAM
+W: PORTB#=,0x38,WRAM
+
+R: LED Warning#=0x6C,RAM
+W: LED Warning#=,0x6C,WRAM
+
+R: FanOn=0x76,RAM
+R: FanOnNext=0x74,RAM
+R: FanOnNextCnt=0x72,RAM
+R: FanOnLast=0x73,RAM
+R: Fanspeed=0x75,RAM
+
 W: Reset=,RESET,0xC1
 
 S: Lamp=,0,0x40
@@ -102,13 +101,14 @@ SBatch: Fan Down: FanSpdDn=0
 SBatch: Lamp On: Lamp=1
 SBatch: Lamp Off: Lamp=0
 
-RBatch: Work: ID;CO2 level 1;CO2 level 2;CO2 level 3;FanCookSpeed_1;FanCookSpeed_2;FanCookSpeed_3;FanCookStartupTime;FanCookOffTime;FanCookSleep;FanSpeed_1;FanSpeed_2;FanSpeed_3;FanStartupTime;FanOffTime;FanSleep
-RBatch: Hardware: ID;RxAddr;Ch;FanSpeedInitIdx;Flags;OutPeriod;IRRemotes;OSCCAL_EMEM
-RBatch: All: ID;CO2 level 1;CO2 level 2;CO2 level 3;FanCookSpeed_1;FanCookSpeed_2;FanCookSpeed_3;FanCookStartupTime;FanCookOffTime;FanCookSleep;FanSpeed_1;FanSpeed_2;FanSpeed_3;FanStartupTime;FanOffTime;FanSleep;RxAddr;Ch;FanSpeedInitIdx;Flags;OutPeriod;IRRemotes;IRRemotesHash
+RBatch: Work: ID;CO2 level;FanCookSpeed;FanCookOnTime;FanCookOffTime;FanCookSleep;FanSpeed;FanOnTime;FanOffTime;FanSleep
+RBatch: Hardware: ID;RxAddr;Ch;SpeedInitIdx;Flags;OutPeriod;IRRemotes;OSCCAL_EMEM
+RBatch: All: ID;CO2 level;FanCookSpeed;FanCookOnTime;FanCookOffTime;FanCookSleep;FanSpeed;FanOnTime;FanOffTime;FanSleep;RxAddr;Ch;SpeedInitIdx;Flags;OutPeriod;IRRemotes;IRRemotesHash
 
+WBatch: Init(Cook2spd,Lamp-F2.2): RxAddr=0xC1;Ch=122;CO2 level={700,850,1000};FanSpeed={3,5,6};FanCookSpeed={3,6,12};FanSleep=20;FanCookSleep=6;FanOnTime=150;FanCookOnTime=2;FanOffTime=100;FanCookOffTime=0;SpeedInitIdx=0;SpeedKeyIdx=6;Flags=0x49;OutPeriod=6;IRRemotes=0
+WBatch: LED Warning: LED Warning#=0x10
+WBatch: PORTA: PORTA#=0x0C
+WBatch: PORTB: PORTB#=0xC
+WBatch: OSCCAL: OSCCAL#=128
+WBatch: CO2 Level+Fan speed: CO2 level={700,850,1000};FanSpeed={3,5,6}
 WBatch: Reset: Reset
-
-SBatch: SetSpeed: FanSet=1
-SBatch: Fan OFF: FanSet=0
-SBatch: Lamp ON: Lamp=1
-SBatch: Lamp OFF: Lamp=0

+ 9 - 4
nrf24batch.c

@@ -492,7 +492,7 @@ bool nrf24_read_newpacket() {
 				if(--cmd_array_cnt) {
 					furi_string_cat_str(str, ",");
 					if(cmd_array_hex) furi_string_cat_str(str, "0x");
-					payload[cmd_array_idx]++;	// next array element
+					payload[cmd_array_idx] += size;	// next array element
 					NRF_repeat = -1;
 					send_status = sst_sending;	// Will be send after delay_between_pkt
 				} else send_status = sst_ok;
@@ -744,7 +744,7 @@ bool Run_WriteBatch_cmd()
 		}
 	}
 	FURI_LOG_D(TAG, "%cBatch: =%d, (%d)%s", rw_type == rwt_write_batch ? 'W' : 'S', (int)new, len, p);
-	char *w, *delim_col, i;
+	char *w, *delim_col, i, size;
 	FuriString* str = furi_string_alloc();
 	stream_rewind(file_stream);
 	while(stream_read_line(file_stream, str)) {
@@ -753,7 +753,12 @@ bool Run_WriteBatch_cmd()
 		else if(strncmp(w, SettingsFld_Set, sizeof(SettingsFld_Set)-1) == 0) w +=  sizeof(SettingsFld_Set);
 		else continue;
 		delim_col = strchr(w, '=');
-		if(delim_col == NULL || len != delim_col - w) continue;
+		if(delim_col == NULL) continue;
+		size = 1;
+		if(*(delim_col - 2) == '*') {
+			if(len != delim_col - w - 2) continue;
+			size = *(delim_col - 1) - '0';
+		} else if(len != delim_col - w) continue;
 		if(strncmp(p, w, len) != 0) continue;
 		delim_col++;
 		str_rtrim(delim_col);
@@ -790,7 +795,7 @@ bool Run_WriteBatch_cmd()
 					}
 					arr++;
 					new = str_to_int(arr);
-					cmd_array_cnt = payload[cmd_array_idx] + 1;
+					cmd_array_cnt = payload[cmd_array_idx] + size;
 					//furi_delay_ms(delay_between_pkt); // do it fast
 					continue; // send next array element
 				} else send_status = sst_ok;