-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.go
More file actions
68 lines (60 loc) · 2.42 KB
/
main.go
File metadata and controls
68 lines (60 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"fmt"
"github.com/HTTPs-omma/HTTPsBAS-HSProtocol/HSProtocol"
"log"
)
func main() {
// Example byte slice representing an HS packet
packetData := []byte{
0x41, 0x55, // ProtocolID: 4 (0100), HealthStatus: 1 (01), Command: 341 (0101010101)
0x12, 0x34, // Identification: 0x1234
0xb8, 0xa2, // Checksum: 0x4112
0x00, 0x1C, // TotalLength: 001C : 28
0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, // UUID part 1
0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, // UUID part 2
0xAA, 0xBC, 0xCC, 0xDD, 0xFF, // Data start
}
hsManager := HSProtocol.NewHSProtocolManager()
hs, err := hsManager.Parsing(packetData)
if err != nil {
log.Fatalf("Failed to parse HS packet: %v", err)
}
fmt.Printf("ProtocolID: %d\n", hs.ProtocolID)
fmt.Printf("Health Status: %d\n", hs.HealthStatus)
fmt.Printf("Command: %d\n", hs.Command)
fmt.Printf("Identification: %d\n", hs.Identification)
fmt.Printf("Checksum: %x\n", hs.Checksum)
fmt.Printf("Total Length: %d\n", hs.TotalLength)
fmt.Printf("UUID: %x\n", hs.UUID)
fmt.Printf("Data: %x\n", hs.Data)
fmt.Printf("validate : %b \n", hsManager.ValidateCheckSum(packetData))
fmt.Printf("validate : %x \n", hsManager.GetCheckSum(packetData))
fmt.Printf("======================== \n")
data2, err := hsManager.ToBytes(hs)
hs2, err := hsManager.Parsing(data2)
fmt.Printf("ProtocolID: %d\n", hs2.ProtocolID)
fmt.Printf("Health Status: %d\n", hs2.HealthStatus)
fmt.Printf("Command: %d\n", hs2.Command)
fmt.Printf("Identification: %d\n", hs2.Identification)
fmt.Printf("Checksum: %x\n", hs2.Checksum)
fmt.Printf("Total Length: %d\n", hs2.TotalLength)
fmt.Printf("UUID: %x\n", hs2.UUID)
fmt.Printf("Data: %x\n", hs2.Data)
fmt.Printf("validate : %b \n", hsManager.ValidateCheckSum(data2))
fmt.Printf("validate : %x \n", hsManager.GetCheckSum(data2))
fmt.Printf("======================== \n")
data3, err := hsManager.ToBytes(hs2)
hs3, err := hsManager.Parsing(data3)
fmt.Printf("ProtocolID: %d\n", hs3.ProtocolID)
fmt.Printf("Health Status: %d\n", hs3.HealthStatus)
fmt.Printf("Command: %d\n", hs3.Command)
fmt.Printf("Identification: %d\n", hs3.Identification)
fmt.Printf("Checksum: %x\n", hs3.Checksum)
fmt.Printf("Total Length: %d\n", hs3.TotalLength)
fmt.Printf("UUID: %x\n", hs3.UUID)
fmt.Printf("Data: %x\n", hs3.Data)
fmt.Printf("validate : %b \n", hsManager.ValidateCheckSum(data3))
fmt.Printf("validate : %x \n", hsManager.GetCheckSum(data3))
hsManager.PrintByte(data3)
}