[Pkg-running-devel] [openambit] 09/131: Added readout of unknown log messages, saved as binary data [touch: 9]

Christian Perrier bubulle at moszumanska.debian.org
Thu Jul 17 20:19:06 UTC 2014


This is an automated email from the git hooks/post-receive script.

bubulle pushed a commit to branch master
in repository openambit.

commit ea941f0007fb84e88b87a1f0c15e7ec325db022b
Author: Emil Ljungdahl <emil at kratern.se>
Date:   Thu Dec 12 18:16:51 2013 +0100

    Added readout of unknown log messages, saved as binary data
    [touch: 9]
---
 src/libambit/libambit.c | 5 +++++
 src/libambit/libambit.h | 7 ++++++-
 src/libambit/pmem20.c   | 8 ++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/libambit/libambit.c b/src/libambit/libambit.c
index ad0164c..54abebe 100644
--- a/src/libambit/libambit.c
+++ b/src/libambit/libambit.c
@@ -382,6 +382,11 @@ void libambit_log_entry_free(ambit_log_entry_t *log_entry)
                         free(log_entry->samples[i].u.gps_base.satellites);
                     }
                 }
+                if (log_entry->samples[i].type == ambit_log_sample_type_unknown) {
+                    if (log_entry->samples[i].u.unknown.data != NULL) {
+                        free(log_entry->samples[i].u.unknown.data);
+                    }
+                }
             }
             free(log_entry->samples);
         }
diff --git a/src/libambit/libambit.h b/src/libambit/libambit.h
index 4b245a1..3e5fadc 100644
--- a/src/libambit/libambit.h
+++ b/src/libambit/libambit.h
@@ -124,7 +124,8 @@ typedef enum ambit_log_sample_type_e {
     ambit_log_sample_type_gps_tiny = 0x0311,
     ambit_log_sample_type_time = 0x0312,
     ambit_log_sample_type_activity = 0x0318,
-    ambit_log_sample_type_position = 0x031b
+    ambit_log_sample_type_position = 0x031b,
+    ambit_log_sample_type_unknown = 0xf000
 } ambit_log_sample_type_t;
 
 typedef enum ambit_log_sample_periodic_type_e {
@@ -279,6 +280,10 @@ typedef struct ambit_log_sample_s {
             int32_t  latitude;                  /* degree, scale: 0.0000001, -90 <= latitude <= 90 */
             int32_t  longitude;                 /* degree, scale: 0.0000001, -180 <= latitude <= 180 */
         } position;
+        struct {
+            size_t datalen;
+            uint8_t *data;
+        } unknown;
     } u;
 } ambit_log_sample_t;
 
diff --git a/src/libambit/pmem20.c b/src/libambit/pmem20.c
index 2485e8b..6bf50a5 100644
--- a/src/libambit/pmem20.c
+++ b/src/libambit/pmem20.c
@@ -614,12 +614,20 @@ static int parse_sample(uint8_t *buf, size_t *offset, uint8_t **spec, ambit_log_
             break;
           default:
             printf("Found unknown episodic sample type (%02x)\n", episodic_type);
+            log_entry->samples[*sample_count].type = ambit_log_sample_type_unknown;
+            log_entry->samples[*sample_count].u.unknown.datalen = sample_len;
+            log_entry->samples[*sample_count].u.unknown.data = malloc(sample_len);
+            memcpy(log_entry->samples[*sample_count].u.unknown.data, buf + *offset + 2, sample_len);
             break;
         }
         ret = 1;
         break;
       default:
         printf("Found unknown sample type (%02x)\n", sample_type);
+        log_entry->samples[*sample_count].type = ambit_log_sample_type_unknown;
+        log_entry->samples[*sample_count].u.unknown.datalen = sample_len;
+        log_entry->samples[*sample_count].u.unknown.data = malloc(sample_len);
+        memcpy(log_entry->samples[*sample_count].u.unknown.data, buf + *offset + 2, sample_len);
         ret = 1;
         break;
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-running/openambit.git



More information about the Pkg-running-devel mailing list