From ca33af45434be98d3c412e93fb6768aafa418158 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周六, 20 2月 2016 23:59:50 +0800
Subject: [PATCH] Optimize #49 memory consumption of double to string conversion

---
 libscpi/inc/scpi/types.h |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/libscpi/inc/scpi/types.h b/libscpi/inc/scpi/types.h
index fab9b37..0147c03 100644
--- a/libscpi/inc/scpi/types.h
+++ b/libscpi/inc/scpi/types.h
@@ -201,8 +201,14 @@
 
     typedef scpi_result_t(*scpi_command_callback_t)(scpi_t *);
 
-    /* scpi error queue */
-    typedef void * scpi_error_queue_t;
+    struct _scpi_fifo_t {
+        int16_t wr;
+        int16_t rd;
+        int16_t count;
+        int16_t size;
+        int16_t * data;
+    };
+    typedef struct _scpi_fifo_t scpi_fifo_t;
 
     /* scpi units */
     enum _scpi_unit_t {
@@ -276,7 +282,9 @@
     struct _scpi_command_t {
         const char * pattern;
         scpi_command_callback_t callback;
+#if USE_COMMAND_TAGS
         int32_t tag;
+#endif /* USE_COMMAND_TAGS */
     };
 
     struct _scpi_interface_t {
@@ -295,14 +303,24 @@
         int_fast16_t output_count;
         int_fast16_t input_count;
         scpi_bool_t cmd_error;
-        scpi_error_queue_t error_queue;
-        scpi_reg_val_t * registers;
+        scpi_fifo_t error_queue;
+        scpi_reg_val_t registers[SCPI_REG_COUNT];
         const scpi_unit_def_t * units;
         void * user_context;
         scpi_parser_state_t parser_state;
         const char * idn[4];
+        size_t arbitrary_reminding;
     };
 
+    enum _scpi_array_format_t {
+        SCPI_FORMAT_ASCII = 0,
+        SCPI_FORMAT_NORMAL = 1,
+        SCPI_FORMAT_SWAPPED = 2,
+        SCPI_FORMAT_BIGENDIAN = SCPI_FORMAT_NORMAL,
+        SCPI_FORMAT_LITTLEENDIAN = SCPI_FORMAT_SWAPPED,
+    };
+    typedef enum _scpi_array_format_t scpi_array_format_t;
+
 #ifdef  __cplusplus
 }
 #endif

--
Gitblit v1.9.1