Part One of my Project Course. Implementation of simple I/O and a custom defined protocol over UDP/IP.
Dependencies: C12832 LM75B mbed EthernetInterface mbed-rtos
master.cpp
- Committer:
- bertgereels
- Date:
- 2018-02-26
- Revision:
- 0:88d3b9015f7c
- Child:
- 1:b5c534165dfe
File content as of revision 0:88d3b9015f7c:
#include "master.h" #include "command.h" #include <string.h> #include <stdio.h> namespace ProjectOne{ Serial pc(USBTX, USBRX); Master::Master(void){ CurrentMasterState = STATE_INIT; inputCommandArrayPtr = inputCommandArray; } void Master::handlePcData(void){ sendMessageToPc("Listening for commands.\r\n"); switch(CurrentMasterState){ case STATE_INIT: { //TO DO UDP init pc.baud(9600); sendMessageToPc("--------------------------------"); sendMessageToPc("Initiating serial Communication."); sendMessageToPc("--------------------------------"); CurrentMasterState = STATE_RECEIVING; break; } case STATE_RECEIVING: { sendMessageToPc("In state receiving.\r\n"); char temp; sendMessageToPc("In state receiving in if loop.\r\n"); char_counter = 0; for(int i = 0; i <= 19; i ++){ temp = pc.getc(); if((int)temp == 13){ sendMessageToPc("Enter detected.\r\n"); CurrentMasterState = STATE_HANDLE_STRING; break; } //appendChar(inputCommandArray, temp, char_counter); inputCommandArray[char_counter] = temp; sendMessageToPc("Appending character to array.\r\n"); char_counter++; } CurrentMasterState = STATE_HANDLE_STRING; break; } case STATE_HANDLE_STRING: { sendMessageToPc("In state handle string.\r\n"); char_counter = 0; sendMessageToPc(inputCommandArray); char command_type[3]; char command[17]; strncpy(command_type, inputCommandArray, 3); strncpy(command, inputCommandArray + 4, 17); sendMessageToPc(command_type); //type command PUT of GET sendMessageToPc(command); //Welke command //Van hieruit frame maken en verzenden naar andere mbed met commando memset(&inputCommandArray[0], 0, sizeof(inputCommandArray)); CurrentMasterState = STATE_RECEIVING; break; } } } //ACK 2.05 = 1, ACK 2.04 = 2, ACK 4.00 = 3 void Master::sendAcknowledgement(int ack_type, int value_to_include){ //dit moet in UDP klasse } void Master::sendMessageToPc(char *message_to_pc){ printf(message_to_pc); printf("\r\n"); } void Master::appendChar(char array[], char charToAppend, int position){ } }