![]() |
![]() |
|
|||||||
| Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
|
Alatke vezane za temu | Vrste prikaza |
|
|
#1 |
|
Novi član
Član od: 4.1.2006.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
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! |
|
|
|
|
|
#2 |
|
Cogito ergo Brains
Član od: 16.10.2005.
Lokacija: Lobanja
Poruke: 417
Zahvalnice: 3
Zahvaljeno 42 puta na 26 poruka
|
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...
|
|
|
|
|
|
#3 | |
|
Novi član
Član od: 4.1.2006.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
|
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) |
|
|
|
|
|
|
#4 |
|
Starosedelac
|
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) |
|
|
|
|
|
#5 | |
|
Cogito ergo Brains
Član od: 16.10.2005.
Lokacija: Lobanja
Poruke: 417
Zahvalnice: 3
Zahvaljeno 42 puta na 26 poruka
|
Citat:
|
|
|
|
|
|
|
#6 |
|
Starosedelac
|
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) |
|
|
|
|
|
#7 |
|
Starosedelac
|
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) |
|
|
|
|
|
#8 |
|
Starosedelac
|
---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 | |
|
|