Avatar billede mortenaa Nybegynder
25. oktober 2008 - 16:27 Der er 10 kommentarer og
1 løsning

Konvertering af modtagne byte i hex fra udp client

Hej.

Jeg er ved at oprette en lille applikation til at kommunikere med en Omron PLC.
Mit problem er sende og modtage streng er skrevet i hex format, og at plc'en operere i int16 værdier og ikke i bytes

Byte tabellen modtaget fra plc'en er på 16 byte.
De sidste to bytes i rækken er værdien, er det ord som der bliver spurgt på, henholdsvis leftmost og rightmost byte.
Mit problem er at få slået de sidste to bytes sammen, og vist som et heltal.

Lille eksempel:

Der spørges på værdien af et ord som f.eks er 16#3440.
Det læser jeg som ud i en streng som 05264, altså leftmost byte = hex 34/decimal 52
og rightmost byte = hex 40/decimal 64

Mvh Morten
Avatar billede arne_v Ekspert
25. oktober 2008 - 16:34 #1
byte a = 52;
byte b = 64;
short v = (a << 8) | b;

eller ?
Avatar billede bitmatic Nybegynder
25. oktober 2008 - 19:05 #2
eh... Hvis jeg har forstået det rigtigt, så står du med en streng med værdien "3440" som er hex, og som du gerne vil have ned i en int.

Hvis det er tilfældet, så prøv med:
int16 x = int16.Parse("3440", NumberStyles.AllowHexSpecifier);
Avatar billede mortenaa Nybegynder
25. oktober 2008 - 21:08 #3
Hej igen.

Eksemplet fra arne v virkede perfekt, dog skal v være en int og ikke en short?
Er helt ny i c#, så mangler stadig meget viden endnu.

Tak for nu
Avatar billede mortenaa Nybegynder
25. oktober 2008 - 21:14 #4
Hej igen.

Hvis jer skal skrive til plc'en er det jo modsatte vej.
Er der en lignende måde at få en int16 til at blive to seperate bytes?
Avatar billede arne_v Ekspert
25. oktober 2008 - 21:26 #5
Derfor du gav dig selv point ????
Avatar billede mortenaa Nybegynder
25. oktober 2008 - 21:30 #6
Nej er sgu vist ikke helt inde i det der point system.
Dette er mit første indlæg.
Avatar billede arne_v Ekspert
25. oktober 2008 - 21:41 #7
Det forventes at du giver point til dem som svarer på dine spørgsmål !
Avatar billede arne_v Ekspert
25. oktober 2008 - 21:42 #8
short v = 0x3440;
byte a = (byte)(v >> 8);
byte b = (byte)v;
Avatar billede mortenaa Nybegynder
25. oktober 2008 - 21:50 #9
Okay hvordan sender jeg så de point til dig??
Jeg trykkede jo bare på accepter.
Tak for svaret forresten.
Avatar billede arne_v Ekspert
25. oktober 2008 - 22:42 #10
Man kan ikke tildele flere point i et spørgsmål hvor der er accepteret et svar.

Man kan oprette et nyt spørgsmål til at håndtere det.

Tilsvarende http://expfaq.dk/giv_flere_point#giv_flere_point
Avatar billede arne_v Ekspert
25. oktober 2008 - 22:42 #11
Der er iøvrigt flere gode ting at læse på http://expfaq.dk/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester