private void serialP_zpracovat(byte data) { if (InvokeRequired) { Invoke(new Action <byte>(serialP_zpracovat), data); } else { if (data == 13) { int vstup = Convert.ToInt32(strPort[1]) - 48; // převede ze znaku na ASCII kod, kde '0' je 48 if (strPort[0] == '0' && strPort[2] == 'A') { if (textBox2.Text == "") { textBox2.Text = "."; } int plen = strPortPoc - 3 + textBox2.TextLength - 1; Char[] p1 = new Char[plen]; int i = 0; while (strPort[i + 3] != '.') { p1[i] = strPort[i + 3]; i++; } int j; for (j = 0; j < textBox2.TextLength; j++) { p1[i + j] = textBox2.Text[j]; } i += j; while (i < plen) { p1[i] = strPort[i + 3 - textBox2.TextLength + 1]; i++; } Double hodn = Convert.ToDouble(new String(p1)); int cil = kamPoslatHodnotu(vstup); // odešle změřenou hodnotu usercontrol[vstup - 1].odeslanoHodnot++; odesilac.inBufferKlav(hodn.ToString() + textBox3.Text); for (i = 0; i < poKazdeHodn.getpoc(); i++) { //poKazdeHodn //if((int)poKazdeHodn.getzprava(i).Msg==(int)Tkomun.WMessages.WM_KEYDOWN) odesilac.inBufferZprava(poKazdeHodn.getzprava(i)); } for (j = 0; j < usercontrol2max; j++) { if (poNHodn[j].numericUpDown1.Value != 0 && usercontrol[vstup - 1].odeslanoHodnot % poNHodn[j].numericUpDown1.Value == 0) { odesilac.inBufferKlav(poNHodn[j].textBox1.Text); for (i = 0; i < poNHodn[j].getPocZprav(); i++) { //poNHodn odesilac.inBufferZprava(poNHodn[j].getZprava(i)); } } } odesilac.odeslat(cil); listBox1.Items.Add(hodn.ToString() + " ze vstupu " + vstup.ToString()); } if (strPort[0] == '9') // nějaká chyba { if (strPort[2] == '1') { labelChyba.Text = "nepřipojené nebo vypnuté měřidlo na vstupu: " + vstup.ToString(); } if (strPort[2] == '2') { labelChyba.Text = "chyba formátu dat došlých z měřidla na vstupu: " + vstup.ToString(); } if (checkBoxChyboveHlaseni.Checked) { int cil = kamPoslatHodnotu(vstup); odesilac.inBufferKlav("chyba"); odesilac.odeslat(cil); } } //listBox1.Items.Add(new String(strPort)); strPortPoc = 0; } else { strPort[strPortPoc] = (char)data; strPortPoc++; } } }
public int getPocZprav() { return(poNHodn.getpoc()); }