Первая программа на С# не получается сделать опрос входов с портом прокатила, а с опросом входов не прокатило помогите решить проблему.
Код://открытие ком порта if (start) { //закрытие ком порта NativeMethods.ClosePort(); //установить цвет кнопки button1.BackColor = System.Drawing.Color.Lime; } else { ConnectionError res = (ConnectionError)NativeMethods.OpenPort( mdvv_com_port_num, mdvv_speed, mdvv_parity, mdvv_bits, mdvv_stop_bits, (int)ConverterType.Auto); if (res != ConnectionError.Ok) { MessageBox.Show("Ошибка открытия порта: " + res.ToString()); } //установить цвет кнопки button1.BackColor = System.Drawing.Color.Crimson; } start = !start; } не работает так как хочется private void buttonReadRCN_Click(object sender, EventArgs e) { if (OprosCn) { textBoxMemo.Text = ""; //установить цвет кнопки buttonReadRCN.BackColor = System.Drawing.Color.Lime; } else { IntPtr name = Marshal.StringToCoTaskMemAnsi("r.Cn"); int bitMask = 0; ConnectionError res = (ConnectionError)NativeMethods.ReadUInt( deviceAddress, 0, name, ref bitMask, -1); if (res == ConnectionError.Ok) { string inputs = string.Empty; for (int i = 12; --i >= 0; ) { if (((1 << i) & bitMask) != 0) inputs += '1'; else inputs += '0'; } textBoxMemo.Text = inputs; } else MessageBox.Show("Ошибка чтения r.Cn: " + res.ToString()); Marshal.FreeCoTaskMem(name); //установить цвет кнопки рабочий buttonReadRCN.BackColor = System.Drawing.Color.Crimson; } OprosCn = !OprosCn; }




Ответить с цитированием