byte gSeq = 0;
-String gInputString = "";
+String gInputString = "";
String gOutputString = "";
String gInputBuffer = "";
-
-boolean stringComplete = false;
+boolean gIsInputSuccess = true;
void setup(){
Serial.begin(9600);
}
+
void loop(){
-
- int val=analogRead(0);
- String m = "analog input:";
- m += val;
- analogWrite(3,val/4);
- sendMessage(m);
- delay(50);
+ sendMessage("loop:" + String(millis()));
+ int a1=analogRead(0);
+ setData("/cells.xhtml#fromArduino1", a1);
+ int p = getData("/cells.xhtml#toArduino1");
+ if (gIsInputSuccess)
+ analogWrite(3,p);
+ delay(10);
}
void sendMessage(String message)
serialSend();
}
-void setData()
+void setData(String path, int value)
{
- serialSendAndLoad();
+ gOutputString = "S" + path + "," + String(value);
+ serialSend();
}
-void getData()
+int getData(String path)
{
- serialSendAndLoad();
+ gOutputString = "G" + path;
+ serialSendAndLoad();
+ if (gIsInputSuccess)
+ return int(gInputString.toInt());
+ else
+ return 0;
+}
+
+void serialSend()
+{
+ gSeq ++;
+ if (gSeq > 99)
+ {
+ gSeq = 1;
+ }
+ if (gSeq < 10)
+ {
+ Serial.print("0");
+ }
+ Serial.print(gSeq, DEC);
+ Serial.println(gOutputString);
}
void serialSendAndLoad()
{
serialSend();
-
+ gIsInputSuccess = false;
unsigned long timeout = millis() + 1000;
gInputString = "";
int isDataRecieved = false;
//check input data
if (gInputBuffer.length() >= 2)
{
- char rsecChars[3];
- gInputBuffer.toCharArray(rsecChars,2);
- rsecChars[2] = 0;
- if (int(rsecChars) == gSeq)
- {
- gInputString = gInputBuffer;
+ String s = gInputBuffer.substring(0,2);
+ if (s.toInt() == gSeq)
+ {
+ gInputString = gInputBuffer.substring(2);
isDataRecieved = true;
+ gIsInputSuccess = true;
+ }
+ else
+ {
+ gIsInputSuccess = false;
}
}
gInputBuffer = "";
}
}
-void serialSend()
-{
- gSeq ++;
- if (gSeq > 99)
- {
- gSeq = 1;
- }
- if (gSeq < 10)
- {
- Serial.print("0");
- }
- Serial.print(gSeq, DEC);
- Serial.println(gOutputString);
-}