Files
gf/geg/encoding/gbinary/bits1.go

33 lines
787 B
Go
Raw Normal View History

2018-01-18 12:02:56 +08:00
package main
import (
"fmt"
"gitee.com/johng/gf/g/encoding/gbinary"
)
func main() {
// 传感器状态0:已下线, 1:开启, 2:关闭, 3:待机
count := 100
status := 1
2018-01-18 17:40:16 +08:00
// 网关编码
2018-01-18 12:02:56 +08:00
bits := make([]gbinary.Bit, 0)
for i := 0; i < count; i++ {
2018-01-18 22:14:12 +08:00
bits = gbinary.EncodeBits(bits, status, 2)
2018-01-18 12:02:56 +08:00
}
buffer := gbinary.EncodeBitsToBytes(bits)
fmt.Println("buffer length:", len(buffer))
2018-01-18 17:40:16 +08:00
/* 上报过程忽略,这里只展示编码/解码示例 */
// 平台解码
2018-01-18 12:02:56 +08:00
alivecount := 0
sensorbits := gbinary.DecodeBytesToBits(buffer)
for i := 0; i < len(sensorbits); i += 2 {
if gbinary.DecodeBits(sensorbits[i:i+2]) == 1 {
alivecount++
}
}
fmt.Println("alived sensor:", alivecount)
}