#include "SerialConnect.h"
#include "SolenoidValve.h"
#define BAUD 9600L

SolenoidValve *valve = new SolenoidValve(9,32);

class Node : public SerialConnect {
        public: Node(int id_size): SerialConnect(id_size){};  
        private:
        virtual String _packet_func(); 
        virtual void _handle_command_func(int,int); 
};
Node *node = new Node(2);

String Node::_packet_func(){
  return String(valve->get_pwm());
}
void Node::_handle_command_func(int id, int val){
  Serial.println(String(id)+", "+String(val));
  switch (id) {
    case 1: valve->set_pwm(val); break;
  }
}

void setup() {
  Serial.begin(BAUD); 
  node->init();
  valve->init();
  pinMode(3,OUTPUT);
  digitalWrite(3,LOW); //hack
}

void loop() {
  node->update();
  valve->update();
}
