summaryrefslogtreecommitdiff
path: root/software/communication/physical.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-05-30 16:13:04 +0200
committerxengineering <me@xengineering.eu>2024-05-30 16:13:04 +0200
commit0cfd378394b6c5d90e00c217b12113e0c3284031 (patch)
treea8f6f121abeef12aeaea081620bfcf3c09033a97 /software/communication/physical.go
parentb8ef4d11fe0d00ce0884ccf982675845b20c3ce9 (diff)
downloadiot-core-0cfd378394b6c5d90e00c217b12113e0c3284031.tar
iot-core-0cfd378394b6c5d90e00c217b12113e0c3284031.tar.zst
iot-core-0cfd378394b6c5d90e00c217b12113e0c3284031.zip
software: Implement serial port printout
This validates that the code is able to get data from the serial port.
Diffstat (limited to 'software/communication/physical.go')
-rw-r--r--software/communication/physical.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/software/communication/physical.go b/software/communication/physical.go
index 25d5299..f79d382 100644
--- a/software/communication/physical.go
+++ b/software/communication/physical.go
@@ -1,6 +1,9 @@
package communication
import (
+ "fmt"
+
+ "go.bug.st/serial"
"go.bug.st/serial/enumerator"
)
@@ -8,6 +11,10 @@ const (
ST_VID = `0483`
)
+type Phy struct {
+ port serial.Port
+}
+
func GetStSerials() ([]string, error) {
retval := make([]string, 0)
@@ -26,3 +33,27 @@ func GetStSerials() ([]string, error) {
return retval, nil
}
+
+func NewPhy(device string) (Phy, error) {
+ p := Phy{}
+ mode := &serial.Mode{
+ BaudRate: 115200,
+ }
+ port, err := serial.Open(device, mode)
+ if err != nil {
+ return p, err
+ }
+ p.port = port
+ return p, nil
+}
+
+func (phy *Phy) Cat() error {
+ buff := make([]byte, 100)
+ for {
+ n, err := phy.port.Read(buff)
+ if err != nil {
+ return err
+ }
+ fmt.Printf("%s", string(buff[:n]))
+ }
+}