public static GetArduinoByName ( string name, int _serialSpeed ) : ArduinityCommunicator, | ||
name | string | |
_serialSpeed | int | |
return | ArduinityCommunicator, |
public static ArduinityCommunicator GetArduinoByName(string name, int _serialSpeed)
{
ArduinityCommunicator arduinoCommunicator = null;
// get a list of portnames
string[] theSerialPortNames = System.IO.Ports.SerialPort.GetPortNames();
// portName 'COM13' appears to not work for some reason....
// it's a bug in .Net, com ports over 10 do not work.
foreach (string portName in theSerialPortNames)
{
arduinoCommunicator = GetArduinoByPortname(portName, _serialSpeed);
//if ( TestForArduinityByPortName(portName, _serialSpeed) == name)
if (arduinoCommunicator != null
&& arduinoCommunicator.arduinoName == name)
{
return arduinoCommunicator;
// wait for serial to open back up
//System.Threading.Thread.Sleep(500);
//arduinoCommunicator = new ArduinityCommunicator(portName, _serialSpeed);
}
}
return arduinoCommunicator;
}
/* * 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); }