Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
|
doc:jroboplc:ups_devices:ups_nano_src [2018/06/26 10:49] denis |
doc:jroboplc:ups_devices:ups_nano_src [2018/07/27 13:21] (текущий) denis |
||
|---|---|---|---|
| Строка 27: | Строка 27: | ||
| #define ADDR_T_OFF 4 | #define ADDR_T_OFF 4 | ||
| #define ADDR_T_ON 6 | #define ADDR_T_ON 6 | ||
| + | #define ADDR_BEEP_MODE 8 | ||
| OneWire oneWire(pinInpT); | OneWire oneWire(pinInpT); | ||
| Строка 45: | Строка 46: | ||
| boolean manual_BatCtrl; | boolean manual_BatCtrl; | ||
| boolean manual_Cooler; | boolean manual_Cooler; | ||
| + | int beep_mode; | ||
| int timeBatCtrl; | int timeBatCtrl; | ||
| Строка 98: | Строка 100: | ||
| EEPROM.get(ADDR_T_OFF, Toff); | EEPROM.get(ADDR_T_OFF, Toff); | ||
| EEPROM.get(ADDR_T_ON, Ton); | EEPROM.get(ADDR_T_ON, Ton); | ||
| + | EEPROM.get(ADDR_BEEP_MODE, beep_mode); | ||
| validate_vars(); | validate_vars(); | ||
| Строка 127: | Строка 130: | ||
| if(timeoutSerialConnected <= 0) | if(timeoutSerialConnected <= 0) | ||
| timeoutSerialConnected = 1; | timeoutSerialConnected = 1; | ||
| + | |||
| + | if(beep_mode < 0 || beep_mode > 2) | ||
| + | beep_mode = 0; | ||
| } | } | ||
| Строка 152: | Строка 158: | ||
| if( sercnt > 0 && msdelta > REQUEST_TIMEOUT ) { | if( sercnt > 0 && msdelta > REQUEST_TIMEOUT ) { | ||
| sercnt = 0; | sercnt = 0; | ||
| + | serConnected = false; | ||
| } | } | ||
| if( serConnected && (msdelta/1000) >= timeoutSerialConnected ) { | if( serConnected && (msdelta/1000) >= timeoutSerialConnected ) { | ||
| Строка 162: | Строка 169: | ||
| onSerRequest(); | onSerRequest(); | ||
| sercnt = 0; | sercnt = 0; | ||
| - | serConnected = true; | + | // serConnected = true; |
| } | } | ||
| } | } | ||
| Строка 244: | Строка 251: | ||
| // 1200 - normal tone | // 1200 - normal tone | ||
| // 40 - debug tone (very low) | // 40 - debug tone (very low) | ||
| - | tone(pinOutBeep, 40, 1000); | + | if( beep_mode == 0 ) |
| + | tone(pinOutBeep, 1200, 1000); | ||
| + | else if( beep_mode == 1 ) | ||
| + | tone(pinOutBeep, 40, 1000); | ||
| else | else | ||
| noTone(pinOutBeep); | noTone(pinOutBeep); | ||
| Строка 277: | Строка 287: | ||
| void onSerRequest() { | void onSerRequest() { | ||
| + | serConnected = false; | ||
| + | |||
| uint32_t cs1 = CRC32::calculate(serbuf, REQUEST_LEN-4); | uint32_t cs1 = CRC32::calculate(serbuf, REQUEST_LEN-4); | ||
| uint32_t cs2 = | uint32_t cs2 = | ||
| Строка 284: | Строка 296: | ||
| (uint32_t)serbuf[REQUEST_LEN-1]; | (uint32_t)serbuf[REQUEST_LEN-1]; | ||
| - | if( cs1 != cs2 ) | + | if( cs1 != cs2 ) { |
| return; | return; | ||
| + | } | ||
| if( serbuf[0] != VERSION ) { | if( serbuf[0] != VERSION ) { | ||
| Строка 294: | Строка 307: | ||
| getSerbufValues(); | getSerbufValues(); | ||
| sendGoodAnswer(); | sendGoodAnswer(); | ||
| + | |||
| + | serConnected = true; | ||
| } | } | ||
| Строка 366: | Строка 381: | ||
| if( manual_Cooler ) | if( manual_Cooler ) | ||
| outCooler = (manuals & 0x8) > 0; | outCooler = (manuals & 0x8) > 0; | ||
| + | |||
| + | beep_mode = (manuals >> 4) & 0xF; | ||
| validate_vars(); | validate_vars(); | ||
| Строка 373: | Строка 390: | ||
| EEPROM.put(ADDR_T_OFF, Toff); | EEPROM.put(ADDR_T_OFF, Toff); | ||
| EEPROM.put(ADDR_T_ON, Ton); | EEPROM.put(ADDR_T_ON, Ton); | ||
| + | EEPROM.put(ADDR_BEEP_MODE, beep_mode); | ||
| } | } | ||