taiyou komazawa / DataPool

Dependencies:   Gamma Beta Alpha

Dependents:   2017_Bteam_I2CTransporter BETA_A ALPHA_A GAMMA_A

Files at this revision

API Documentation at this revision

Comitter:
Komazawa_sun
Date:
Fri Aug 18 03:13:00 2017 +0000
Parent:
1:47ea89b6364e
Child:
3:7606edb64c1c
Commit message:
2017_hongo_Bteam

Changed in this revision

Gamma.lib Show annotated file Show diff for this revision Revisions of this file
GammaPool.cpp Show diff for this revision Revisions of this file
GammaPool.h Show diff for this revision Revisions of this file
I2CTransporter.cpp Show annotated file Show diff for this revision Revisions of this file
I2CTransporter.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gamma.lib	Fri Aug 18 03:13:00 2017 +0000
@@ -0,0 +1,1 @@
+Gamma#519ec302e9b8
--- a/GammaPool.cpp	Wed Aug 16 07:02:54 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-#include "GammaPool.h"
-
-GammaPool::GammaPool()
-:   _master(SDA, SCL)
-{
-    data_index[0] = ctrl.rx;
-    data_index[1] = ctrl.ry;
-    data_index[2] = ctrl.lx;
-    data_index[3] = ctrl.r_sw1;
-    data_index[4] = ctrl.r_sw2;
-    data_index[5] = ctrl.r_sw3;
-    data_index[6] = ctrl.r_sw4;
-    data_index[7] = ctrl.r_s_sw1;
-    data_index[8] = ctrl.r_s_sw2;
-    data_index[9] = ctrl.l_sw1;
-    data_index[10] = ctrl.l_sw2;
-    data_index[11] = ctrl.l_sw3;
-    data_index[12] = ctrl.l_sw4;
-    data_index[13] = ctrl.l_s_sw1;
-    data_index[14] = ctrl.l_s_sw2;
-    data_index[15] = ctrl.mode1;
-    data_index[16] = ctrl.mode2;
-    data_index[17] = ctrl.r_srd;
-    data_index[18] = ctrl.l_srd;
-    data_index[19] = ar.r.max_limit;
-    data_index[20] = ar.r.min_limit;
-    data_index[21] = ar.l.max_limit;
-    data_index[22] = ar.l.min_limit;
-}
-
-bool GammaPool::set()
-{
-    bool error = true;
-    /*_master.transport(0, JUSHINKUN_ADDR,  0, ctrl.all_data, 10);
-    _master.transport(APPER_BODY_ADDR, TspMode::send,    r.all_data,    4);
-    _master.transport(APPER_BODY_ADDR, TspMode::reseive, r.all_data,    1);*/
-    
-    error &= ~_master.read(JUSHINKUN_ADDR, ctrl.all_data, 10);
-    error &= ~_master.write(APPER_BODY_ADDR, a.all_data, 4);
-    error &= ~_master.read(JUSHINKUN_ADDR, ar.all_data, 1);
-    
-    return error;
-} 
-
-int GammaPool::read(int index_num)
-{
-    return data_index[index_num];
-}
-        
-void GammaPool::reset(){
-    for(int t = 0; t < 10; t++)
-        ctrl.all_data[t] = 0;
-    for(int t = 0; t < 4; t++)
-        a.all_data[t] = 0;
-    ar.all_data[0] = 0;
-}
\ No newline at end of file
--- a/GammaPool.h	Wed Aug 16 07:02:54 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-#ifndef SDA
-#define SDA PB_7
-#endif
-
-#ifndef SCL
-#define SCL PB_6
-#endif
-
-#ifndef SCL
-#define SCL PB_6
-#endif
-
-#ifndef JUSHINKUN_ADDR
-#define JUSHINKUN_ADDR 0x12
-#endif
-
-#ifndef APPER_BODY_ADDR
-#define APPER_BODY_ADDR 0x11
-#endif
-
-#ifndef GAMMAPOOL_H
-#define GAMMAPOOL_H
-
-#include "DataPool.h"
-#include <mbed.h>
-//#include "I2CTransporter.h"
-
-class GammaPool : DataPool{
-    public:
-        GammaPool();
-        
-        virtual bool set();
-        virtual int read(int index_num);
-        virtual void reset();
-        
-    protected: 
-        union i2c_jusinkun_data //from jushinkun_datas
-        {
-            char all_data[10];
-            struct 
-            {
-                unsigned char start_byte:8;
-                signed int rx :8;
-                signed int ry :8;
-                signed int lx :8;
-                unsigned int r_sw1 :1;
-                unsigned int r_sw2 :1;
-                unsigned int r_sw3 :1;
-                unsigned int r_sw4 :1;
-                unsigned int r_s_sw1 :1;
-                unsigned int r_s_sw2 :1;
-                unsigned int l_sw1 :1;
-                unsigned int l_sw2 :1;
-                unsigned int l_sw3 :1;
-                unsigned int l_sw4 :1;
-                unsigned int l_s_sw1 :1;
-                unsigned int l_s_sw2 :1;
-                unsigned int mode1 :1;
-                unsigned int mode2 :1;
-                signed int r_srd :8;
-                signed int l_srd :8;
-                unsigned int no_data :2;
-                unsigned char checksum:8;
-                unsigned char stop_byte :8;
-            };
-        };
-        
-        i2c_jusinkun_data ctrl;
-        
-        
-        union i2c_johanshin_data
-        {
-            char all_data[4];
-            struct
-            {
-                struct
-                {
-                    signed int pwm :8;
-                    int fire1 :1;
-                    int fire2 :1;
-                }r;
-                
-                struct
-                {
-                    signed int pwm :8;
-                    int fire1 :1;
-                    int fire2 :1;
-                }l;
-
-                struct
-                {
-                    signed int pwm :8;
-                    int fire :1;
-                    //int fire2 :1;
-                }k;
-                
-                int sao_call1 :1;
-                int sao_call2 :1;
-                int no_data :1;        
-            };
-        }; //apper_body
-        i2c_johanshin_data a;
-        
-        union i2c_johanshin_return
-        {
-            char all_data[1];
-            struct limit
-            {
-                unsigned int max_limit :1;
-                unsigned int min_limit :1;
-            };
-            limit r;
-            limit l;  
-            limit k;  
-        }; //apper_body_return
-        i2c_johanshin_return ar;
-    private:
-        //I2CTransporter _master;
-        I2C _master;
-        int data_index[23];
-};
-
-
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/I2CTransporter.cpp	Fri Aug 18 03:13:00 2017 +0000
@@ -0,0 +1,59 @@
+#include "I2CTransporter.h"
+
+I2CTransporter::I2CTransporter(PinName sda, PinName scl)
+:   _master(sda,scl)
+{
+    address = 0;
+    target_array = NULL;
+    Transport_Began = false;
+}
+    
+void I2CTransporter::transport_begin(int addr_, char *target_array_, int data_size_)
+{
+    address = addr_ ;
+    target_array = target_array_;
+    data_size = data_size_;
+    Transport_Began = true;  
+}   
+
+bool I2CTransporter::read()
+{
+    if(Transport_Began == true)
+    {
+        return _master.read(address, target_array, data_size) == 0
+            ? true 
+            : false;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+bool I2CTransporter::write()
+{
+    if(Transport_Began == true)
+    {
+        return _master.write(address, target_array, data_size) == 0
+            ? true 
+            : false;
+    }
+    else
+    {
+        return false;
+    }
+}
+
+void I2CTransporter::transport_end()
+{
+    if(Transport_Began == true)
+    {
+        address = 0;
+        target_array = NULL;
+        data_size = 0;
+        Transport_Began = false;  
+    }
+    else
+    {
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/I2CTransporter.h	Fri Aug 18 03:13:00 2017 +0000
@@ -0,0 +1,25 @@
+#ifndef I2C_TRANSPORTER_H
+#define I2C_TRANSPORTER_H
+
+#include <mbed.h>
+
+class I2CTransporter
+{
+    public:
+        I2CTransporter(PinName sda, PinName scl);
+        
+        void transport_begin(int addr_, char *target_array_, int data_size_);
+        bool read();
+        bool write();
+        void transport_end();
+        
+    private:
+        I2C _master;
+        
+        int address;
+        char *target_array;
+        int data_size;
+        bool Transport_Began;  
+};
+
+#endif