Index: firmware/InterlockArduino/src/webserver/webserver.ino
===================================================================
--- firmware/InterlockArduino/src/webserver/webserver.ino	(revision 14249)
+++ firmware/InterlockArduino/src/webserver/webserver.ino	(revision 14252)
@@ -39,14 +39,25 @@
 #include <SPI.h>
 #include <Ethernet.h>
-#define BUF_LEN 256
 
 // inputs
-int IL_ON = 4;
-int FL_OK = 5;
-int FC_OK = 6;
-int FP_EN = 7;
+int FC_OK = 2;
+int BP_ON = 3;
+
+int IL_ON = 14;
+int FL_OK = 15;
+int FP_EN = 16;
+int X_ON = 17;
+int Y_ON = 18;
+int Z_OK = 19;
+
+int my_inputs[] = {FC_OK, BP_ON, IL_ON, FL_OK, FP_EN, X_ON, Y_ON, Z_OK};
+char * my_input_names[] = {"FC_OK", "BP_ON", "IL_ON", "FL_OK", "FP_EN", "X_ON", "Y_ON", "Z_OK"};
+
   // outputs
-int FC_ON = 2;
-int FC_OFF = 3;
+int FC_ON = 4;
+int FC_OFF = 5;
+int X = 6;
+int Y = 7;
+
 
 unsigned long last_time = millis();
@@ -55,6 +66,7 @@
 unsigned int fc_off_time = 0;// time in ms, for FC_OFF to be HIGH
 
-byte mac[] = { 0xFA, 0xC7, 0xFC, 0xB1, 0x00, 0x01 };
-IPAddress ip(129,217,160,65);
+//byte mac[] = { 0xFA, 0xC7, 0x0F, 0xAD, 0x22, 0x01 }; // ETHZ
+byte mac[] = { 0xFA, 0xC7, 0xFC, 0xB1, 0x00, 0x01 }; // TUDO
+
 
 // Initialize the Ethernet server library
@@ -63,11 +75,7 @@
 EthernetServer server(80);
 
-// ethernet receive buffer
-
-char eth_rx_buf[BUF_LEN];
-unsigned int eth_rd = 0;
-unsigned int eth_wr = 0;
-byte eth_buff_full = false;
-
+
+boolean x_signal = false;
+boolean y_signal = false;
 
 
@@ -82,16 +90,21 @@
 
   // start the Ethernet connection and the server:
-  Ethernet.begin(mac, ip);
+  Ethernet.begin(mac);
   server.begin();
   Serial.print("server is at ");
   Serial.println(Ethernet.localIP());
   
-  pinMode( IL_ON, INPUT );
-  pinMode( FL_OK, INPUT );
-  pinMode( FC_OK, INPUT );
-  pinMode( FP_EN, INPUT );
+ // Enable ATmega Pullups
+ for (int i = 0 ; i<8; i++)
+ {
+  digitalWrite(my_inputs[i], HIGH);
+ }
+
+
 
   pinMode( FC_ON, OUTPUT );
   pinMode( FC_OFF,OUTPUT );
+  pinMode( X, OUTPUT );
+  pinMode( Y,OUTPUT );
 
 }
@@ -139,17 +152,32 @@
              get_http_found = true;
              if (eth.indexOf(String("D2on=")) !=-1){
-               Serial.println("found D2on");
-               digitalWrite( 2, HIGH);
+               Serial.println("User request: Enable Pump");
+               digitalWrite( FC_ON, HIGH);
                fc_on_time = 3000;
              }
-             
-             if (eth.indexOf(String("D2off=")) !=-1)
+             else if (eth.indexOf(String("D2off=")) !=-1)
              {
-               Serial.println("found D2off");
-               digitalWrite( 3, HIGH);
+               Serial.println("User request: Disable Pump");
+               digitalWrite( FC_OFF, HIGH);
                fc_off_time = 500;
              }
