void LateUpdate() { if (continuousUpdate && IsSetup()) { // TODO: wrap this all in an updatepins function string message; // TODO: switch this to batch mode for (int i = 0; i < digitalPins.Length; i++) { if (digitalPinModes[i] == ArduinoDigitalPinMode.INPUT || digitalPinModes[i] == ArduinoDigitalPinMode.INPUT_PULLUP) { // response should be something like 'arduinity_dvalue 6 1' // which is pin six value high string response = arduinoCommunicator.SendReceiveMessage("arduinity_dread " + i); // read the last number in the response string /*int receivedPin = int.Parse(response.Substring(response.IndexOf(' ')+1,response.LastIndexOf(' '))); * if(receivedPin != i) Debug.Log("Arduinity::LateUpdate(): recieved late message (" + response + ")"); * digitalPins[receivedPin] = int.Parse(response.Substring(response.LastIndexOf(' ') + 1));*/ digitalPins[i] = int.Parse(response.Substring(response.LastIndexOf(' ') + 1)); } else if (digitalPinModes[i] == ArduinoDigitalPinMode.OUTPUT) { message = "arduinity_dwrite " + i + " " + digitalPins[i]; arduinoCommunicator.SendMessage(message); #if debugSerialMessage Debug.Log("ArduinitySerialInterface::LateUpdate(): sent message: " + message); #endif } else if (digitalPinModes[i] == ArduinoDigitalPinMode.OUTPUT_PWM) { message = "arduinity_pwrite " + i + " " + digitalPins[i]; arduinoCommunicator.SendMessage(message); #if debugSerialMessage Debug.Log("ArduinitySerialInterface::LateUpdate(): sent message: " + message); #endif } } for (int i = 0; i < analogPins.Length; i++) { if (analogPinModes[i] == ArduinoAnalogPinMode.INPUT) { string response = arduinoCommunicator.SendReceiveMessage("arduinity_aread " + i); // this will protect from trying to parse empty strings if (response == "" || response == null) { continue; } analogPins[i] = int.Parse(response.Substring(response.LastIndexOf(' ') + 1)); } /*else if (analogPinModes[i] == ArduinoAnalogPinMode.OUTPUT_DIGITAL) * { * message = "arduinity_dwrite A" + i + analogPins[i]; * arduinoCommunicator.SendMessage(message); * }*/ } #if debugSerial Debug.Log(arduinoCommunicator.ReceiveMessage()); #endif } }