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


Pridružen-a: Čet 23 Okt 2003 12:06 Prispevkov: 2707 Aktiv.: 11.40 Kraj: Ljubljana
|
Objavljeno: Ned Jan 02, 2011 8:04 pm Naslov sporočila: |
|
|
poglaviten podatek je, da je treba vsak byte (8 bitov) razbit na dva 4 bitna nibbla. Pomen posameznih podatkov imaš v nepopolni tabeli:
Nibble Description
13 The measurement mode (see below)
1 First digit
3 Second digit
5 Third digit
7 Forth digit
9 Fifth digit (not in all modes)
11 Decimal point position and unit selection (depends on mode)
17 bit 0 Negative (1) or positive (0)
17 bit 1 Auto (1) or manual (0) range
15 AC, DC or AC+DC (depends on mode)
Šteješ od leve proti desni, vsak prenos pa se konča z 0D8A.
Toliko na hitro, en mulc mi bruha pa sem ves čas v nizkem štartu... _________________ One shouldn’t work on semiconductors, that is a filthy mess; who knows if they really exist!
Wolfgang Pauli, 1931 |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.76 Kraj: Dobrepolje
|
Objavljeno: Ned Jan 02, 2011 8:23 pm Naslov sporočila: |
|
|
David2204 je napisal/a: |
Ne rabiš pretvarjat.
313834b5b3b0b3b0b0 : 184.53 mV |
Hvaaalaaa, to si pa zelo dobro razložil. Skoraj vse jasno.
LP, |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.76 Kraj: Dobrepolje
|
Objavljeno: Tor Jan 04, 2011 7:19 pm Naslov sporočila: |
|
|
Sedaj pa bi rad te podatke, ki jih pošlje multimeter VC940 na serijski port
prečital in obdelal z Visual Basic 5.
Napisal sem sledečo kodo:
Koda: |
Private Sub Command1_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False 'Zapremo vrata za sabo
End If
End 'Izhod iz programa
End Sub
Private Sub Form_Load()
MSComm1.Settings = "2400,N,8,1"
MSComm1.CommPort = 2
MSComm1.InputLen = 22
MSComm1.PortOpen = True
MSComm1.RThreshold = 22
End Sub
Private Sub MSComm1_OnComm()
Dim Data As String
Data = MSComm1.Input
Text1.Text = Data
End Sub
|
Do tukaj vse vredu.
Ni pa dobro to da dobim rezultat kot string.
To dobim v taki obliki: °°°°°11°1а°°°°11°1Š
Ko pa gledam na Terminalu RS232 pa dobim v HEX obliki tole:
(Slika iz Terminala na prejšni strani)
B0 B0 B0 B0 B0 31 31 B0 31 0D 8A
Problem pa je v tem, da neznam napisati ta del kode tako, da bi dobil te podatke
v HEX obliki.
Kaj naj napišem v MSComm1_OnComm, da bom dobil podatek v Hex obliki?
LP, |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.76 Kraj: Dobrepolje
|
Objavljeno: Čet Jan 06, 2011 7:16 pm Naslov sporočila: |
|
|
Bom kar sam odgovoril.
S pomočjo strička Googla sem rešil problem, ampak sem rabil kar nekaj časa.
To pa zato, ker je za mene angleščina španska vas.
Spodaj je delujoča koda, ki ASCii znake spremeni v Hex.
Sedaj pa je potrebno samo še izluščiti prave podatke in jih take prikazati .
Na Formo postaviš TextBox, MSComm, CommandButton, se priklopiš preko kabla na Comm, (Voltcraft VC940), startaš program in meriš.
Koda:
Koda: |
Private Sub Command1_Click()
'Izhod iz programa
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False 'Zapremo vrata za sabo
End If
End 'Izhod iz programa
End Sub
Private Sub Command2_Click()
'Private Function HexString(EvalString As String) As String
Dim intStrLen As Integer
Dim intLoop As Integer
Dim strHex As String
EvalString = Text1.Text 'text1 je to kar dobiš v ASCii iz instrumenta
EvalString = Trim(EvalString)
intStrLen = Len(EvalString)
For intLoop = 1 To intStrLen
strHex = strHex & " " & Right$("0" & Hex(Asc(Mid(EvalString, intLoop, 1))), 2)
Next
HexString = strHex
Text2.Text = HexString
'End Function
End Sub
Private Sub Form_Load()
MSComm1.Settings = "2400,N,8,1"
MSComm1.CommPort = 2 'katera vrata
'MSComm1.DTREnable = True
MSComm1.InputLen = 11 'koliko karakterjev sprejme
MSComm1.PortOpen = True
MSComm1.RThreshold = 11
End Sub
Private Sub MSComm1_OnComm()
Dim Data As Integer 'String
Data = MSComm1.Input
Text1.Text = Data
End Sub
|
LP,marko |
|
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: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|