+             else if (eth.indexOf(String("toggle_x=")) !=-1)
+             {
+               Serial.println("User request: Toggle X");
+               x_signal = !x_signal;
+               digitalWrite( X, x_signal );
+             }
+             else if (eth.indexOf(String("toggle_y=")) !=-1)
+             {
+               Serial.println("User request: Toggle Y");
+               y_signal = !y_signal;
+               digitalWrite( Y, y_signal );
+             }
+              else
+              {
+              Serial.println("No User request - just sending webpage");
+              }
              
-             Serial.println("found it");
+             //Serial.println("found it");
            }
          }
@@ -198,5 +226,5 @@
   
   // add a meta refresh tag, so the browser pulls again every 5 seconds:
-  client->print("<meta http-equiv=\"refresh\" content=\"5\">");  
+  client->print("<meta http-equiv=\"refresh\" content=\"1 URL=index.html\">");  
   
   client->println("<title>FACT camera power interlock control</title></head><body>");
@@ -239,10 +267,37 @@
 }
 
+
+
+void send_my_inputs( EthernetClient *client) 
+{
+  for (int ch = 0; ch < 8; ch++) 
+  {
+    client->print(my_input_names[ch]);
+    client->print(" :");
+    client->print(my_inputs[ch]);
+    client->print(" is ");
+    if ( digitalRead(my_inputs[ch]) )
+    {
+      client->print("<font color=\"green\" size=20>HIGH</font>"); 
+    }
+    else
+    {
+      client->print("<font color=\"red\" size=20>LOW</font>"); 
+    }
+    client->println("<br />");
+  }
+}
+
+
+
 void html_page( EthernetClient *client)
 {
-  client->println("<P><INPUT TYPE=SUBMIT NAME=\"D2on\" VALUE=\"Enable Pump\"></P> Switches D2 HIGH for 3 seconds <br />");
-  client->println("<P><INPUT TYPE=SUBMIT NAME=\"D2off\" VALUE=\"Disable Pump\"></P> Switches D3 HIGH for 0.5 seconds <br />");
-  
-  send_dig_ins( client );
+  client->println("<P><INPUT TYPE=SUBMIT NAME=\"D2on\" VALUE=\"Enable Pump\"> --> FC_ON HIGH for 3 seconds <br />");
+  client->println("<P><INPUT TYPE=SUBMIT NAME=\"D2off\" VALUE=\"Disable Pump\">--> FC_OFF HIGH for 0.5 seconds <br />");
+  client->println("<P><INPUT TYPE=SUBMIT NAME=\"toggle_x\" VALUE=\"Toggle X\">--> ... well it toggles X <br />");
+  client->println("<P><INPUT TYPE=SUBMIT NAME=\"toggle_y\" VALUE=\"Toggle Y\">--> ... well it toggles Y <br />");
+  
+//  send_dig_ins( client );
+  send_my_inputs( client );
   
   //send_ana_outs_example( client );
@@ -260,8 +315,8 @@
 Check_n_Set_FC_ON_OFF()
 {
-  Serial.print("FC ON TIME");
-  Serial.println(fc_on_time);
-  Serial.print("FC OFF TIME");
-  Serial.println(fc_off_time);
+//  Serial.print("FC ON TIME");
+//  Serial.println(fc_on_time);
+//  Serial.print("FC OFF TIME");
+//  Serial.println(fc_off_time);
   
   unsigned long since_last = millis() - last_time;
@@ -321,35 +376,2 @@
 /////////////////////////////////////////////////////////////////////////////////////////////
 
-
-///////////////Ethernet input buffer////////////////////////////////////////////////////////
-int eth_buf_add(char c)
-{
- if (!eth_buff_full)
- {
-  eth_rx_buf[eth_wr] = c;
-  eth_wr = (eth_wr+1)%BUF_LEN;
-  if (eth_wr == eth_rd) // buffer full
-  {
-   eth_buff_full = true;
-  }
-  return true;
- }
- else
- {
-  return false;
- }
-}
-
-inline int eth_len()
-{
- return (eth_wr-eth_rd) % BUF_LEN;
-}
-
-char * buf[16];
-
-
-
-
-
-/////////////////////////////////////////////////////////////////////////////////////////////
-
