Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- The following code was converted from PHP and Python to VB.Net.
- Pass the call sign to the function
- ex: Passcode = GenPC("K4DNM") ''pass or convert callsign to upper case
- converted from http://blog.eagleflint.com/wp-content/2012/05/APRS-IS_Passcode
- and https://github.com/PHP-APRS-PASSCODE
- Private Shared Function GenPc(pc As String) As Long
- 'strip station designators. ex: "-5" Only the real call sign is used
- Dim stophere As Integer = InStr(pc, "-") - 1
- If stophere > 0 Then
- pc = pc.Split("-"c)(0)
- End If
- ''the Hash must be 29666 (non-negotiable)
- Dim hash As Long = 29666
- For j = 1 To pc.Length
- If CBool(j Mod 2) Then
- hash = hash Xor (Asc(Mid(pc.ToUpper(), j, 1)) << 8)
- Else
- hash = hash Xor Asc(Mid(pc.ToUpper(), j, 1))
- End If
- Next
- ''mask the high bit so that the result is always positive
- GenPc = hash And 65535
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement