I'm sorry I did not provide details or references.
I would like to use the ardumote http://www.samratamin.com/Ardumote.html sample sketch as a basis but instead of parsing the UDP packet for high or low signals or PWM signals I want the arduino to simply receive a series of 1s and 0s and light up the IR LED accordingly. I want the computer to initiate the UDP packet to the arduino. This will allow me to create a full blown LAMP (arduino will not be host to Linux apache mysql and php - LAMP) server that will host a local intranet access only web page with a set of mobile or desktop menus that recreate the possible soft buttons on the ardumote but on the server instead of on the ardumote app.
In this setup the arduino's only assigned functions will be to receive IR signals and transmit them to the LAMP server for parsing and receive UDP packets ready for IR transmission in other words it will act as an input and output of IR signals and relay the input to the computer via LAN not via USB. the arduino will not save the IR command or their pulse equivalent.
the sketch files I would like to combine are
first Ardumote's sample sketch and then the iranalyzer
#include <SPI.h> // for Arduino later than ver 0018
//#include <EthernetUdp.h> // UDP library from bjoern@cs.stanford.edu
#include <Ethernet.h>
// source: http://code.google.com/p/arduino/source/browse/trunk/libraries/?r=1094#libraries%2FEthernet
////////// NETWORK INFO ////////////////
byte mac[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //Set your Ethernet Shield's MAC address here - make sure you replace the ZZs with your shield's values!
byte ip[] = { 192,168,1,20 }; // Set your shield's desired IP address here - check your network for configuration details
//byte gateway[] = { 192,168,1,1 }; //if you need to set a gateway IP
//byte subnet[] = { 255,255,255,0 }; // Change this to your subnet address
unsigned int localPort = 7777; // local port to listen on (set this the same as Port # on Ardumote Params Screen)
IPAddress iPhoneIP(192, 168, 1, 26); //Set the iPhone/iPod/iPad's IP address to send messages back to Ardumote...
unsigned int iPhonePort = 7777; //Set the Port # of the message table you configured in Ardumote (default is 7777)...
///////////////////////////////////////////
///////// Pin Assignments /////////////////
int LED_Pin = 6; //Set LED_Pin to Pin 6 - Place an LED on Pin 6 of your ethernet shield for testing this code
///////////////////////////////////////////
///////////////// UDP Variables //////////////////
// the next two variables are set when a packet is received
//byte remoteIp[4]; // holds received packet's originating IP
//unsigned int remotePort; // holds received packet's originating port
// buffers for receiving and sending data
char packBuff[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
/////////////////////////////////////////////////
EthernetUDP Udp;
void setup() {
// More info on Ethernet on Arduino's website: http://arduino.cc/en/Reference/EthernetBegin
// start the Ethernet and UDP:
Ethernet.begin(mac,ip); // If you don't need to set your default gateway or subnet manually, use this
// Ethernet.begin(mac,ip,gateway,subnet); // Use this line instead if you've manually set all the parameters
Udp.begin(localPort); //Setup UDP socket on port defined earlier
Serial.begin(9600); //Start Serial Communications with PC
pinMode(LED_Pin,OUTPUT); //Designate pin 6 as Output Pin
}
void loop()
{
int pwmVal; // Integer that will hold our PWM values for later use
// if there's data available, read a packet
int packetSize = Udp.parsePacket(); // note that this includes the UDP header
if(packetSize)
{
packetSize = packetSize - 8; // subtract the 8 byte header
Serial.print("Packet size: ");
Serial.println(packetSize);
// read the packet into packetBuffer and get the senders IP addr and port number
Udp.read(packBuff,UDP_TX_PACKET_MAX_SIZE);
Serial.println("Message: ");
Serial.println(packBuff);
/* PWM - If we move a slider on Ardumote, it sends in a 3 digit value attached to the message of the slider.
For example, if your message is set to be "PWM" and your slider is halfway set (slider value is 127),
then your actual sent message will be received as "PWM127". Therefore, to set the Pin's PWM value, you simply
extract the last 3 digits of your message and use that as your PWM value (see below):
*/
// Assuming our packBuff's contents at index values 3-5 are our PWM values, you can convert them to an int using this:
pwmVal = (packBuff[3] - '0')*100 + (packBuff[4] - '0')*10 + (packBuff[5] - '0'); //Get PWMXXX message, and use XXX to set an int between 0 and 255.
//////////////////////// Pin 6 (LED_Pin) /////////////////////////////////////
if (packBuff[0] = 'P' && packBuff[1]=='W' && packBuff[2]=='M') // Wait for "PWMXXX" and use XXX as value for PWM
{
analogWrite(LED_Pin,pwmVal); //Set LED_Pin to PWM Value
Serial.println("PWM on Pin 6"); //Write notification
}
else if (packBuff[0] = 'P' && packBuff[1]=='6' && packBuff[2]=='H') // If we get the message "P6H", then set LED_Pin (6) HIGH
{
digitalWrite(LED_Pin,HIGH); //Turn on LED_Pin
Serial.println("LED ON"); //Write notification
Udp.beginPacket(iPhoneIP,iPhonePort);
Udp.write("LED 6 is ON"); // Send Message back to iPhone
Udp.endPacket();
}
else if (packBuff[0] = 'P' && packBuff[1]=='6' && packBuff[2]=='L') // If we get the message "P6L", then set LED_Pin (6) LOW
{
digitalWrite(LED_Pin,LOW); //Turn off LED_Pin
Serial.println("LED OFF"); //Write notification
Udp.beginPacket(iPhoneIP, iPhonePort);
Udp.write("LED 6 is OFF"); // Send Message back to iPhone
Udp.endPacket();
}
}
delay(20);
}