我在gloss中实现了网络协议,它有一种类型的多字节代码。例如,数字消息的代码范围为0x90 - 0x9F。用于生成该类型的朴素函数可以如下所示:
(defn digital-message
[port]
(bit-or 0x90 port))
我想创建看起来像这样的编码器和解码器:
解码器:
(decode-all decoder (to-byte-buffer [0x91 0x05 0x98 0x06])) ; [{:type :digital-message :port 1 :some-data 5}
; {:type :digital-message :port 8 :some-data 6}]
编码器:
(encode encoder {:type :digital-message :port 2 :some-data 5}) ; [0x92 0x05]
不幸的是,我不知道如何实现它并与gloss/header
结合使用。
感谢您的回复。