[ Bojan11 @ 02.09.2006. 10:35 ] @
Ovako sa serijskog porta učitam dva byte-a , i to sa procedurom ReadExising, taj string tavim u textbox i tmo to vidim kao dva ASCII znaka.
Ja bi da transformiram (pretvorim to u hex-a znakove ili još bolje u decimalni broj ?
Kkao ? hvala ako može kod u visual basic-u
Bojan
[ CallMeSaMaster @ 02.09.2006. 10:48 ] @
Nemam kod da ti ponudim ali u svakom slucaju ces morati pokupiti ta dva znaka i naci njihovu binarnu vrijednost tj njihovu ascii vrijednost pretvoris u binarnu vrijednost i onda mozes s njom sta hoces.



[ CallMeSaMaster @ 02.09.2006. 11:03 ] @
Probaj ovo
Code:


sp = HexString ("Code")
print sp
&H43 &H6F &H64 &H65 &H47 &H75 &H72 &H75
sp = StringFromHex( sp)
Code

private Function HexString(EvalString as string) as string
Dim intStrLen as Integer
Dim intLoop as Integer
Dim strHex as string

EvalString = Trim(EvalString)
intStrLen = len(EvalString)
for intLoop = 1 to intStrLen
strHex = strHex & " &H" & Hex(Asc(mid(EvalString, intLoop, 1)))
next
HexString = strHex
End Function
private Function StringFromHex(byval EvalString as string) as string
Dim strText as string
Dim intLoop as Integer
Dim intCnt as Integer
Dim vArray() as string
EvalString = Trim(EvalString)
If len(EvalString) = 0 then Exit Function
vArray = Split(EvalString, " ")
intCnt = UBound(vArray)
for intLoop = 0 to intCnt
strText = strText & Chr(vArray(intLoop))
next
StringFromHex = strText
End Function
[ dusty @ 02.09.2006. 17:14 ] @
Jedan bajt shiftujes za osam bita u levo, i onda logicko AND sa drugim bajtom.
Pogledaj po helpu kako idu bool-ovi operateri u VB-u.

Code:

byte b1, b2;
int res;

b1 = 0xFF;
b2 = 0xEE;

res = b1 | (b2<<8);    //bitan je redosled, da li zelis little/big-endian

Debug.WriteLine("result : " + res.ToString() + " " + res.ToString("X"));
[ Bojan11 @ 02.09.2006. 19:41 ] @
Ček, ček kako da našiftujem podatke u 16 bitni registar?? Jer ot bi riješilo moj problem, prvo našiftujem jedan byte , pa onda drugi.....pa onda to sve skupa pretvorim u decimalan broj? (Baza 10) To bi rješio u asembleru, ali u .NET-u ne znam? Kako?

šta ti ovo znači:
res = b1 | (b2<<8); //bitan je redosled, da li zelis little/big-endian

[Ovu poruku je menjao Bojan11 dana 02.09.2006. u 20:57 GMT+1]

Tj. kako utrpati dva byta u jedna string?
Npr.
Imam Dim b1,b2 As byte
Dim str As String = b1&b2
Dim In As Integer = 2
Do While In =0
if In = 1 then
str = b1.ToString()
End If

if In=0 then
str = b2.ToString()
End If
Loop
Ali dali če mi ove bytove stavit u string jedan iza drugoga?

[Ovu poruku je menjao Bojan11 dana 02.09.2006. u 21:47 GMT+1]

[Ovu poruku je menjao Bojan11 dana 02.09.2006. u 21:48 GMT+1]
[ Dejan Vesic @ 02.09.2006. 22:08 ] @
Citat:
Bojan11: Ovako sa serijskog porta učitam dva byte-a , i to sa procedurom ReadExising, taj string tavim u textbox i tmo to vidim kao dva ASCII znaka.
Ja bi da transformiram (pretvorim to u hex-a znakove ili još bolje u decimalni broj ?
Kkao ? hvala ako može kod u visual basic-u
Bojan


Ako dobro razumem pitanje:

Code:


   byte firstByte = 34;
   byte secByte = 56;

   string bytes2String = firstByte.ToString(“X”) + secByte.ToString(“X”)

[ Bojan11 @ 03.09.2006. 08:56 ] @
Jutros gledam malo šta su Microsoftovci napravili za čitanje podataka sa serijskog porta (u Visual Basic-u.NET) , i tamo nađem metodu

SerialPort.Read Method (Byte[], Int32, Int32)
znači čitanje byte-ova sa serijskog , u određenom OFFSET-u, io kaže da ih treba slagati u Byte ARRAY , ali to ne znam , kako formirati byte array i kako ga onda pročitati? i dsali če mi byte-ovi biti jedan iza drugoga ako stavim offset =0.