|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #include "serial.h"
- #include "lcd.h"
-
- void SerialIO::init() {
- Serial.begin(9600);
- }
-
- bool SerialIO::is_available() const {
- return Serial.available();
- }
-
- void SerialIO::print_gain(int gain) const {
- Serial.print(F("zosilnenie = "));
- Serial.print(gain, DEC);
- Serial.println();
- }
-
- bool SerialIO::is_debug_info_allowed() const {
- return this->debug_info_allowed;
- }
-
- void SerialIO::print_init_message() const {
- Serial.println(F(" milivahy"));
- Serial.println(F(" "));
- Serial.println(F(" v - vypis hodnot zap-vyp"));
- Serial.println(F(" r - presnost zobrazenia [r 3 2]"));
- Serial.println(F(" t - tare - nulovanie"));
- Serial.println(F(" c - kalibracia"));
- Serial.println(F(" g - zosilnenie 64, 128 [g 128]"));
- Serial.println(F(" w - kalibracne zavazie v g [ w 1]"));
- Serial.println(F(" p - nastavenie porovnania [ p 1 IT_1 2.0 3.0]"));
- Serial.println();
- }
-
- void SerialIO::on_command(Scale& scale, WeightControllerPool& pool, LCD& lcd)
- {
- char var = Serial.read();
- switch (var)
- {
- case 'c':
- scale.calibrate();
- lcd.print_calibration(scale.get_calibration_weight());
- Serial.println();
- Serial.print(F("Scale = "));
- Serial.println(scale.get_weight());
- break;
- case 't':
- scale.tare();
- break;
- case 'v':
- debug_info_allowed = !debug_info_allowed;
- break;
- case 'w':
- int calib_weight = Serial.parseInt();
- Serial.print(F("calibration weight = "));
- Serial.print(calib_weight, DEC);
- Serial.println(F(" g"));
- EEPROM.writeInt(e_calib_w, calib_weight);
- break;
- case 'r':
- des_m_g = Serial.parseInt();
- des_m_grain = Serial.parseInt();
- break;
- case 'p': {
- int index = Serial.parseInt();
- String name = Serial.readStringUntil(' ');
- double val_min = Serial.parseFloat();
- double val_max = Serial.parseFloat();
-
- for (int j = 0; j < pool.get_max(); j++)
- {
- WeightController& controller = pool.get(j);
- Serial.println();
- Serial.print(controller.get_name());
- Serial.print(F(" "));
- Serial.print(controller.get_val_min(), 2);
- Serial.print(F(" "));
- Serial.print(controller.get_val_max(), 2);
- }
- break;
- } case 'g':
- int gain = Serial.parseInt();
- if (gain == 64 || gain == 128)
- {
- EEPROM.writeInt(e_gain, gain);
- }
- print_gain(gain);
- break;
- case 'h':
- print_init_message();
- break;
- }
- }
-
- void SerialIO::print_debug_info(long raw, double average_raw, long offset, double weight, double gram, double average_gram, double grain) const {
- Serial.print(F("RAW = "));
- Serial.print(raw);
-
- Serial.print(F(", AV_RAW = "));
- Serial.print(average_raw);
-
- Serial.print(F(", offset = "));
- Serial.print(offset);
-
- Serial.print(F(", RAW-offset = "));
- Serial.print(raw - offset);
-
- Serial.print(F(", Scale = "));
- Serial.print(weight);
-
- Serial.print(F(", gram = "));
- Serial.print(gram, des_m_g);
-
- Serial.print(F(", average = "));
- Serial.print(average_gram, des_m_g);
-
- Serial.print(F(", grain = "));
- Serial.println(grain, des_m_grain);
- }
|