Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
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); | ||
} | } | ||