Use int
This commit is contained in:
@@ -322,7 +322,7 @@ func (drv *companionDriver) handleRXData(b []byte) {
|
|||||||
var (
|
var (
|
||||||
now = time.Now().UTC()
|
now = time.Now().UTC()
|
||||||
snr = float64(b[0]) / 4
|
snr = float64(b[0]) / 4
|
||||||
rssi = int8(b[1])
|
rssi = int(b[1])
|
||||||
)
|
)
|
||||||
|
|
||||||
// Decode raw
|
// Decode raw
|
||||||
|
|||||||
@@ -267,19 +267,22 @@ func (drv *repeaterDriver) handleRXData(line string) {
|
|||||||
return // nothing to do!
|
return // nothing to do!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* companion/repeater time isn't reliable, as they often don't have an RTC:
|
||||||
when, err := time.Parse("15:04:05 - 02/3/2006", strings.TrimSpace(line[:21]))
|
when, err := time.Parse("15:04:05 - 02/3/2006", strings.TrimSpace(line[:21]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Logger.Warnf("meshcore: corrupt raw packet: %v", err)
|
Logger.Warnf("meshcore: corrupt raw packet: %v", err)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
when = time.Now()
|
||||||
snr float64
|
snr float64
|
||||||
rssi int8
|
rssi int
|
||||||
data []byte
|
data []byte
|
||||||
)
|
)
|
||||||
if drv.hasSNR {
|
if drv.hasSNR {
|
||||||
snr = float64(b[0]) / 4
|
snr = float64(b[0]) / 4
|
||||||
rssi = int8(b[1])
|
rssi = int(b[1])
|
||||||
data = b[2:]
|
data = b[2:]
|
||||||
if drv.rawPackets != nil {
|
if drv.rawPackets != nil {
|
||||||
select {
|
select {
|
||||||
@@ -325,9 +328,9 @@ func (drv *repeaterDriver) handleRX(line string) {
|
|||||||
for _, part := range strings.Split(line, " ") {
|
for _, part := range strings.Split(line, " ") {
|
||||||
switch {
|
switch {
|
||||||
case strings.HasPrefix(part, "SNR="):
|
case strings.HasPrefix(part, "SNR="):
|
||||||
snr, _ = strconv.Atoi(part[3:])
|
snr, _ = strconv.Atoi(part[4:])
|
||||||
case strings.HasPrefix(part, "RSSI="):
|
case strings.HasPrefix(part, "RSSI="):
|
||||||
rssi, _ = strconv.Atoi(part[4:])
|
rssi, _ = strconv.Atoi(part[5:])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,7 +340,7 @@ func (drv *repeaterDriver) handleRX(line string) {
|
|||||||
Time: drv.lastFrameAt,
|
Time: drv.lastFrameAt,
|
||||||
Protocol: protocol.MeshCore,
|
Protocol: protocol.MeshCore,
|
||||||
SNR: float64(snr),
|
SNR: float64(snr),
|
||||||
RSSI: int8(rssi),
|
RSSI: rssi,
|
||||||
Raw: drv.lastFrame,
|
Raw: drv.lastFrame,
|
||||||
}:
|
}:
|
||||||
default:
|
default:
|
||||||
@@ -350,7 +353,7 @@ func (drv *repeaterDriver) handleRX(line string) {
|
|||||||
packet := new(Packet)
|
packet := new(Packet)
|
||||||
if err := packet.UnmarshalBytes(drv.lastFrame); err == nil {
|
if err := packet.UnmarshalBytes(drv.lastFrame); err == nil {
|
||||||
packet.SNR = float64(snr)
|
packet.SNR = float64(snr)
|
||||||
packet.RSSI = int8(rssi)
|
packet.RSSI = rssi
|
||||||
select {
|
select {
|
||||||
case drv.packets <- packet:
|
case drv.packets <- packet:
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -21,11 +21,14 @@ type Packet struct {
|
|||||||
SNR float64 `json:"snr"`
|
SNR float64 `json:"snr"`
|
||||||
|
|
||||||
// RSSI is the received signal strength indicator (in dBm).
|
// RSSI is the received signal strength indicator (in dBm).
|
||||||
RSSI int8 `json:"rssi"`
|
RSSI int `json:"rssi"`
|
||||||
|
|
||||||
// Raw bytes (optional).
|
// Raw bytes (optional).
|
||||||
Raw []byte `json:"raw,omitempty"`
|
Raw []byte `json:"raw,omitempty"`
|
||||||
|
|
||||||
|
// Version for this packet.
|
||||||
|
Version int `json:"version"`
|
||||||
|
|
||||||
// RouteType is the type of route for this packet.
|
// RouteType is the type of route for this packet.
|
||||||
RouteType RouteType `json:"route_type"`
|
RouteType RouteType `json:"route_type"`
|
||||||
|
|
||||||
@@ -111,7 +114,7 @@ func (packet *Packet) MarshalBytes() []byte {
|
|||||||
data [1 + 4 + 1 + maxPathSize + maxPayloadSize]byte
|
data [1 + 4 + 1 + maxPathSize + maxPayloadSize]byte
|
||||||
offset int
|
offset int
|
||||||
)
|
)
|
||||||
data[offset] = byte(packet.RouteType&0x03) | byte((packet.PayloadType&0x0f)<<2)
|
data[offset] = byte(packet.RouteType&0x03) | byte((packet.PayloadType&0x0f)<<2) | byte((packet.Version&0x03)<<6)
|
||||||
offset += 1
|
offset += 1
|
||||||
|
|
||||||
if packet.RouteType.HasTransportCodes() {
|
if packet.RouteType.HasTransportCodes() {
|
||||||
@@ -138,6 +141,7 @@ func (packet *Packet) UnmarshalBytes(data []byte) error {
|
|||||||
|
|
||||||
packet.RouteType = RouteType(data[0] & 0x03)
|
packet.RouteType = RouteType(data[0] & 0x03)
|
||||||
packet.PayloadType = PayloadType((data[0] >> 2) & 0x0f)
|
packet.PayloadType = PayloadType((data[0] >> 2) & 0x0f)
|
||||||
|
packet.Version = int((data[0] >> 6) & 0x03)
|
||||||
offset := 1
|
offset := 1
|
||||||
|
|
||||||
if packet.RouteType.HasTransportCodes() {
|
if packet.RouteType.HasTransportCodes() {
|
||||||
@@ -187,7 +191,7 @@ func (packet *Packet) Hash() []byte {
|
|||||||
func (packet *Packet) MarshalJSON() ([]byte, error) {
|
func (packet *Packet) MarshalJSON() ([]byte, error) {
|
||||||
return json.Marshal(struct {
|
return json.Marshal(struct {
|
||||||
SNR float64 `json:"snr"`
|
SNR float64 `json:"snr"`
|
||||||
RSSI int8 `json:"rssi"`
|
RSSI int `json:"rssi"`
|
||||||
RouteType RouteType `json:"route_type"`
|
RouteType RouteType `json:"route_type"`
|
||||||
PayloadType PayloadType `json:"payload_type"`
|
PayloadType PayloadType `json:"payload_type"`
|
||||||
TransportCodes []uint16 `json:"transport_codes,omitempty"`
|
TransportCodes []uint16 `json:"transport_codes,omitempty"`
|
||||||
|
|||||||
Reference in New Issue
Block a user