 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.58 Kraj: Trzic
|
Objavljeno: Sre Nov 05, 2008 7:32 pm Naslov sporočila: |
|
|
jjakob je napisal/a: |
S56RGA je napisal/a: |
VB6 in net2003,5,8 se zelo razlikujejo.
|
OT vprašanje: Katero verzijo bi priporočali za začetniško programiranje? Katera ima več materiala na internetu (primerov)? |
VB6 je zelo enostaven za začetnika, saj še ni toliko objektno orientiran kot nasledniki. Dokumentacije je tudi veliko.
Vendar pa je po mojem vredno vložiti malo več časa in se posvetiti novejši verziji (.NET 2003/5/8 se ne razlikujejo zelo). Dokumentacije je vedno več, vedno več ljudi govori o tem po forumih in stvar je aktualna (izgled, podpora...). _________________ Lp,
Matevž |
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Sre Nov 05, 2008 8:01 pm Naslov sporočila: |
|
|
Ko sem prešaltal že lep čas nazaj iz VB6 na .net sem obdržal staro MScomm kontrolo za serijski port še kar dolgo časa. Težava je bila v tem, da projekt ni bil enostavno prenosljiv na drugi računalnik. In sem si vzel 2 dni časa, da sem naštudiral novo kontrolo SerialPort. Moram povdarit, da je preskok iz VB6 na .net prinesel kar velike spremembe. Na primer stara verzija šteje od 1 do x medtem ko nova pa od 0 do x zaradi kompatibilnosti z C skupino jezikov. Tako če definiraš array "Dim Bla(10) As Byte" je dejansko rezerviranega 11 bytov spomina, saj gre indeks od 0 do vključno 10!!!
Pa še par takih cvetk je noter, da ima programer kaj delat...
Pa še to:
Če se le da ne sprejemaj znakov iz serial porta kot string ali array od char. Tam so same težave. Poskusi poslat vrednost 0 ali 26 ali ... pa bo jasno. _________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
Krampus Član



Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1853 Aktiv.: 9.05
|
Objavljeno: Sre Nov 05, 2008 11:25 pm Naslov sporočila: |
|
|
Tonci
Ali veš točno, kaj ti pošilja mikro?
Ali veš točno, kakšna je oblika(dolžina), ki ti jo pošilja mikro?
Ali ti mikro pošilja vedno enako dolžino podatka?
Ali so na začetku in/ali na koncu podatkov kakšni kontrolni znaki?
Jaz sem v času VB3 dobil nalogo brati tehtnico, ki je pošiljala 12 znakov solate, iz tega prebrati vrednost in cel kup statusov, s tem da nisem vedel ne dolžine, ne oblike, ne kontrolnih znakov, vedel sem samo da nekaj pošilja. Je pa bila dolžina vedno enaka, tako da sem začel tam in najprej nastavil dolžino bufferja in treshold. Zadeva je napredovala do VB6, nato pa v čisto drugo programsko okolje(Progress).
Če ti pošilja spremenljivo dolžino moraš brati vsak bajt posebej in narediti neki triger pri pri kontrolnem znaku (LF ali CR) ter potem pretvarjati ali prikazovati.
Za bolj konkretno pa bi moral pogledati svoje programe _________________ Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo. |
|
Nazaj na vrh |
|
 |
toncibalonci Član

Pridružen-a: Pet 03 Avg 2007 21:12 Prispevkov: 331 Aktiv.: 1.52 Kraj: Dravograd
|
Objavljeno: Sre Nov 05, 2008 11:45 pm Naslov sporočila: |
|
|
Tudi o tem sem že razmišljal. V Bascomu imam program za števec ki z vsakim pritiskom povečuje stanje za ena to pa potem z ukazom "Print" pošiljam ven. Program v Bascomu za pošiljanje na COM je enostaven , v VB pa vidim da se malo zaplete, pa VB ne poznam še tako dobro. Kaj mi je storiti??  |
|
Nazaj na vrh |
|
 |
Krampus Član



Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1853 Aktiv.: 9.05
|
Objavljeno: Čet Nov 06, 2008 8:16 am Naslov sporočila: |
|
|
Najprej poskrbi, da ti bo mikro počiljal vedno enako dolžino podatka, najboljše še z oznako za začetek in konec podatka. Na primer 1 = X001Y, 15 = X015Y ....
Potem tega ni problem zajemati z nastavitvami
RThreshold = 5
InputLen = 5
Toliko zaenkrat _________________ Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo. |
|
Nazaj na vrh |
|
 |
bolha95 Član


Pridružen-a: Pet 14 Dec 2007 21:33 Prispevkov: 296 Aktiv.: 1.38 Kraj: Križe / Tržič
|
Objavljeno: Čet Nov 06, 2008 10:24 am Naslov sporočila: |
|
|
toncibalonci je napisal/a: |
Tudi o tem sem že razmišljal. V Bascomu imam program za števec ki z vsakim pritiskom povečuje stanje za ena to pa potem z ukazom "Print" pošiljam ven. Program v Bascomu za pošiljanje na COM je enostaven , v VB pa vidim da se malo zaplete, pa VB ne poznam še tako dobro. Kaj mi je storiti??  |
Poglej s kakšnim terminalom, kaj sploh dobiš na serijski port. Predlagam ti že instaliran windowsov Hyperterm (do XP še obstaja, v Visti ga ni več). Če pa sprejemaš še kakšne druge znake kot ASCII, si dol potegni program Realterm , ki ti prikazuje veliko več. Ko boš to imel, se lahko lotiš programiranja za PC. _________________ LP,
Robi
Kjer se znanje konča, se domišljija začne |
|
Nazaj na vrh |
|
 |
toncibalonci Član

