Esempio n. 1
0
        private void UpdateSensorDisplay(Sensors s)
        {
            SensorPacketGroup spg = (SensorPacketGroup)sensorGroupList.SelectedItem;

            sensorTextBox.Clear();
            for (int i = 0; i < spg.numItems; i++)
            {
                sensorTextBox.AppendText(Sensors.sd[spg.offsetInSensorDesc + i].name + ": " + s.GetValue((Sensors.SensorID)(spg.offsetInSensorDesc + i)) + Environment.NewLine);
            }

            // drawing update
            canvas1.rotateRoomba(s.GetValue(Sensors.SensorID.Angle));
            canvas1.moveRoomba(s.GetValue(Sensors.SensorID.Distance));
        }
Esempio n. 2
0
        private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            //textExpected = true;
            if (textExpected)
            {
                //read data waiting in the buffer
                string msg = serialPort.ReadExisting();
                Log(msg, Color.DarkBlue);
                //textExpected = false;
            }
            else  // read binary data
            {
                //Thread.Sleep(10); // wait for complete packet
                WaitForCompletePacket((currentSpg == null) ? 0 : currentSpg.numBytes);

                Log("Reading " + serialPort.BytesToRead + " bytes" + Environment.NewLine);
                byte[] buf = new byte[serialPort.BytesToRead];
                serialPort.Read(buf, 0, buf.Length);
                //Log(buf, Color.Chocolate);
                Sensors s = new Sensors(buf, roomba.lastPacketRequested());
                if (s.IsValid())
                {
                    Object[] args = new Object[] { s };
                    try
                    {
                        this.Invoke(UpdateSensorsDelegate, args);
                    }
                    catch (Exception)
                    {
                        //Log("\nException in delegete call\n", Color.Red);
                    }
                    //Log(".");
                    //Log(s.ToString(), Color.Chocolate);
                }
            }
        }