from LPC1768_LWM2M_Client

Dependencies:   F7_Ethernet mbed-rtos mbed nsdl_lib

Fork of rtos_basic by Mbed

Committer:
zef
Date:
Wed Dec 21 03:08:39 2016 +0000
Revision:
8:5bcb48a04554
from LPC1768_LWM2M_Client Project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zef 8:5bcb48a04554 1 // GPS resource implementation
zef 8:5bcb48a04554 2
zef 8:5bcb48a04554 3 #include "mbed.h"
zef 8:5bcb48a04554 4 #include "nsdl_support.h"
zef 8:5bcb48a04554 5 #include "gps.h"
zef 8:5bcb48a04554 6
zef 8:5bcb48a04554 7 #define GPS_RES_ID "gps/loc"
zef 8:5bcb48a04554 8
zef 8:5bcb48a04554 9 extern Serial pc;
zef 8:5bcb48a04554 10 static uint8_t res_gps_val[] = {"52.182382,0.178849"};
zef 8:5bcb48a04554 11
zef 8:5bcb48a04554 12 /* Only GET method allowed */
zef 8:5bcb48a04554 13 static uint8_t gps_resource_cb(sn_coap_hdr_s *received_coap_ptr, sn_nsdl_addr_s *address, sn_proto_info_s * proto)
zef 8:5bcb48a04554 14 {
zef 8:5bcb48a04554 15 sn_coap_hdr_s *coap_res_ptr = 0;
zef 8:5bcb48a04554 16 static float led_dimm = 0;
zef 8:5bcb48a04554 17 int led_state = 0;
zef 8:5bcb48a04554 18 char led_dimm_temp[4];
zef 8:5bcb48a04554 19
zef 8:5bcb48a04554 20 pc.printf("gps callback\r\n");
zef 8:5bcb48a04554 21
zef 8:5bcb48a04554 22 coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CONTENT);
zef 8:5bcb48a04554 23
zef 8:5bcb48a04554 24 led_state = led_dimm * 100;
zef 8:5bcb48a04554 25 sprintf(led_dimm_temp, "%d", led_state);
zef 8:5bcb48a04554 26
zef 8:5bcb48a04554 27 coap_res_ptr->payload_len = sizeof(res_gps_val)-1;
zef 8:5bcb48a04554 28 coap_res_ptr->payload_ptr = (uint8_t*)res_gps_val;
zef 8:5bcb48a04554 29
zef 8:5bcb48a04554 30 sn_nsdl_send_coap_message(address, coap_res_ptr);
zef 8:5bcb48a04554 31
zef 8:5bcb48a04554 32 sn_coap_parser_release_allocated_coap_msg_mem(coap_res_ptr);
zef 8:5bcb48a04554 33
zef 8:5bcb48a04554 34 return 0;
zef 8:5bcb48a04554 35 }
zef 8:5bcb48a04554 36
zef 8:5bcb48a04554 37 int create_gps_resource(sn_nsdl_resource_info_s *resource_ptr)
zef 8:5bcb48a04554 38 {
zef 8:5bcb48a04554 39 nsdl_create_dynamic_resource(resource_ptr, sizeof(GPS_RES_ID)-1, (uint8_t*)GPS_RES_ID, 0, 0, 0, &gps_resource_cb, SN_GRS_GET_ALLOWED);
zef 8:5bcb48a04554 40 return 0;
zef 8:5bcb48a04554 41 }