James Fernando / Mbed 2 deprecated frdm_labex_5_1_UDPServer

Dependencies:   mbed mbed-rtos EthernetInterface FXOS8700Q

Committer:
jamesfernando
Date:
Fri Dec 14 23:44:47 2018 +0000
Revision:
0:27d69341acda
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jamesfernando 0:27d69341acda 1 /*--INCLUDES----------------------------------------------------------------------------*/
jamesfernando 0:27d69341acda 2 #include "mbed.h"
jamesfernando 0:27d69341acda 3 #include "EthernetInterface.h"
jamesfernando 0:27d69341acda 4 #include "FXOS8700Q.h"
jamesfernando 0:27d69341acda 5 #include <stdio.h>
jamesfernando 0:27d69341acda 6 #include <iostream>
jamesfernando 0:27d69341acda 7
jamesfernando 0:27d69341acda 8 /*--CONSTANTS---------------------------------------------------------------------------*/
jamesfernando 0:27d69341acda 9 const int PORT = 7; //arbitrary port
jamesfernando 0:27d69341acda 10
jamesfernando 0:27d69341acda 11 static const char* SERVER_IP = "192.168.1.101"; //IP of server board
jamesfernando 0:27d69341acda 12 static const char* MASK = "255.255.255.0"; //mask
jamesfernando 0:27d69341acda 13 static const char* GATEWAY = "192.168.1.1"; //gateway
jamesfernando 0:27d69341acda 14
jamesfernando 0:27d69341acda 15
jamesfernando 0:27d69341acda 16 /*--INITS-------------------------------------------------------------------------------*/
jamesfernando 0:27d69341acda 17 Serial pc(USBTX, USBRX); //create PC interface
jamesfernando 0:27d69341acda 18 EthernetInterface eth; //create ethernet
jamesfernando 0:27d69341acda 19 UDPSocket server; //creat server
jamesfernando 0:27d69341acda 20 Endpoint client; //create endpoint
jamesfernando 0:27d69341acda 21 FXOS8700Q_acc acc( PTE25, PTE24, FXOS8700CQ_SLAVE_ADDR1);
jamesfernando 0:27d69341acda 22
jamesfernando 0:27d69341acda 23
jamesfernando 0:27d69341acda 24 DigitalOut red(LED_RED); //debug led
jamesfernando 0:27d69341acda 25 DigitalOut green(LED_GREEN); //debug led
jamesfernando 0:27d69341acda 26
jamesfernando 0:27d69341acda 27
jamesfernando 0:27d69341acda 28 /*--VARIABLES---------------------------------------------------------------------------*/
jamesfernando 0:27d69341acda 29 int n; //size of received message
jamesfernando 0:27d69341acda 30 char* recieveBuffer; //Receive Buffer
jamesfernando 0:27d69341acda 31 char* sendBuffer; //Send Buffer
jamesfernando 0:27d69341acda 32 std::string inStr;
jamesfernando 0:27d69341acda 33 std::string outStr;
jamesfernando 0:27d69341acda 34 float faX, faY;
jamesfernando 0:27d69341acda 35
jamesfernando 0:27d69341acda 36 /*--FUNCTION DECLARATIONS---------------------------------------------------------------*/
jamesfernando 0:27d69341acda 37 void init_usb(void); //initializes pc.printf if required
jamesfernando 0:27d69341acda 38 void init_eth(void); //initializes Ethernet
jamesfernando 0:27d69341acda 39 void receive(void); //receives packets
jamesfernando 0:27d69341acda 40 void printCharArr(char* arr);
jamesfernando 0:27d69341acda 41 int main(void); //main
jamesfernando 0:27d69341acda 42
jamesfernando 0:27d69341acda 43
jamesfernando 0:27d69341acda 44 /*--FUNCTION DEFINITIONS----------------------------------------------------------------*/
jamesfernando 0:27d69341acda 45
jamesfernando 0:27d69341acda 46 /*****************************************************************************INIT_USB***/
jamesfernando 0:27d69341acda 47 void init_usb(void)
jamesfernando 0:27d69341acda 48 {
jamesfernando 0:27d69341acda 49 pc.baud(9600); //baud
jamesfernando 0:27d69341acda 50
jamesfernando 0:27d69341acda 51 } //end init_usb()
jamesfernando 0:27d69341acda 52
jamesfernando 0:27d69341acda 53 /*****************************************************************************INIT_ETH***/
jamesfernando 0:27d69341acda 54 void init_eth(void)
jamesfernando 0:27d69341acda 55 {
jamesfernando 0:27d69341acda 56 eth.init(SERVER_IP, MASK, GATEWAY); //set up IP
jamesfernando 0:27d69341acda 57 eth.connect(); //connect ethernet
jamesfernando 0:27d69341acda 58 pc.printf("\nSERVER - Server IP Address is %s\r\n", eth.getIPAddress()); //get server IP address;
jamesfernando 0:27d69341acda 59
jamesfernando 0:27d69341acda 60 server.bind(PORT); //bind server
jamesfernando 0:27d69341acda 61
jamesfernando 0:27d69341acda 62 } //end init_eth()
jamesfernando 0:27d69341acda 63
jamesfernando 0:27d69341acda 64 /******************************************************************************RECEIVE***/
jamesfernando 0:27d69341acda 65 void receive(void)
jamesfernando 0:27d69341acda 66 {
jamesfernando 0:27d69341acda 67
jamesfernando 0:27d69341acda 68
jamesfernando 0:27d69341acda 69 pc.printf("\nSERVER - Waiting for UDP packet...\r\n"); //wait for packet
jamesfernando 0:27d69341acda 70 server.receiveFrom(client, recieveBuffer, 23); //receive message from client
jamesfernando 0:27d69341acda 71 pc.printf("SERVER - Received '");
jamesfernando 0:27d69341acda 72 printCharArr(recieveBuffer);
jamesfernando 0:27d69341acda 73 pc.printf("' from client %s\r\n", client.get_address()); //print message and client
jamesfernando 0:27d69341acda 74
jamesfernando 0:27d69341acda 75 acc.getX(&faX);
jamesfernando 0:27d69341acda 76 acc.getY(&faY);
jamesfernando 0:27d69341acda 77 sprintf(sendBuffer, "X:'% 5.3f' Y:'% 5.3f'\0", faX, faY);
jamesfernando 0:27d69341acda 78 pc.printf("SERVER - Sending '");
jamesfernando 0:27d69341acda 79 printCharArr(sendBuffer);
jamesfernando 0:27d69341acda 80 pc.printf("' back to client %s\r\n", client.get_address()); //print sending back
jamesfernando 0:27d69341acda 81 server.sendTo(client, sendBuffer, sizeof(sendBuffer)+1); //send message
jamesfernando 0:27d69341acda 82 } //end receive()
jamesfernando 0:27d69341acda 83
jamesfernando 0:27d69341acda 84 void printCharArr(char* arr){
jamesfernando 0:27d69341acda 85 for(int i = 0; i < sizeof(arr); i++){
jamesfernando 0:27d69341acda 86 pc.printf("%c", arr[i]);
jamesfernando 0:27d69341acda 87 }
jamesfernando 0:27d69341acda 88 }
jamesfernando 0:27d69341acda 89
jamesfernando 0:27d69341acda 90 /*********************************************************************************MAIN***/
jamesfernando 0:27d69341acda 91 int main(void)
jamesfernando 0:27d69341acda 92 {
jamesfernando 0:27d69341acda 93 red = 1;
jamesfernando 0:27d69341acda 94 green = 0; //server
jamesfernando 0:27d69341acda 95
jamesfernando 0:27d69341acda 96 init_usb(); //initialize the PC interface
jamesfernando 0:27d69341acda 97 init_eth(); //initialize the Ethernet connection
jamesfernando 0:27d69341acda 98 acc.enable();
jamesfernando 0:27d69341acda 99
jamesfernando 0:27d69341acda 100 while (true) //repeat forever
jamesfernando 0:27d69341acda 101 {
jamesfernando 0:27d69341acda 102 receive(); //wait for message
jamesfernando 0:27d69341acda 103 }
jamesfernando 0:27d69341acda 104
jamesfernando 0:27d69341acda 105 } //end main()