Avatar billede Rasmus29 Nybegynder
27. december 2012 - 18:24 Der er 3 kommentarer og
1 løsning

Hjælp til beregning af checksum.

Hej. Jeg er lidt grønd i vb.net men skal bruge beregning af checksum af de sidste 4 bytes + 1.
Det er til konunikation med et relækort på serial port.
Den streng der sendes f.eks. (vbcr & 1 & "S" & "3")
Hvilket gerne skulle ende med (vbcr & 1 & "S" & "3") & checksum

Er der nogen der kan hjælpe.
Avatar billede arne_v Ekspert
27. december 2012 - 18:43 #1
Vi skal nok se lidt mere for ar kunne hjaelpe.

:-)
Avatar billede Rasmus29 Nybegynder
27. december 2012 - 19:02 #2
Det jeg søger er metoden til at beregne checksum af en tekst streng.

Strengen er som vist her i parenteser
(vbcr 1S3)

Checksummen skal iflg. manualen til interfacet være de sidste 4 bytes + 1

her er det der er i eksempel koden vb.5

Private Sub Command10_Click()
checksum = (255 - ((((13 + address + Asc("S") + Asc("3")) / 256) - Int((13 + address + Asc("S") + Asc("3")) / 256)) * 256)) + 1

messagestring = Chr$(13) & Chr$(address) & "S3" & Chr$(checksum)
messagestring = messagestring & messagestring
messagestring = messagestring & messagestring
comm.Output = messagestring
End Sub

Bruger vb.11
Avatar billede RogerWilco Seniormester
29. december 2012 - 12:10 #3
Hvis du søger en metode til at lave checksum på en streng a vilkårlig længde i stedet for det "faste" indhold i eksemplet, kunne det lægges i en funktion som dette:

function csum(cstr)
dim i,j,s
j=0
s=right(cstr,4)
for i=1 to len(s) : j=j+asc(mid(s,i,1)) : next
csum=(j and 255)+1
end function

Bemærk, at dette er VBscript, da jeg ikke kender noget til VB.net - det burde dog let kunne overføres.
Avatar billede Rasmus29 Nybegynder
01. januar 2013 - 11:26 #4
Takker for hjælpen.
Har fået det til at virke.
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
Kurser inden for grundlæggende programmering

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