private void initializeComponents() { string[] ports = SerialPort.GetPortNames(); _comPortSelection.Items.AddRange(ports); _arduinoPort = new SerialPort(); _currentState = new ArduinoTest(); _mTimer.Elapsed +=new System.Timers.ElapsedEventHandler( timer_elapsed ); _mTimer.Interval = ARDUINO_WAIT_TIME*2; //open_config_file(); string path = System.Environment.GetEnvironmentVariable("XPlanePlugin"); //Check that path exists if (path == null) { folderBrowserDialog1.ShowDialog(); path = folderBrowserDialog1.SelectedPath; if (path == null) { return; } System.Environment.SetEnvironmentVariable("XPlanePlugin", path, EnvironmentVariableTarget.User); } else { string filename = path + "\\ArduinoConfig.xml"; open_config(filename); } find_arduino(); }
// Use this for initialization void Start() { arduino = new SerialPort("/dev/tty.usbmodem1411", 9600); arduino.Open(); cube1 = GameObject.Find("Cube").GetComponent <ArduinoTest>(); cube2 = GameObject.Find("Cube (1)").GetComponent <ArduinoTest2>(); }
public void OnMessageReceived(object o, string msg) { ArduinoTest arduino = o as ArduinoTest; var otherArduino = GetOtherArduino(arduino); if (arduino.isArduinoA) { print("A " + msg); } else { print("B " + msg); } var index = Convert.ToInt32(msg); if (arduino.isCityNotDead(index)) { if (arduino.isCityPlugged(index)) { //TODO: see if the city really available arduino.SetCityState(index, ECityState.Available); arduino.OnWireDisconnected?.Invoke(this, index); } else if (arduino.isCityAvailable(index)) { //connected city if (otherArduino.cables.Count > 0 && otherArduino.cables[otherArduino.cables.Count - 1].Item2 == index) { //TODO: positive feedback sound arduino.OnWireFriendlyPlugged?.Invoke(this, index); arduino._cityStates[index] = ECityState.Plugged; arduino.cableInPlugs = new Tuple <int, int>(index, -1); } else { //disconnect previously on leds foreach (int i in allCities[index].cities) { if (allCities[i].state != ECityState.Available) { arduino.serial.SendSerialMessage("D" + i); } } arduino.SetCityState(index, ECityState.Plugged); var city = allCities[index]; city.state = ECityState.Available;// for the other player allCities[index] = city; } } else if (arduino.isCityConnected(index)) { arduino.SetCityState(index, ECityState.Available); arduino.OnWireDisconnected?.Invoke(this, index); Tuple <int, int> c = null; foreach (Tuple <int, int> cable in arduino.cables) { if (cable.Item1 == index) { //chiant c = cable; arduino.serial.SendSerialMessage("D" + cable.Item2); } else if (cable.Item2 == index) { foreach (var city in allCities[index].cities) { arduino.serial.SendSerialMessage("A" + city); } } } arduino.cables.Remove(c); //available for this city and plugged for the other not connected } } else { //BEEP ! print("bad feedback"); } }
public ArduinoTest GetOtherArduino(ArduinoTest a) { return(a == arduinoA ? arduinoB : arduinoA); }