]> www.fi.muni.cz Git - openparking.git/commitdiff
Maximum distances as modbus registers
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 23 May 2015 15:26:02 +0000 (17:26 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 23 May 2015 15:26:02 +0000 (17:26 +0200)
firmware/firmware.c
firmware/modbus.h
openparking.otl

index fb095f5a0b12966f64f749735e639bb4bb66afd9..f890c15c9608429926a555adf0709d9bf2134090 100644 (file)
@@ -24,6 +24,7 @@
 #define distances      (hold_regs+MB_N_HOLD_REGS_EEPROM+1)
 #define free_bitmap    (hold_regs[MB_N_HOLD_REGS_EEPROM+13])
 #define err_bitmap     (hold_regs[MB_N_HOLD_REGS_EEPROM+14])
+#define max_distances  (hold_regs+MB_N_HOLD_REGS_EEPROM+21)
 
 static void pull_trigger(uint8_t trig)
 {
@@ -78,6 +79,9 @@ static void do_measurement(unsigned char trig)
                                new_d = now - starttimes[i];
                                old_d = distances[idx];
 
+                               if (new_d > max_distances[idx])
+                                       max_distances[idx] = new_d;
+
                                if (old_d == 0
                                        || old_d == -1) {
                                        distances[idx] = new_d;
index 937b8e8d71adb618581cd06f10216583ad281f0d..9f5afa6f7329d0c9971cbcb215bbc55500b5b025 100644 (file)
@@ -19,7 +19,7 @@ typedef enum {
 } mb_exception;
 
 #define MB_HOLD_REGS_BASE      1000
-#define MB_N_HOLD_REGS         40
+#define MB_N_HOLD_REGS         60
 #define MB_N_HOLD_REGS_EEPROM  20
 extern uint16_t hold_regs[MB_N_HOLD_REGS];
 #define mb_unit_id     (hold_regs[0])
index 0cc4eebc1955cd3be7d90b2f52dd3b134691d790..5d40d70840195615d8a6e8e51e2d9d3d726c916d 100644 (file)
@@ -131,6 +131,7 @@ Software kontroleru:
                        1021-1032 measured distances
                        1033 free_bitmap (1=free)
                        1034 err_bitmap (1=err)
+                       1041-1052 maximum measured distances
 
        Hlavni smycka, cca 5 vterin:
                ? zmerit teplotu z ATmegy