Shadowed, permalink
Ot blin, ne ten parašiau :D Norėjau į o.software, ten Jamieson L kažkaip
gerai ant kelio praeitą kartą užvedė. Kraustomės į ten su viskuo kas čia
parašyta plius papildyta.
Taigis, Dėl Gržžžššš... Pšššš... Maul Halten :D (tas serialas tikrai geras
:D ) - Pamiegu, nes RS232 ant 9600 bodų yra lėtas, ypač jei daugiau duomenų
tai nespėja suvaikščiot. RS232 be papildomų fyčiurų, tik TX, RX. Toliau
pasakoju iš naujo, po Grzegorz'o atsakymu.
"Grzegorz Brzęczyszczykiewicz" parašė naujienų
news:rqljop$lo4$1@news.omnitel.net...
2020-12-07 17:29, Shadowed rašė:
serialPort1.Write(new byte[] { 0x50, 0x00, 0xEF, 0x00}, 0, 4);
// Rašomi duomenysThread.Sleep(250); // Palaukiu, kad spėtų suvaikščiot
O nereikia paragint kad iškakotų į serial'ą?
.flush ar panašiai?
Ir nemiegok - blogo tono požymis miegoti darbe
if (serialPort1.BytesToRead) {...}
ar panašiai.
Ir jeigu tai paleisi atskiru thread'u - mažiau skaudės galvą.
int Bytes_To_Read =
serialPort1.BytesToRead; // Suskaičiuoja kiek baitų
gauta teisingai, parodo 4// ---- O va čia turėtų būti kažkas, kas tuos gautus duomenis parašytų į
textbox'ą. Nu blemba, kiek variantų išbandžiau - nesigauna. Iš įdomesnių
- parašo tik duomenų kiekį (4) arba kažkodėl parašo raidė P.
parodyk nuaskaitymą.
--
Grzegorz
Chrząszczyrzewoszyce, powiat Łękołody
// ------------------------------------------------------------------------------
Nuo čia :)
Nemažai pasistūmiau su savo programikės rašymu, bet užstrigau ties tokia
kvaila vieta, kur atrodo ir pavyzdukų daug yra, bet vis tiek veikia ne taip,
kaip noriu. Papasakokit dar truputį apie teisingą duomenų gavimą iš RS232...
Tikslas - rašau į serialPort1, po to tą patį noriu nuskaityti. RX su TX
fižiškai užtrumpintas.
Čia daug maž visa rašanti ir skaitanti programėlė
public void Write_Read_Test()
{
serialPort1.Write(new byte[] { 0x50, 0x00, 0xEF, 0x00, 0x03, 0x00, 0x00,
0x0B }, 0, 8);
Thread.Sleep(250);
int Bytes_To_Read = serialPort1.BytesToRead;
tBox_Raw_Data.Text += "Bytes to read: " + Bytes_To_Read +
Environment.NewLine;
tBox_Raw_Data.Text += serialPort1.ReadExisting() + Environment.NewLine;
// -- Nei šitas, nei ReadLine nesuveikia. Bet kodėl neveikia lyg ir
suprantu. O va teisingą gavimą dar noriu pasiaiškinti :). Bandžiau dar
keletą būdų, bet ten buvo savo kūrybos (berods tas kur P rašė), tai jau
nebeatgaminsiu jaučiu tiksliai kaip ten buvo.
serialPort1.DiscardInBuffer(); // Išsivalom
buferius
serialPort1.DiscardOutBuffer(); // Išsivalom
buferius
}