Pridružen-a: Pet 03 Avg 2007 21:12 Prispevkov: 331 Aktiv.: 1.52 Kraj: Dravograd
|
Objavljeno: Čet Nov 06, 2008 12:50 pm Naslov sporočila: |
|
|
Izpiše mi stanje števca in "CRLF" torej npr. 1CRLF. Pri enicah imam 3byte,pri deseticah 4 bayte,pri stoticah pa 5 baytov,torej je problem v tem. Zdaj moram še ugotoviti kako v Bascomu dosežem da mi pošlje vedno enako dolg podatek?? |
|
Nazaj na vrh |
|
 |
bolha95 Član


Pridružen-a: Pet 14 Dec 2007 21:33 Prispevkov: 296 Aktiv.: 1.38 Kraj: Križe / Tržič
|
Objavljeno: Čet Nov 06, 2008 1:03 pm Naslov sporočila: |
|
|
toncibalonci je napisal/a: |
Izpiše mi stanje števca in "CRLF" torej npr. 1CRLF. Pri enicah imam 3byte,pri deseticah 4 bayte,pri stoticah pa 5 baytov,torej je problem v tem. Zdaj moram še ugotoviti kako v Bascomu dosežem da mi pošlje vedno enako dolg podatek?? |
Lahko pa določiš posebna znaka za začetek(STX) in konec(ETX) bloka. Ko sprejmeš podatek izločiš ta dva znaka, informacija vmes ti pa ostane. _________________ LP,
Robi
Kjer se znanje konča, se domišljija začne |
|
Nazaj na vrh |
|
 |
toncibalonci Član

Pridružen-a: Pet 03 Avg 2007 21:12 Prispevkov: 331 Aktiv.: 1.52 Kraj: Dravograd
|
Objavljeno: Čet Nov 06, 2008 1:09 pm Naslov sporočila: |
|
|
Tista dva znak (CRLF) sem tak v VB izločil. Kak pa rešim dolžino? |
|
Nazaj na vrh |
|
 |
bolha95 Član


Pridružen-a: Pet 14 Dec 2007 21:33 Prispevkov: 296 Aktiv.: 1.38 Kraj: Križe / Tržič
|
Objavljeno: Čet Nov 06, 2008 1:15 pm Naslov sporočila: |
|
|
toncibalonci je napisal/a: |
Tista dva znak (CRLF) sem tak v VB izločil. Kak pa rešim dolžino? |
String pretvoriš v vrednost z ukazom val, če se ne motim. To je vse. _________________ LP,
Robi
Kjer se znanje konča, se domišljija začne |
|
Nazaj na vrh |
|
 |
Krampus Član



Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1853 Aktiv.: 9.05
|
Objavljeno: Čet Nov 06, 2008 1:26 pm Naslov sporočila: |
|
|
Potem moraš brati vsak bajt po vrsti, ne pa v paketih Treshold 1, InputLen 1, narediti svoj buffer, ga polniti in prožiti ko dobiš LF.
Skratka, če imaš možnost na drugi strani popraviti, je z VB lažje brati fiksno dolžino podatka. _________________ Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo. |
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.32
|
Objavljeno: Čet Nov 06, 2008 1:34 pm Naslov sporočila: |
|
|
Sicer bo precej pomagalo, če boš pošiljal vedno enako dolžino, ker bo rutina sprejema paketov precej enostavnejša. Nikakor pa ne priporočam, da nastaviš Treshold na 5. Sprejemaj vsak byte posebej in jih sestavljaj v lastnem bufferju. Ko imaš dovolj podatkov v bufferju, jih obdelaj. Žal je UART daleč!!! low level komunikacijski protokol , ki ne pozna drugega kot poslat tistih 8 bitov z določenim baudom na drugo stran in ki od uporabnika zahteva, da softversko izvaja sestavljanje in obdelavo paketov. Če hočeš, da je komunikacija robustna, boš moral poleg osnovnih rutin za obdelavo podatkov dodati tudi rutine, ki bodo poštimale komunikacijo v primeru, da se kje zalomi (na primer, če se kje zgubi kakšen byte...). _________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
Obelix Član

Pridružen-a: Pon 19 Maj 2008 13:59 Prispevkov: 1881 Aktiv.: 9.02 Kraj: Maribor
|
Objavljeno: Čet Nov 06, 2008 1:42 pm Naslov sporočila: |
|
|
Poskusi v Bascomu nastaviti niz na konstantno dolžino. Recimo na 5 znakov.
Nekaj takega:
Dim X As String * 5
X = Right(" " + X , 5)
Nizu X dodaš s tem 4 prazna mesta spredaj, potem pa vzameš "desnih" 5 znakov. Tako boš imel vedno 5 znakov dolg niz.
Lep pozdrav, Andrej |
|
Nazaj na vrh |
|
 |
toncibalonci Član

Pridružen-a: Pet 03 Avg 2007 21:12 Prispevkov: 331 Aktiv.: 1.52 Kraj: Dravograd
|
Objavljeno: Čet Nov 06, 2008 2:07 pm Naslov sporočila: |
|
|
Obelix ta varijanta ne dela javi mi napako . V "val" ukaz pa ne moreš vpisat spremenljivke. Še kaka ideja?? |
|
Nazaj na vrh |
|
 |
Krampus Član



Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1853 Aktiv.: 9.05
|
Objavljeno: Čet Nov 06, 2008 2:41 pm Naslov sporočila: |
|
|
Dim Prejeto as string
Dim Vrednost as integer ali Double
Vrednost = CInt(Prejeto)
Ali z val (rezultat je Double)
Vrednost = Val(Prejeto) _________________ Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 9 dni
Powered by phpBB © 2001, 2005 phpBB Group
|