NanoService device game controller for NSPong.

Dependencies:   Beep C12832_lcd EthernetInterface MMA7660 mbed-rtos mbed nsdl_lib

NS_Game_Controller

NS_Game_Controller is a game controller software for NSPong.

NSPong is a HTML5 demo game developed on top of ARM Sensinode’s NanoService Platform. The game uses for example RealTimeMultiplayerNodeJS, Box2D and CAAT libraries, which are specifically built for HTML5 multiplayer games with the client/server model.

NSPong is available at https://github.com/NSPong/NSPong.

Demo video is available at https://vimeo.com/95207889.

Committer:
Shage
Date:
Tue May 13 17:17:38 2014 +0000
Revision:
0:e8d7be634e3c
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Shage 0:e8d7be634e3c 1 // Lcd resource implementation
Shage 0:e8d7be634e3c 2
Shage 0:e8d7be634e3c 3 #include "mbed.h"
Shage 0:e8d7be634e3c 4 #include "nsdl_support.h"
Shage 0:e8d7be634e3c 5 #include "C12832_lcd.h"
Shage 0:e8d7be634e3c 6 #include "lcd.h"
Shage 0:e8d7be634e3c 7
Shage 0:e8d7be634e3c 8 #define LCD_RES_ID "lcd"
Shage 0:e8d7be634e3c 9
Shage 0:e8d7be634e3c 10 extern Serial pc;
Shage 0:e8d7be634e3c 11 static C12832_LCD lcd;
Shage 0:e8d7be634e3c 12 // Data from PUT request
Shage 0:e8d7be634e3c 13 static char received_cmd[20];
Shage 0:e8d7be634e3c 14 static char player_in_selection[5];
Shage 0:e8d7be634e3c 15
Shage 0:e8d7be634e3c 16 /* Only PUT method allowed */
Shage 0:e8d7be634e3c 17 static uint8_t lcd_resource_cb(sn_coap_hdr_s *received_coap_ptr, sn_nsdl_addr_s *address, sn_proto_info_s * proto)
Shage 0:e8d7be634e3c 18 {
Shage 0:e8d7be634e3c 19 sn_coap_hdr_s *coap_res_ptr = 0;
Shage 0:e8d7be634e3c 20
Shage 0:e8d7be634e3c 21 memcpy(received_cmd, (char *)received_coap_ptr->payload_ptr, received_coap_ptr->payload_len);
Shage 0:e8d7be634e3c 22 received_cmd[received_coap_ptr->payload_len] = '\0';
Shage 0:e8d7be634e3c 23 sprintf(player_in_selection, "%s", received_cmd);
Shage 0:e8d7be634e3c 24
Shage 0:e8d7be634e3c 25 lcd.cls();
Shage 0:e8d7be634e3c 26 lcd.locate(0,0);
Shage 0:e8d7be634e3c 27
Shage 0:e8d7be634e3c 28 if (!strcmp(player_in_selection, "1")) {
Shage 0:e8d7be634e3c 29 lcd.printf("You are player 1\nYour paddle is on the left\nGood luck and have fun!");
Shage 0:e8d7be634e3c 30 }
Shage 0:e8d7be634e3c 31 else if (!strcmp(player_in_selection, "2")) {
Shage 0:e8d7be634e3c 32 lcd.printf("You are player 2\nYour paddle is on the right\nGood luck and have fun!");
Shage 0:e8d7be634e3c 33 }
Shage 0:e8d7be634e3c 34 else if(!strcmp(player_in_selection, "info")) {
Shage 0:e8d7be634e3c 35 lcd.printf("You have been registered\nPress joystick to start!");
Shage 0:e8d7be634e3c 36 }
Shage 0:e8d7be634e3c 37
Shage 0:e8d7be634e3c 38 coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CHANGED);
Shage 0:e8d7be634e3c 39 sn_nsdl_send_coap_message(address, coap_res_ptr);
Shage 0:e8d7be634e3c 40 sn_coap_parser_release_allocated_coap_msg_mem(coap_res_ptr);
Shage 0:e8d7be634e3c 41 return 0;
Shage 0:e8d7be634e3c 42 }
Shage 0:e8d7be634e3c 43
Shage 0:e8d7be634e3c 44 int create_lcd_resource(sn_nsdl_resource_info_s *resource_ptr)
Shage 0:e8d7be634e3c 45 {
Shage 0:e8d7be634e3c 46 nsdl_create_dynamic_resource(resource_ptr, sizeof(LCD_RES_ID)-1, (uint8_t*)LCD_RES_ID, 0, 0, 0, &lcd_resource_cb, SN_GRS_PUT_ALLOWED);
Shage 0:e8d7be634e3c 47 return 0;
Shage 0:e8d7be634e3c 48 }