summaryrefslogtreecommitdiff
path: root/software/communication/interface.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-05-30 20:00:44 +0200
committerxengineering <me@xengineering.eu>2024-05-30 20:06:23 +0200
commit922d2a0cbd1406c0b437c0a062a8c04129d7dda4 (patch)
tree933e13ed1bfa7d1c01e9e600db226f1da0c524e4 /software/communication/interface.go
parent85dc84ab0e8f5bf2fc02ad8881c7a7247bdb492b (diff)
downloadiot-core-922d2a0cbd1406c0b437c0a062a8c04129d7dda4.tar
iot-core-922d2a0cbd1406c0b437c0a062a8c04129d7dda4.tar.zst
iot-core-922d2a0cbd1406c0b437c0a062a8c04129d7dda4.zip
software: communication: Implement unslip()
This implements to decode the Serial Line Internet Protocol (SLIP). It splits the continuous byte stream into frames. Based on these frames the rest of the data link layer and upper layers can be implemented.
Diffstat (limited to 'software/communication/interface.go')
-rw-r--r--software/communication/interface.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/software/communication/interface.go b/software/communication/interface.go
index d124a48..df089f2 100644
--- a/software/communication/interface.go
+++ b/software/communication/interface.go
@@ -1,11 +1,12 @@
package communication
import (
- "fmt"
+ "log"
)
type SerialInterface struct {
phy physical
+ dl dataLink
}
func NewSerialInterface() (SerialInterface, error) {
@@ -17,16 +18,19 @@ func NewSerialInterface() (SerialInterface, error) {
return iface, err
}
+ iface.dl = newDataLink()
+
return iface, nil
}
func (i *SerialInterface) Start() {
i.phy.start()
+ i.dl.start(i.phy.rx)
}
func (i *SerialInterface) Cat() {
for {
- data := <-i.phy.rx
- fmt.Printf("%s", string(data))
+ data := <-i.dl.rx
+ log.Printf("RX: '%v'\n", data)
}
}