Первая программа на С# не получается сделать опрос входов с портом прокатила, а с опросом входов не прокатило помогите решить проблему.
Код:
//открытие ком порта
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;
}