external fota service implementation

Dependencies:   mbed

Committer:
dudnwjs
Date:
Fri Jun 19 06:49:20 2015 +0000
Revision:
0:bab3be8d31cf
add GAPM,GAPC header

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudnwjs 0:bab3be8d31cf 1 #include "mbed.h"
dudnwjs 0:bab3be8d31cf 2 #include "serial_communicator.h"
dudnwjs 0:bab3be8d31cf 3 #include "mbed_fota_config.h"
dudnwjs 0:bab3be8d31cf 4
dudnwjs 0:bab3be8d31cf 5
dudnwjs 0:bab3be8d31cf 6 Serial hostpc(USBTX,USBRX);
dudnwjs 0:bab3be8d31cf 7 Serial device(p13,p14);
dudnwjs 0:bab3be8d31cf 8
dudnwjs 0:bab3be8d31cf 9 DigitalOut led1(LED1);
dudnwjs 0:bab3be8d31cf 10
dudnwjs 0:bab3be8d31cf 11 void func1()
dudnwjs 0:bab3be8d31cf 12 {
dudnwjs 0:bab3be8d31cf 13 while(1)
dudnwjs 0:bab3be8d31cf 14 {
dudnwjs 0:bab3be8d31cf 15 wait(1);
dudnwjs 0:bab3be8d31cf 16 led1 = !led1;
dudnwjs 0:bab3be8d31cf 17 }
dudnwjs 0:bab3be8d31cf 18 }
dudnwjs 0:bab3be8d31cf 19
dudnwjs 0:bab3be8d31cf 20 int main() {
dudnwjs 0:bab3be8d31cf 21 Serial_Communicator Fota_comm(&device, &hostpc);
dudnwjs 0:bab3be8d31cf 22 // Serial Setting
dudnwjs 0:bab3be8d31cf 23 hostpc.baud(115200);
dudnwjs 0:bab3be8d31cf 24 device.baud(115200);
dudnwjs 0:bab3be8d31cf 25
dudnwjs 0:bab3be8d31cf 26 // print title
dudnwjs 0:bab3be8d31cf 27 Fota_comm.print_title();
dudnwjs 0:bab3be8d31cf 28 uint8_t *a,*c;
dudnwjs 0:bab3be8d31cf 29 uint8_t b[1];
dudnwjs 0:bab3be8d31cf 30 b[0] = 0x01;
dudnwjs 0:bab3be8d31cf 31 unsigned short array_size = 1+sizeof(ble_hdr)+sizeof(gapm_reset_cmd);
dudnwjs 0:bab3be8d31cf 32 a = new uint8_t[array_size];
dudnwjs 0:bab3be8d31cf 33 hostpc.printf("msg size = %hu\n", array_size);
dudnwjs 0:bab3be8d31cf 34 Fota_comm.BleMsgAlloc(GAPM_RESET_CMD,TASK_GAPM,TASK_GTL,1,b,a);
dudnwjs 0:bab3be8d31cf 35
dudnwjs 0:bab3be8d31cf 36 ble_hdr test;
dudnwjs 0:bab3be8d31cf 37 gapm_reset_cmd data_test;
dudnwjs 0:bab3be8d31cf 38
dudnwjs 0:bab3be8d31cf 39 memcpy(&test,&a[1],sizeof(ble_hdr));
dudnwjs 0:bab3be8d31cf 40 memcpy(&data_test,&a[1+sizeof(ble_hdr)],sizeof(gapm_reset_cmd));
dudnwjs 0:bab3be8d31cf 41
dudnwjs 0:bab3be8d31cf 42 hostpc.printf("packet_type = 0x%02X\n", a[0]);
dudnwjs 0:bab3be8d31cf 43 hostpc.printf("id = %hu, dst = %hu, src = %hu, len = %hu\n", test.bType,test.bDstid,test.bSrcid,test.bLength);
dudnwjs 0:bab3be8d31cf 44 hostpc.printf("data = %02X\n",data_test.operation);
dudnwjs 0:bab3be8d31cf 45
dudnwjs 0:bab3be8d31cf 46 hostpc.printf("send cnt = %d \n",Fota_comm.BleSendMsg(a,array_size));
dudnwjs 0:bab3be8d31cf 47
dudnwjs 0:bab3be8d31cf 48 Fota_comm.BleMsgEnQueue(a);
dudnwjs 0:bab3be8d31cf 49 c = Fota_comm.BleMsgDeQueue();
dudnwjs 0:bab3be8d31cf 50
dudnwjs 0:bab3be8d31cf 51 memcpy(&test,&c[1],sizeof(ble_hdr));
dudnwjs 0:bab3be8d31cf 52 memcpy(&data_test,&c[1+sizeof(ble_hdr)],sizeof(gapm_reset_cmd));
dudnwjs 0:bab3be8d31cf 53
dudnwjs 0:bab3be8d31cf 54 hostpc.printf("#c packet_type = 0x%02X\n", c[0]);
dudnwjs 0:bab3be8d31cf 55 hostpc.printf("#c id = %hu, dst = %hu, src = %hu, len = %hu\n", test.bType,test.bDstid,test.bSrcid,test.bLength);
dudnwjs 0:bab3be8d31cf 56 hostpc.printf("#c data = %02X\n",data_test.operation);
dudnwjs 0:bab3be8d31cf 57
dudnwjs 0:bab3be8d31cf 58 free(c);
dudnwjs 0:bab3be8d31cf 59 free(a);
dudnwjs 0:bab3be8d31cf 60
dudnwjs 0:bab3be8d31cf 61 while(Fota_comm.IsQueueEmpty() == false)
dudnwjs 0:bab3be8d31cf 62 {
dudnwjs 0:bab3be8d31cf 63 Fota_comm.BleReceiveMsg();
dudnwjs 0:bab3be8d31cf 64 }
dudnwjs 0:bab3be8d31cf 65 c = Fota_comm.BleMsgDeQueue();
dudnwjs 0:bab3be8d31cf 66
dudnwjs 0:bab3be8d31cf 67 memcpy(&test,&c[1],sizeof(ble_hdr));
dudnwjs 0:bab3be8d31cf 68 memcpy(&data_test,&c[1+sizeof(ble_hdr)],sizeof(gapm_reset_cmd));
dudnwjs 0:bab3be8d31cf 69
dudnwjs 0:bab3be8d31cf 70 hostpc.printf("#receive packet_type = 0x%02X\n", c[0]);
dudnwjs 0:bab3be8d31cf 71 hostpc.printf("#receive id = %hu, dst = %hu, src = %hu, len = %hu\n", test.bType,test.bDstid,test.bSrcid,test.bLength);
dudnwjs 0:bab3be8d31cf 72 hostpc.printf("#receive data = %02X\n",data_test.operation);
dudnwjs 0:bab3be8d31cf 73
dudnwjs 0:bab3be8d31cf 74 free(c);
dudnwjs 0:bab3be8d31cf 75 while(1)
dudnwjs 0:bab3be8d31cf 76 {
dudnwjs 0:bab3be8d31cf 77 func1();
dudnwjs 0:bab3be8d31cf 78 //serial receive process
dudnwjs 0:bab3be8d31cf 79 }
dudnwjs 0:bab3be8d31cf 80
dudnwjs 0:bab3be8d31cf 81 }