SendMessage() public method

public SendMessage ( string messageToArduino ) : bool
messageToArduino string
return bool
示例#1
0
    /*
     *  Handles connecting to a named Arduino and setting pin modes.
     */
    public bool ConnectToArduino(string name, int _serialSpeed)
    {
        arduinoCommunicator = ArduinityCommunicator.GetArduinoByName(arduinoName, _serialSpeed);
        if (arduinoCommunicator == null)
        {
            return(false);
        }
        // now set the pinmodes
        for (int i = 0; i < digitalPinModes.Length; i++)
        {
            if (digitalPinModes[i] != ArduinoDigitalPinMode.IGNORE)
            {
                string pinModeString = "";
                switch (digitalPinModes[i])
                {
                case ArduinoDigitalPinMode.INPUT:
                    pinModeString = "INPUT";
                    break;

                case ArduinoDigitalPinMode.OUTPUT:
                    pinModeString = "OUTPUT";
                    break;

                case ArduinoDigitalPinMode.INPUT_PULLUP:
                    pinModeString = "INPUT_PULLUP";
                    break;

                default:     // shouldn't get here, very bad....
                    pinModeString = "INPUT";
                    break;
                }

                string message = "arduinity_dpinmode " + i + " " + pinModeString;

                arduinoCommunicator.SendMessage(message);
            }
        }
        return(true);
    }
示例#2
0
    /*
     *  Handles connecting to a named Arduino and setting pin modes.
     */
    public bool ConnectToArduino(string name, int _serialSpeed)
    {
        arduinoCommunicator = ArduinityCommunicator.GetArduinoByName(arduinoName, _serialSpeed);
        if (arduinoCommunicator == null) return false;
        // now set the pinmodes
        for (int i = 0; i < digitalPinModes.Length; i++)
        {
            if (digitalPinModes[i] != ArduinoDigitalPinMode.IGNORE)
            {
                string pinModeString = "";
                switch(digitalPinModes[i])
                {
                    case ArduinoDigitalPinMode.INPUT:
                        pinModeString = "INPUT";
                        break;
                    case ArduinoDigitalPinMode.OUTPUT:
                        pinModeString = "OUTPUT";
                        break;
                    case ArduinoDigitalPinMode.INPUT_PULLUP:
                        pinModeString = "INPUT_PULLUP";
                        break;
                    default: // shouldn't get here, very bad....
                        pinModeString = "INPUT";
                        break;
                }

                string message = "arduinity_dpinmode " + i + " " + pinModeString;

                arduinoCommunicator.SendMessage(message);
            }
        }
        return true;
    }
示例#3
0
    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
        }
    }