AppendFHDR appends encoded msg to dst.
(dst []byte, msg *ttnpb.FHDR, isUplink bool)
| 97 | |
| 98 | // AppendFHDR appends encoded msg to dst. |
| 99 | func AppendFHDR(dst []byte, msg *ttnpb.FHDR, isUplink bool) ([]byte, error) { |
| 100 | if n := len(msg.DevAddr); n != 4 { |
| 101 | return nil, errExpectedLengthEqual("DevAddr", 4)(n) |
| 102 | } |
| 103 | dst = appendReverse(dst, msg.DevAddr...) |
| 104 | fOptsLen := uint8(len(msg.GetFOpts())) |
| 105 | if fOptsLen > 15 { |
| 106 | return nil, errExpectedLowerOrEqual("FOptsLen", 15)(fOptsLen) |
| 107 | } |
| 108 | dst, err := AppendFCtrl(dst, msg.GetFCtrl(), isUplink, fOptsLen) |
| 109 | if err != nil { |
| 110 | return nil, errFailedEncoding("FCtrl").WithCause(err) |
| 111 | } |
| 112 | dst = byteutil.AppendUint32(dst, msg.GetFCnt()&0xffff, 2) |
| 113 | dst = append(dst, msg.GetFOpts()...) |
| 114 | return dst, nil |
| 115 | } |
| 116 | |
| 117 | // UnmarshalFHDR unmarshals b into msg. |
| 118 | func UnmarshalFHDR(b []byte, msg *ttnpb.FHDR, isUplink bool) error { |