Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "AConfig.h"
- #if(HAS_Slave)
- #include <Arduino.h>
- #include "Slave.h"
- #include "CPin.h"
- #include "NConfigManager.h"
- #include "NModuleManager.h"
- #include "NCommManager.h"
- #if(HAS_STD_CAPE)
- #include "CCape.h"
- #endif
- #if(HAS_OROV_CONTROLLERBOARD_25)
- #include "CControllerBoard.h"
- #endif
- #include <SoftwareSerial.h>
- #define rx 14 //define what pin rx is going to be
- #define tx 15 //define what pin tx is going to be
- SoftwareSerial myserial(rx, tx); //define how the soft serial port is going to work
- char sensorstring_array[30]; //we make a char array
- char *EC; //char pointer used in string parsing
- char *TDS; //char pointer used in string parsing
- char *SAL; //char pointer used in string parsing
- char *GRAV; //char pointer used in string parsing
- float f_ec; //used to hold a floating point number that is the EC
- String inputstring = ""; //a string to hold incoming data from the PC
- String sensorstring = ""; //a string to hold the data from the Atlas Scientific product
- boolean input_string_complete = false; //have we received all the data from the PC
- boolean sensor_string_complete = false; //have we received all the data from the Atlas Scientific product
- void Slave::Initialize() { //set up the hardware
- Serial.begin(9600); //set baud rate for the hardware serial port_0 to 9600
- myserial.begin(9600); //set baud rate for the software serial port to 9600
- inputstring.reserve(10); //set aside some bytes for receiving data from the PC
- sensorstring.reserve(30); //set aside some bytes for receiving data from Atlas Scientific product
- }
- void Slave::Update( CCommand& commandIn)
- { //here we go...
- while(Serial.available()){
- inputstring = Serial.readStringUntil(13); //read the string until we see a <CR>
- input_string_complete = true;
- }
- if (input_string_complete) { //if a string from the PC has been received in its entirety
- myserial.print(inputstring); //send that string to the Atlas Scientific product
- myserial.print('\r'); //add a <CR> to the end of the string
- inputstring = ""; //clear the string
- input_string_complete = false; //reset the flag used to tell if we have received a completed string from the PC
- }
- if (myserial.available() > 0) { //if we see that the Atlas Scientific product has sent a character
- char inchar = (char)myserial.read(); //get the char we just received
- sensorstring += inchar; //add the char to the var called sensorstring
- if (inchar == '\r') { //if the incoming character is a <CR>
- sensor_string_complete = true; //set the flag
- }
- }
- if (sensor_string_complete == true) { //if a string from the Atlas Scientific product has been received in its entirety
- if (isdigit(sensorstring[0]) == false) { //if the first character in the string is a digit
- Serial.println(sensorstring); //send that string to the PC's serial monitor
- }
- else //if the first character in the string is NOT a digit
- {
- sensorstring.toCharArray(sensorstring_array, 30); //convert the string to a char array
- EC = strtok(sensorstring_array, ","); //let's pars the array at each comma
- TDS = strtok(NULL, ","); //let's pars the array at each comma
- SAL = strtok(NULL, ","); //let's pars the array at each comma
- GRAV = strtok(NULL, ","); //let's pars the array at each comma
- Serial.print("EC:"); //we now print each value we parsed separately
- Serial.println(EC); //this is the EC value
- Serial.print("TDS:"); //we now print each value we parsed separately
- Serial.println(TDS); //this is the TDS value
- Serial.print("SAL:"); //we now print each value we parsed separately
- Serial.println(SAL); //this is the salinity value
- Serial.print("GRAV:"); //we now print each value we parsed separately
- Serial.println(GRAV); //this is the specific gravity
- Serial.println(); //this just makes the output easier to read
- //then call this function
- }
- sensorstring = ""; //clear the string
- sensor_string_complete = false; //reset the flag used to tell if we have received a completed string from the Atlas Scientific product
- }
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement