예제 #1
0
        public void Send(byte channel, vp_type type, long data)
        {
            String hexdata = "";

            try {
                switch (type)
                {
                case vp_type.vp_byte:
                    hexdata = Convert.ToByte(data).ToString("X2"); break;

                case vp_type.vp_int:
                    hexdata = Convert.ToInt16(data).ToString("X4"); break;

                case vp_type.vp_uint:
                    hexdata = Convert.ToUInt16(data).ToString("X4"); break;

                case vp_type.vp_long:
                    hexdata = Convert.ToInt32(data).ToString("X8"); break;

                case vp_type.vp_ulong:
                    hexdata = Convert.ToUInt32(data).ToString("X8"); break;

                default:
                    throw new InvalidOperationException("Non numeric vp_type with numeric data.");
                }
            }
            catch (OverflowException oe)
            {
                throw new OverflowException("Numeric data not compatible with: " + type.ToString(), oe);
            }

            SendMessage(channel, type, hexdata);
        }
예제 #2
0
        // Wrapper for converted Send functions helps with even and prevents duplicate code.
        private void SendMessage(byte channel, vp_type type, string data)
        {
            String message = channel.ToString("X2") + ((byte)type).ToString("X1") + data;

            this.Write(message);
            MessageSent?.ThreadAwareRaise(this, new MessageEventArgs <object>(channel, type, data));
        }
예제 #3
0
        // Attached to port receive event (PORT thread)
        private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (!connected || !port.IsOpen)
            {
                return;
            }

            string temp = port.ReadExisting();

            read_buffer += temp;

            string[] chunks = read_buffer.Split(new string[] { port.NewLine }, StringSplitOptions.None);

            read_buffer = "";

            if (chunks.Last() != "")
            {
                read_buffer = chunks.Last();
                chunks[chunks.Length - 1] = "";
            }

            foreach (var data in chunks)
            {
                Debug.WriteLine(data);

                if (data.Length < 3)
                {
                    continue;
                }

                int channel;
                if (!int.TryParse(data.Substring(0, 2), NumberStyles.HexNumber, null, out channel))
                {
                    continue;
                }

                int type_temp;
                if (!int.TryParse(data.Substring(2, 1), NumberStyles.HexNumber, null, out type_temp))
                {
                    continue;
                }

                vp_type type = (vp_type)type_temp;

                string value_string = data.Substring(3, data.Length - 3);
                object messagedata  = null;

                try
                {
                    switch (type)
                    {
                    case vp_type.vp_void:
                        messagedata = "";
                        break;

                    case vp_type.vp_string:
                        messagedata = value_string;
                        break;

                    case vp_type.vp_boolean:
                        messagedata = Convert.ToBoolean(Convert.ToInt32(value_string, 16));
                        break;

                    case vp_type.vp_byte:
                        messagedata = Convert.ToInt32(Convert.ToByte(Convert.ToInt16(value_string, 16)));
                        break;

                    case vp_type.vp_int:
                        messagedata = Convert.ToInt32(Convert.ToInt16(value_string, 16));
                        break;

                    case vp_type.vp_uint:
                        messagedata = Convert.ToInt32(Convert.ToUInt16(value_string, 16));
                        break;

                    case vp_type.vp_long:
                        messagedata = Convert.ToInt64(Convert.ToInt32(value_string, 16));
                        break;

                    case vp_type.vp_ulong:
                        messagedata = Convert.ToInt64(Convert.ToUInt32(value_string, 16));
                        break;

                    case vp_type.vp_float:
                        messagedata = float.Parse(value_string, CultureInfo.InvariantCulture);
                        break;
                    }

                    MessageReceived?.ThreadAwareRaise(this, new MessageEventArgs <object>(channel, type, messagedata));
                }
                catch (FormatException fe)
                {
                    Debug.WriteLine(fe);
                    continue;
                }
                catch (ArgumentOutOfRangeException ae)
                {
                    Debug.WriteLine(ae);
                    continue;
                }
            }
        }
예제 #4
0
        private void Arduinoport_MessageReceived(object sender, MessageEventArgs <object> mse)
        {
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_1)
            {
                label1.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_2)
            {
                label2.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_3)
            {
                label3.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_4)
            {
                label4.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_5)
            {
                label5.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorField_6)
            {
                label6.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorLogPanel)
            {
                WriteMonitor(mse.Data.ToString());
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_1 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_1 = (bool)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_2 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_2 = (bool)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_3 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_3 = (bool)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_4 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_4 = (bool)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_5 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_5 = (bool)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_6 && mse.Type == vp_type.vp_boolean)
            {
                MonInput_6 = (bool)mse.Data;
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_1 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_1.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_2 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_2.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_3 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_3.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_4 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_4.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_5 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_5.Text = mse.Data.ToString();
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInputLabel_6 && mse.Type == vp_type.vp_string)
            {
                MonitorInputLabel_6.Text = mse.Data.ToString();
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_1 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_1 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_2 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_2 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_3 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_3 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_4 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_4 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_5 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_5 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_6 && mse.Type == vp_type.vp_int)
            {
                MinMonInput_6 = (int)mse.Data;
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_1 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_1 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_2 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_2 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_3 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_3 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_4 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_4 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_5 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_5 = (int)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_6 && mse.Type == vp_type.vp_int)
            {
                MaxMonInput_6 = (int)mse.Data;
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_1 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_1 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_2 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_2 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_3 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_3 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_4 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_4 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_5 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_5 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MinMonitorInput_6 && mse.Type == vp_type.vp_float)
            {
                MinMonInputF_6 = (float)mse.Data;
            }

            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_1 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_1 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_2 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_2 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_3 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_3 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_4 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_4 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_5 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_5 = (float)mse.Data;
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MaxMonitorInput_6 && mse.Type == vp_type.vp_float)
            {
                MaxMonInputF_6 = (float)mse.Data;
            }


            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_1)
            {
                MonitorInputType_1 = mse.Type;
                if (MonitorInputType_1 != vp_type.vp_void && MonitorInputType_1 != vp_type.vp_boolean)
                {
                    MonitorInputPanel_1.Visible = true;
                    MonitorInputTextBox_1.Text  = mse.Data.ToString();
                }
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_2)
            {
                MonitorInputType_2 = mse.Type;
                if (MonitorInputType_2 != vp_type.vp_void && MonitorInputType_2 != vp_type.vp_boolean)
                {
                    MonitorInputPanel_2.Visible = true;
                    MonitorInputTextBox_2.Text  = mse.Data.ToString();
                }
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_3)
            {
                MonitorInputType_3 = mse.Type;
                if (MonitorInputType_3 != vp_type.vp_void && MonitorInputType_3 != vp_type.vp_boolean)
                {
                    MonitorInputTextBox_3.Text  = mse.Data.ToString();
                    MonitorInputPanel_3.Visible = true;
                }
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_4)
            {
                MonitorInputType_4 = mse.Type;
                if (MonitorInputType_4 != vp_type.vp_void && MonitorInputType_4 != vp_type.vp_boolean)
                {
                    MonitorInputPanel_4.Visible = true;
                    MonitorInputTextBox_4.Text  = mse.Data.ToString();
                }
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_5)
            {
                MonitorInputType_5 = mse.Type;
                if (MonitorInputType_5 != vp_type.vp_void && MonitorInputType_5 != vp_type.vp_boolean)
                {
                    MonitorInputPanel_5.Visible = true;
                    MonitorInputTextBox_5.Text  = mse.Data.ToString();
                }
            }
            if ((ChannelId)mse.ChannelID == ChannelId.MonitorInput_6)
            {
                MonitorInputType_6 = mse.Type;
                if (MonitorInputType_6 != vp_type.vp_void && MonitorInputType_6 != vp_type.vp_boolean)
                {
                    MonitorInputPanel_6.Visible = true;
                    MonitorInputTextBox_6.Text  = mse.Data.ToString();
                }
            }
        }
예제 #5
0
        private void MonitorInputTextBox_TextChange(object sender, EventArgs e)
        {
            long  MinInput  = 0;
            long  MaxInput  = 0;
            float MinInputF = 0;
            float MaxInputF = 0;

            byte   InputValueByte   = 0;
            short  InputValueShort  = 0;
            ushort InputValueUShort = 0;
            int    InputValueLong   = 0;
            uint   InputValueULong  = 0;
            float  InputValueFloat  = 0;

            bool ValueValid = false;

            TextBox TextBox          = (TextBox)sender;
            vp_type MonitorInputType = vp_type.vp_int;

            if (sender == MonitorInputTextBox_1)
            {
                MonitorInputType = MonitorInputType_1; MinInput = MinMonInput_1; MaxInput = MaxMonInput_1; MinInputF = MinMonInputF_1; MaxInputF = MaxMonInputF_1;
            }
            if (sender == MonitorInputTextBox_2)
            {
                MonitorInputType = MonitorInputType_2; MinInput = MinMonInput_2; MaxInput = MaxMonInput_2; MinInputF = MinMonInputF_2; MaxInputF = MaxMonInputF_2;
            }
            if (sender == MonitorInputTextBox_3)
            {
                MonitorInputType = MonitorInputType_3; MinInput = MinMonInput_3; MaxInput = MaxMonInput_3; MinInputF = MinMonInputF_3; MaxInputF = MaxMonInputF_3;
            }
            if (sender == MonitorInputTextBox_4)
            {
                MonitorInputType = MonitorInputType_4; MinInput = MinMonInput_4; MaxInput = MaxMonInput_4; MinInputF = MinMonInputF_4; MaxInputF = MaxMonInputF_4;
            }
            if (sender == MonitorInputTextBox_5)
            {
                MonitorInputType = MonitorInputType_5; MinInput = MinMonInput_5; MaxInput = MaxMonInput_5; MinInputF = MinMonInputF_5; MaxInputF = MaxMonInputF_5;
            }
            if (sender == MonitorInputTextBox_6)
            {
                MonitorInputType = MonitorInputType_6; MinInput = MinMonInput_6; MaxInput = MaxMonInput_6; MinInputF = MinMonInputF_6; MaxInputF = MaxMonInputF_6;
            }


            TextBox.ForeColor = Color.Black;

            if (MonitorInputType == vp_type.vp_byte && byte.TryParse(TextBox.Text, out InputValueByte))
            {
                if (InputValueByte >= MinInput && InputValueByte <= MaxInput)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_int && Int16.TryParse(TextBox.Text, out InputValueShort))
            {
                if (InputValueShort >= MinInput && InputValueShort <= MaxInput)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_uint && UInt16.TryParse(TextBox.Text, out InputValueUShort))
            {
                if (InputValueUShort >= MinInput && InputValueUShort <= MaxInput)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_long && Int32.TryParse(TextBox.Text, out InputValueLong))
            {
                if (InputValueLong >= MinInput && InputValueLong <= MaxInput)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_ulong && UInt32.TryParse(TextBox.Text, out InputValueULong))
            {
                if (InputValueULong >= MinInput && InputValueULong <= MaxInput)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_float && float.TryParse(TextBox.Text, out InputValueFloat))
            {
                if (InputValueFloat >= MinInputF && InputValueFloat <= MaxInputF)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_string)
            {
                if (TextBox.Text.Length <= 35)
                {
                    TextBox.ForeColor = Color.Black;
                    ValueValid        = true;
                }
            }

            if (!ValueValid)
            {
                TextBox.ForeColor = Color.Red;
            }
        }
예제 #6
0
        private void MonitorSendInput_Click(object sender, EventArgs e)
        {
            long  MinInput  = 0;
            long  MaxInput  = 0;
            float MinInputF = 0;
            float MaxInputF = 0;

            byte      InputValueByte   = 0;
            short     InputValueShort  = 0;
            ushort    InputValueUShort = 0;
            int       InputValueLong   = 0;
            uint      InputValueULong  = 0;
            float     InputValueFloat  = 0;
            Panel     Panel            = new Panel();
            TextBox   TextBox          = new TextBox();
            ChannelId MonitorInput     = ChannelId.MonitorInput_1;
            vp_type   MonitorInputType = vp_type.vp_int;
            bool      MonInput         = false;

            if (sender == MonitorSendInput_1)
            {
                Panel            = MonitorInputPanel_1;
                TextBox          = MonitorInputTextBox_1;
                MonitorInput     = ChannelId.MonitorInput_1;
                MonitorInputType = MonitorInputType_1;
                MonInput         = MonInput_1;
                MinInput         = MinMonInput_1;
                MaxInput         = MaxMonInput_1;
                MinInputF        = MinMonInputF_1;
                MaxInputF        = MaxMonInputF_1;
            }
            if (sender == MonitorSendInput_2)
            {
                Panel            = MonitorInputPanel_2;
                TextBox          = MonitorInputTextBox_2;
                MonitorInput     = ChannelId.MonitorInput_2;
                MonitorInputType = MonitorInputType_2;
                MonInput         = MonInput_2;
                MinInput         = MinMonInput_2;
                MaxInput         = MaxMonInput_2;
                MinInputF        = MinMonInputF_2;
                MaxInputF        = MaxMonInputF_2;
            }
            if (sender == MonitorSendInput_3)
            {
                Panel            = MonitorInputPanel_3;
                TextBox          = MonitorInputTextBox_3;
                MonitorInput     = ChannelId.MonitorInput_3;
                MonitorInputType = MonitorInputType_3;
                MonInput         = MonInput_3;
                MinInput         = MinMonInput_3;
                MaxInput         = MaxMonInput_3;
                MinInputF        = MinMonInputF_3;
                MaxInputF        = MaxMonInputF_3;
            }
            if (sender == MonitorSendInput_4)
            {
                Panel            = MonitorInputPanel_4;
                TextBox          = MonitorInputTextBox_4;
                MonitorInput     = ChannelId.MonitorInput_4;
                MonitorInputType = MonitorInputType_4;
                MonInput         = MonInput_4;
                MinInput         = MinMonInput_4;
                MaxInput         = MaxMonInput_4;
                MinInputF        = MinMonInputF_4;
                MaxInputF        = MaxMonInputF_4;
            }
            if (sender == MonitorSendInput_5)
            {
                Panel            = MonitorInputPanel_5;
                TextBox          = MonitorInputTextBox_5;
                MonitorInput     = ChannelId.MonitorInput_5;
                MonitorInputType = MonitorInputType_5;
                MonInput         = MonInput_5;
                MinInput         = MinMonInput_5;
                MaxInput         = MaxMonInput_5;
                MinInputF        = MinMonInputF_5;
                MaxInputF        = MaxMonInputF_5;
            }
            if (sender == MonitorSendInput_6)
            {
                Panel            = MonitorInputPanel_6;
                TextBox          = MonitorInputTextBox_6;
                MonitorInput     = ChannelId.MonitorInput_6;
                MonitorInputType = MonitorInputType_6;
                MonInput         = MonInput_6;
                MinInput         = MinMonInput_6;
                MaxInput         = MaxMonInput_6;
                MinInputF        = MinMonInputF_6;
                MaxInputF        = MaxMonInputF_6;
            }

            if (!MonInput)
            {
                Panel.Visible = false;
            }

            if (MonitorInputType == vp_type.vp_byte && byte.TryParse(TextBox.Text, out InputValueByte) &&
                (InputValueByte >= MinInput && InputValueByte <= MaxInput))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, vp_type.vp_byte, InputValueByte);
                }
            }
            else if (MonitorInputType == vp_type.vp_int && Int16.TryParse(TextBox.Text, out InputValueShort) &&
                     (InputValueShort >= MinInput && InputValueShort <= MaxInput))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, vp_type.vp_int, InputValueShort);
                }
            }
            else if (MonitorInputType == vp_type.vp_uint && UInt16.TryParse(TextBox.Text, out InputValueUShort) &&
                     (InputValueUShort >= MinInput && InputValueUShort <= MaxInput))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, vp_type.vp_uint, InputValueUShort);
                }
            }
            else if (MonitorInputType == vp_type.vp_long && Int32.TryParse(TextBox.Text, out InputValueLong) &&
                     (InputValueLong >= MinInput && InputValueLong <= MaxInput))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, vp_type.vp_long, InputValueLong);
                }
            }
            else if (MonitorInputType == vp_type.vp_ulong && UInt32.TryParse(TextBox.Text, out InputValueULong) &&
                     (InputValueULong >= MinInput && InputValueULong <= MaxInput))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, vp_type.vp_ulong, InputValueULong);
                }
            }
            else if (MonitorInputType == vp_type.vp_float && float.TryParse(TextBox.Text, out InputValueFloat) &&
                     (InputValueFloat >= MinInputF && InputValueFloat <= MaxInputF))
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, InputValueFloat);
                }
            }
            else if (MonitorInputType == vp_type.vp_string && TextBox.Text.Length <= 35)
            {
                if (arduinoport.IsConnected)
                {
                    arduinoport.Send((byte)MonitorInput, TextBox.Text);
                }
            }
            else
            {
                TextBox.ForeColor = Color.Red;
                Panel.Visible     = true;
            }
        }
