|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
4.1.2006, 19:55 | #1 |
Novi član
Član od: 4.1.2006.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
Komunikacija sa LPT portom u Visual Basicu
Da li neko zna kako naterati VB da komunicira sa LPT-om? Za pocetak bi mi trebalo samo paljenje i gasenje svih pinova, ali ako je neko voljan da objasni vise bicu zahvalan...
E da, ovo se odnosi na XP! Hvala unapred! |
5.1.2006, 1:41 | #2 |
Cogito ergo Brains
Član od: 16.10.2005.
Lokacija: Lobanja
Poruke: 417
Zahvalnice: 3
Zahvaljeno 42 puta na 26 poruka
|
Re: Komunikacija sa LPT portom u Visual Basicu
Neka me ispravi neko ko se bavio vise od 5 minuta ovom temom (znaci ne kao ja... ) Mislim (procitao negde na nekom zvanicnom sajtu/u zvanicnom helpu) da u Win-u (pocev od 2000 pa na dalje, sto znaci i XP) nije tako lako (bez asemblerskog koda) pristupati LPT i COM portovima na sirov nacin, nego komunikaciju moras sprovesti preko Windowsa i njegovih dll-ova. Koji dll, ne znam tacno...
|
5.1.2006, 4:22 | #3 | |
Novi član
Član od: 4.1.2006.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
Re: Komunikacija sa LPT portom u Visual Basicu
Citat:
upravo tako (preko dll-a) sam radio u win98... ioport.dll ili tako nesto... ali ovde to nece... dakle, treba mi neko ko je ovo uspesno radio, a da je VB u pitanju, a ne C! Poslednja ispravka: Morgray (5.1.2006 u 13:17) |
|
10.3.2006, 19:34 | #4 |
Starosedelac
|
Re: Komunikacija sa LPT portom u Visual Basicu
OK, jedino inpout32.dll podrzava direktan pristup LTP-u, na XP-u ili 9x - svejedno...
dodaj ovaj code u modul: ---cut here--- Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ---cut here--- adrese portova (HEX) : 378(output) ,379(input / output) i 37A. ako ti treba konkretan primer(VB6 / C#) - javi... Poslednja ispravka: MG-RAY (7.4.2006 u 15:27) |
14.3.2006, 13:35 | #5 | |
Cogito ergo Brains
Član od: 16.10.2005.
Lokacija: Lobanja
Poruke: 417
Zahvalnice: 3
Zahvaljeno 42 puta na 26 poruka
|
Re: Komunikacija sa LPT portom u Visual Basicu
Citat:
|
|
19.3.2006, 19:19 | #6 |
Starosedelac
|
Re: Komunikacija sa LPT portom u Visual Basicu
DEO1:
inpout32.dll nadji na netu, ili mi ostavi mail da ti ga posaljem (kao i ceo source, ako te mrzi da radis Step-By-Step)... OK, prvo malo "teorije"... Standardni LTP port - 25 pinova, tebi treba "samo" 16 ili 9, zavisi kako uzmes. pinovi od 2 do 9 su izlazni (za port 888 / HEX: 378): na njih kacis [ + (pozitivan)] kraj (npr. [+] kraj LED) 2 - 1 3 - 2 4 - 4 5 - 8 6 - 16 7 - 32 8 - 64 9 -128 znaci broj koji posaljes na port bice prikazan binarno (npr . 82 , binarno 1010010 ukljucice pinove 3 , 6 i 8). GND (Ground) pinovi : od 18 do 25: to bi vec bilo mesto gde povezujes[ - (negativan)] kraj. inace, izlazni napon je 3.3V. ostali ti za ove stvari nece trebati, ali ako zelis da znas cemu sluze - pitaj... a i tu je fotka programabilnog 'Synchronised-With-Music LightShow'-a, ali posto je to slika-ne vredi ti nista, ali to je samo jedna od stvari koja moze da se napravi pomocu LTP-a i funkcionalnije je od Neon-gluposti... Poslednja ispravka: MG-RAY (19.3.2006 u 20:00) |
19.3.2006, 19:20 | #7 |
Starosedelac
|
Re: Komunikacija sa LPT portom u Visual Basicu
DEO2:
---VB--- iskopiraj inpout32.dll u "C\Windows\" dodaj jedan modul u projekat, nazovi ga kako hoces. ubaci sledeci kod: Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer **************************** na Form dodaj sledece kontrole: ListBox ---x1 TextBox --- x2 Label --- x1 CommandButton --- x2 *************************** i naravno - ubaci code: Kod:
Dim gPortAddress As String Dim gValue As Integer Private Sub Command1_Click() gValue = Int(Text1.Text) updateLabelCaption gPortAddress Out "&H" + gPortAddress, gValue End Sub Private Sub Command2_Click() Text2.Text = Str$(Inp("&H" + gPortAddress)) End Sub Private Sub Form_Load() List1.AddItem "378" List1.AddItem "379" List1.AddItem "37A" gPortAddress = "378" updateLabelCaption gPortAddress End Sub Private Sub Form_Unload(Cancel As Integer) Out "&H" + gPortAddress, 0 End Sub Private Sub List1_Click() gPortAddress = List1.List(List1.ListIndex) updateLabelCaption gPortAddress End Sub Private Sub updateLabelCaption(labelCaption As String) Label1.Caption = labelCaption + vbCrLf + "Value:" + Str$(gValue) End Sub Poslednja ispravka: MG-RAY (19.3.2006 u 19:39) |
19.3.2006, 19:45 | #8 |
Starosedelac
|
Re: Komunikacija sa LPT portom u Visual Basicu
---C#---
dodaj sledece delove code-a (+ kontrole: 3x Label, 3x TextBox, 2xButton) Kod:
using System.Runtime.InteropServices; ///////// #region Vars [DllImport("inpout32.dll", EntryPoint = "Out32")] public static extern void lOut(int PortAddress, int Value); [DllImport("inpout32.dll", EntryPoint = "Inp32")] public static extern int lInp(int PortAddress); /*int gPortAddress = 888; int gValue = 255; */ #endregion ///////WFDGC private void button1_Click(object sender, System.EventArgs e) { try { lOut(int.Parse(textBox1.Text),int.Parse(textBox2.Text)); } catch { lOut(888,0); } } private void WinForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) { lOut(888 ,0); } private void button2_Click(object sender, System.EventArgs e) { try { textBox3.Text = (lInp(int.Parse(textBox1.Text))).ToString(); } catch//(System.Exception ed) { textBox3.Text = "ERROR"; //throw(ed); } } |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|