#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
#include <SoftPWM.h>  //including the SoftPWM library

int dac = 0;

YunServer server;

void setup()
{
  //initializing PWM pins
  for(uint8_t i = 2; i <= 13; ++i)
  {
    pinMode(i, OUTPUT);
  }
  Bridge.begin();
  server.listenOnLocalhost();
  server.begin();
  SoftPWMBegin(SOFTPWM_NORMAL);  //begins SoftPWM
}

void loop()
{
  YunClient client = server.accept();
  if (client)
  {
    process(client);
    client.stop();
  }
  delay(50);  //delay for 50ms
}

void process(YunClient client)
{
  String command = client.readStringUntil('/');
  if(command == "dac")
  {
    dacCommand(client);
  }
}

void dacCommand(YunClient client)
{
  int pin, value;
  pin = client.parseInt();  //obtain pin # from HTML
  if (client.read() == '/')
  {
    value = client.parseInt();  //obtain value from HTML
    dac = value;
    SoftPWMSet(pin, value);  //set pin to PWM value
  }
  else
  {
    value = dac;
  }
}
