Kod new

Dependencies:   BLE_API MMA8452Q mbed nRF51822

Revision:
2:e78a5ce9f1d7
Parent:
0:6bd1a61571d0
--- a/Service.h	Thu Apr 07 16:48:47 2016 +0000
+++ b/Service.h	Sun Apr 10 17:47:09 2016 +0000
@@ -34,20 +34,112 @@
     }
 
     void updateXState(float newState) {
-        printf("\n%f\r\n",newState);
-        ble.gattServer().write(xState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
+        
+        int length = sizeof(float);
+        
+        uint8_t bytes[sizeof(float)];
+          for(int i = 0; i < length; i++){
+            bytes[i] = ((uint8_t*)&newState)[i];
+            //printf("%x ",bytes[i]);
+           // printf("%d;",length);
+            }
+
+            
+            
+            int n = sizeof(bytes) / sizeof(bytes[0]);
+            //printf("%d",sizeof(bytes[0]));
+        ble.gattServer().write(xState.getValueHandle(), (uint8_t *)&bytes, n);
+        
+        
+        
+        //uint8_t *p = (uint8_t*)&newState;
+
+        //for (int i = 0; i < sizeof(newState); i++) printf("wwww 0x%02x ", p[i]);
+        //ble.gattServer().write(xState.getValueHandle(), (uint8_t *)&newState, sizeof(newState));
     }
     
     void updateYState(float newState) {
-        ble.gattServer().write(yState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
+        //ble.gattServer().write(yState.getValueHandle(), (uint8_t *)&newState, sizeof(newState));
+        int length = sizeof(float);
+        uint8_t bytes[sizeof(float)];
+          for(int i = 0; i < length; i++){
+            bytes[i] = ((uint8_t*)&newState)[i];
+            //printf("%x ",bytes[i]);
+            }
+            //printf("%d",sizeof(bytes[0]));
+            
+             int n = sizeof(bytes) / sizeof(bytes[0]);
+       ble.gattServer().write(yState.getValueHandle(), (uint8_t *)&bytes, n);
     }
     
     void updateZState(float newState) {
-        ble.gattServer().write(zState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
+        //ble.gattServer().write(zState.getValueHandle(), (uint8_t *)&newState, sizeof(newState));
+        int length = sizeof(float);
+        uint8_t bytes[sizeof(float)];
+          for(int i = 0; i < length; i++){
+            bytes[i] = ((uint8_t*)&newState)[i];
+            //printf("%x ",bytes[i]);
+            }
+            //printf("%d",sizeof(bytes[0]));
+             int n = sizeof(bytes) / sizeof(bytes[0]);
+        ble.gattServer().write(zState.getValueHandle(), (uint8_t *)&bytes, n);
     }
     
-    void updateALLState(float newState) {
-        ble.gattServer().write(allState.getValueHandle(), (uint8_t *)&newState, sizeof(float));
+    void updateALLState(float newState,float newStatey,float newStatez) {
+        
+        int length = 14;
+        uint8_t bytes[14];
+        
+        printf("dane: %f;%f;%f\n",newState, newStatey,newStatez);
+        
+        /*
+          for(int i = 0; i < length; i++){
+            if(i<=3){
+                bytes[i] = ((uint8_t*)&newState)[i];
+                printf("X: %x ",bytes[i]);
+            }
+            else if(i==4){
+                bytes[i] = 0xff;
+                printf("P: %x ",bytes[i]);
+                }
+            else if(i>4&&i<=8){
+                bytes[i] = ((uint8_t*)&newStatey)[i];
+                printf("Y: %x ",bytes[i]);
+                }
+            else if(i==9){
+                bytes[i] = 0xff;
+                printf("P: %x ",bytes[i]);
+                }
+            else if(i>9&&i<14){
+                bytes[i] = ((uint8_t*)&newStatez)[i];
+                printf("Z: %x ",bytes[i]);
+                }
+            }
+            */
+            
+            bytes[0] = ((uint8_t*)&newState)[0];
+            bytes[1] = ((uint8_t*)&newState)[1];
+            bytes[2] = ((uint8_t*)&newState)[2];
+            bytes[3] = ((uint8_t*)&newState)[3];
+            bytes[4] = 0xff;
+            bytes[5] = ((uint8_t*)&newStatey)[0];
+            bytes[6] = ((uint8_t*)&newStatey)[1];
+            bytes[7] = ((uint8_t*)&newStatey)[2];
+            bytes[8] = ((uint8_t*)&newStatey)[3];
+            bytes[9] = 0xff;
+            bytes[10] = ((uint8_t*)&newStatez)[0];
+            bytes[11] = ((uint8_t*)&newStatez)[1];
+            bytes[12] = ((uint8_t*)&newStatez)[2];
+            bytes[13] = ((uint8_t*)&newStatez)[3];
+            
+            for(int i=0;i<length;i++){
+                printf("%x ",bytes[i]);
+                }
+            
+             uint16_t n = sizeof(bytes) / sizeof(bytes[0]);
+             printf("%d",n);
+        
+        ble.gattServer().write(allState.getValueHandle(), (uint8_t *)&bytes, n);
     }
 
 private: