Hteo bih da zamolim nekog iskusnijeg za pomoc... Naime pravim sledece: imam 2 RF modula koja salju po 20 karaktera... sa PC su povezani preko serijskog porta... Moj zadatak je sledeci, da iscitam iz datoteke neke merene vrednosti, napravim pakete i da ih saljem sa jeden strane i primam sa druge... Ja sam u .NET 2.0 napravio mini hiper terminal, koristio sam klasu IO.Ports za komunikaciju i mini protokol... Kada kreiram pakete za otpremu dobijem nizove od po 20 karaktera... Kada pocnem da saljem saljem prvi string od nizova, a na prijemu vidim pomocu ceksume da li je to dobro ili ne, ako je dobro vrati se OK i nastavlja se dalje slanje, ako ne vrati se error i salje se isti paket... Implementacija u C# je sledeca: na kliku na dugme salji salje prvi paket a u dogadjaju za prijem podataka na com portu proverava sta je primljeno (ok ili error) i onda salje isti ponovo ili novi... To sam stavio u jednom if(primljeno == OK) salji nov else salji ponovo... ReceivedByteThreshold sam stavio na 20... 1. problem sa kojim sam se susreo je sta ako je poslao sa prijema OK ali je doslo do greske u prenosu, imam duplo isti paket... pa sam to resio na prijemu sto pamtim predhodni i proveravam da li je isti sa primljenim novim... 2. sta sam uocio je da nekada nacisto prestane sa komunikacijom i shvatio sam u cemu je problem, naime dogodi se sledece: posto je sve stavljeno u dogadjaju prijema podataka na com koji reaguje na 20 jer je ReceivedByteThreshold = 20, dodje do greske prilikom prenosa i ne prenese se svih 20 tako da komunikacija stane, nema retransmisije niti slanja novog jer nista nije primljeno... Probao sam da stavim ReceivedByteThreshold na 1 ali tada se dogadja da jako puno ima gresaka pri prenosu i da jedva nesto i prenese... Da li neko ima neku ideju kako da ovo resim, bio bih bas zahvalan.. Nije problem da komuniciramo mesingerom i da okacim taj deo koda...
Hvala unapred
Hvala unapred