MarshalMessage returns encoded msg.
(msg *ttnpb.Message)
| 537 | |
| 538 | // MarshalMessage returns encoded msg. |
| 539 | func MarshalMessage(msg *ttnpb.Message) ([]byte, error) { |
| 540 | if msg.MHdr == nil { |
| 541 | return nil, errMissing("MHDR") |
| 542 | } |
| 543 | switch msg.MHdr.MType { |
| 544 | case ttnpb.MType_CONFIRMED_DOWN, ttnpb.MType_UNCONFIRMED_DOWN, ttnpb.MType_CONFIRMED_UP, ttnpb.MType_UNCONFIRMED_UP: |
| 545 | // MHDR(1) + Payload(up to 250) + MIC(4) |
| 546 | return AppendMessage(make([]byte, 0, 255), msg) |
| 547 | case ttnpb.MType_JOIN_REQUEST: |
| 548 | // MHDR(1) + Payload(18) + MIC(4) |
| 549 | return AppendMessage(make([]byte, 0, 23), msg) |
| 550 | case ttnpb.MType_REJOIN_REQUEST: |
| 551 | // MHDR(1) + Payload(14|19) + MIC(4) |
| 552 | return AppendMessage(make([]byte, 0, 24), msg) |
| 553 | case ttnpb.MType_JOIN_ACCEPT: |
| 554 | // MHDR(1) + Encrypted payload(16|32) |
| 555 | return AppendMessage(make([]byte, 0, 33), msg) |
| 556 | case ttnpb.MType_PROPRIETARY: |
| 557 | return nil, errProprietary.New() |
| 558 | default: |
| 559 | return nil, errUnknown("MType")(msg.MHdr.MType.String()) |
| 560 | } |
| 561 | } |
| 562 | |
| 563 | // UnmarshalMessage unmarshals b into msg. |
| 564 | func UnmarshalMessage(b []byte, msg *ttnpb.Message) error { |