예제 #7
0
        private void MonitorInputTextBox_TextChange(object sender, EventArgs e)
        {

            long MinInput=0;
            long MaxInput=0;
            float MinInputF = 0;
            float MaxInputF = 0;

            byte InputValueByte = 0;
            short InputValueShort = 0;
            ushort InputValueUShort = 0;
            int InputValueLong = 0;
            uint InputValueULong = 0;
            float InputValueFloat = 0;

            bool ValueValid = false;

            TextBox TextBox = (TextBox)sender;
            vp_type MonitorInputType = vp_type.vp_int;

            Color EditColor = Color.Blue;

            if (sender == MonitorInputTextBox_1 && !MonInputEdit_1) { EditColor = Color.Black; MonInputEdit_1 = true; }
            if (sender == MonitorInputTextBox_2 && !MonInputEdit_2) { EditColor = Color.Black; MonInputEdit_2 = true; }
            if (sender == MonitorInputTextBox_3 && !MonInputEdit_3) { EditColor = Color.Black; MonInputEdit_3 = true; }
            if (sender == MonitorInputTextBox_4 && !MonInputEdit_4) { EditColor = Color.Black; MonInputEdit_4 = true; }
            if (sender == MonitorInputTextBox_5 && !MonInputEdit_5) { EditColor = Color.Black; MonInputEdit_5 = true; }
            if (sender == MonitorInputTextBox_6 && !MonInputEdit_6) { EditColor = Color.Black; MonInputEdit_6 = true; }

            if (sender == MonitorInputTextBox_1)
            { MonitorInputType = MonitorInputType_1; MinInput = MinMonInput_1; MaxInput = MaxMonInput_1; MinInputF = MinMonInputF_1; MaxInputF = MaxMonInputF_1;
                AcceptButton = MonitorSendInput_1; CancelButton = MonitorDiscardInput_1;
            }
            if (sender == MonitorInputTextBox_2)
            { MonitorInputType = MonitorInputType_2; MinInput = MinMonInput_2; MaxInput = MaxMonInput_2; MinInputF = MinMonInputF_2; MaxInputF = MaxMonInputF_2;
                AcceptButton = MonitorSendInput_2; CancelButton = MonitorDiscardInput_2;
            }
            if (sender == MonitorInputTextBox_3)
            { MonitorInputType = MonitorInputType_3; MinInput = MinMonInput_3; MaxInput = MaxMonInput_3; MinInputF = MinMonInputF_3; MaxInputF = MaxMonInputF_3;
                AcceptButton = MonitorSendInput_3; CancelButton = MonitorDiscardInput_3;
            }
            if (sender == MonitorInputTextBox_4)
            { MonitorInputType = MonitorInputType_4; MinInput = MinMonInput_4; MaxInput = MaxMonInput_4; MinInputF = MinMonInputF_4; MaxInputF = MaxMonInputF_4;
                AcceptButton = MonitorSendInput_4; CancelButton = MonitorDiscardInput_4;
            }
            if (sender == MonitorInputTextBox_5)
            { MonitorInputType = MonitorInputType_5; MinInput = MinMonInput_5; MaxInput = MaxMonInput_5; MinInputF = MinMonInputF_5; MaxInputF = MaxMonInputF_5;
                AcceptButton = MonitorSendInput_5; CancelButton = MonitorDiscardInput_5;
            }
            if (sender == MonitorInputTextBox_6)
            { MonitorInputType = MonitorInputType_6; MinInput = MinMonInput_6; MaxInput = MaxMonInput_6; MinInputF = MinMonInputF_6; MaxInputF = MaxMonInputF_6;
                AcceptButton = MonitorSendInput_6; CancelButton = MonitorDiscardInput_6;
            }


            TextBox.ForeColor = EditColor;

            if (MonitorInputType == vp_type.vp_byte && byte.TryParse(TextBox.Text, out InputValueByte))
            {
                if (InputValueByte >= MinInput && InputValueByte <= MaxInput)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_int && Int16.TryParse(TextBox.Text, out InputValueShort))
            {
                if (InputValueShort >= MinInput && InputValueShort <= MaxInput)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_uint && UInt16.TryParse(TextBox.Text, out InputValueUShort))
            {
                if (InputValueUShort >= MinInput && InputValueUShort <= MaxInput)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_long && Int32.TryParse(TextBox.Text, out InputValueLong))
            {
                if (InputValueLong >= MinInput && InputValueLong <= MaxInput)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_ulong && UInt32.TryParse(TextBox.Text, out InputValueULong))
            {
                if (InputValueULong >= MinInput && InputValueULong <= MaxInput)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_float && float.TryParse(TextBox.Text, out InputValueFloat))
            {
                if (InputValueFloat >= MinInputF && InputValueFloat <= MaxInputF)
                {
                    ValueValid = true;
                }
            }
            else if (MonitorInputType == vp_type.vp_string )
            {
              if (TextBox.Text.Length <= 35 && TextBox.Text.Length <= MaxInput && TextBox.Text.Length >= MinInput)
                {
                    ValueValid = true;
                }
            }

            if (!ValueValid) TextBox.ForeColor = Color.Red;
        }
예제 #8
0
 public MessageEventArgs(int channel, vp_type type, T data)
 {
     ChannelID = channel;
     Type      = type;
     Data      = data;
 }