小工具
string 11:22:33:44:55:66转化为0X11 0X22这样的数组
当前是
1---
type m_get_node_ctrl_cmd struct {
BLE_mac [6]uint8
Resv [2]uint8
CRC32 uint32
}
2---
func (d *m_get_node_ctrl_cmd) Set(mac string) {
str := strings.Split(mac, ":")
for i, s := range str {
fmt.Sscanf(s, "%x", &(d.BLE_mac[i]))
}
d.Resv = [2]uint8{0, 0}
const size = unsafe.Sizeof(*d) - 4
data_to_calc := *(*[size]uint8)(unsafe.Pointer(d))
d.CRC32 = crc32c.Calc(data_to_calc[:])
}
3----
get_ctrl_cmd.Set("DF:5F:62:44:21:8C")
希望调用简单一些
get_ctrl_cmd.Set("DF5F6244218C")
现在完成这个函数
上述喂马
package main
import (
"fmt"
"strings"
)
func main() {
var BLE_mac [6]uint8
mac := "11:22:33:44:55:66"
str := strings.Split(mac, ":")
for i, s := range str {
fmt.Sscanf(s, "%x", &(BLE_mac[i]))
}
fmt.Println(BLE_mac)
}
继续
package main
import (
"encoding/hex"
"fmt"
)
func main() {
mac := "112233445566"
test, _ := hex.DecodeString(mac)
fmt.Println(test)
}
数据类型不同
也就是 byte就是U8 但是一个是【6】一个是【】
func (d *m_get_node_ctrl_cmd) Set(mac string) {
byte_BLE_mac, _ := hex.DecodeString(mac)
for i := 0; i < 6; i++ {
d.BLE_mac[i] = byte_BLE_mac[i]
}
d.Resv = [2]uint8{0, 0}
const size = unsafe.Sizeof(*d) - 4
data_to_calc := *(*[size]uint8)(unsafe.Pointer(d))
d.CRC32 = crc32c.Calc(data_to_calc[:])
}
get_ctrl_cmd.Set("DF5F6244218C")