Port checking, removed log package
added inputting of port and baud-rate removed log package
This commit is contained in:
parent
413b4a401d
commit
fa7479ccf3
@ -182,7 +182,7 @@ $GPGAA,HHMMSS.SS,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
|
|||||||
|
|
||||||
### Sender issues
|
### Sender issues
|
||||||
|
|
||||||
- [ ] data stops being transmitted from sender after some short period time
|
- [x] data stops being transmitted from sender after some short period time
|
||||||
|
|
||||||
### Monitor app issues
|
### Monitor app issues
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"foglar/monitor/gui"
|
||||||
|
"foglar/monitor/parse"
|
||||||
gui "foglar/monitor/gui"
|
|
||||||
p "foglar/monitor/parse"
|
|
||||||
"foglar/monitor/serial_read"
|
"foglar/monitor/serial_read"
|
||||||
|
|
||||||
"github.com/gopxl/pixel"
|
"github.com/gopxl/pixel"
|
||||||
@ -30,9 +28,8 @@ func run() {
|
|||||||
// Initialize serial connection
|
// Initialize serial connection
|
||||||
serialHandler, err := serial_read.NewSerialHandler()
|
serialHandler, err := serial_read.NewSerialHandler()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer serialHandler.Close()
|
defer serialHandler.Close()
|
||||||
|
|
||||||
// Create window
|
// Create window
|
||||||
@ -69,11 +66,11 @@ func run() {
|
|||||||
data, err := serialHandler.ReadSerial()
|
data, err := serialHandler.ReadSerial()
|
||||||
defer serialHandler.Close()
|
defer serialHandler.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parsing data
|
// Parsing data
|
||||||
info := p.Parser(data)
|
info := parse.Parser(data)
|
||||||
|
|
||||||
// Clear screen values
|
// Clear screen values
|
||||||
temperature.Clear()
|
temperature.Clear()
|
||||||
|
|||||||
@ -1,23 +1,32 @@
|
|||||||
package serial_read
|
package serial_read
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/tarm/serial"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/tarm/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// - Validation of port and baudrate
|
// - Validation of port and baudrate
|
||||||
// - And input of port and baudrate
|
// - And input of port and baudrate
|
||||||
|
|
||||||
// SerialHandler is a struct to handle serial communication
|
// SerialHandler struct
|
||||||
type SerialHandler struct {
|
type SerialHandler struct {
|
||||||
port *serial.Port
|
port *serial.Port
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSerialHandler initializes a new SerialHandler
|
// Initialize new SerialHandler
|
||||||
func NewSerialHandler() (*SerialHandler, error) {
|
func NewSerialHandler() (*SerialHandler, error) {
|
||||||
// CALL port and baudrate input from user !!!
|
port := inputPort()
|
||||||
s, err := serial.OpenPort(&serial.Config{Name: "/dev/ttyACM0", Baud: 9600})
|
baudrate, err := inputBaudrate()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error - Baudrate is not valid number")
|
||||||
|
}
|
||||||
|
|
||||||
|
s, err := serial.OpenPort(&serial.Config{Name: port, Baud: baudrate})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -26,7 +35,7 @@ func NewSerialHandler() (*SerialHandler, error) {
|
|||||||
return &SerialHandler{port: s}, nil
|
return &SerialHandler{port: s}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadSerial reads from the serial port and returns the received data as a string
|
// Reads from the serial port and returns the received data as a string
|
||||||
func (sh *SerialHandler) ReadSerial() (string, error) {
|
func (sh *SerialHandler) ReadSerial() (string, error) {
|
||||||
buf := make([]byte, 128)
|
buf := make([]byte, 128)
|
||||||
n, err := sh.port.Read(buf)
|
n, err := sh.port.Read(buf)
|
||||||
@ -42,3 +51,59 @@ func (sh *SerialHandler) ReadSerial() (string, error) {
|
|||||||
func (sh *SerialHandler) Close() error {
|
func (sh *SerialHandler) Close() error {
|
||||||
return sh.port.Close()
|
return sh.port.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func inputPort() string {
|
||||||
|
var s_port string
|
||||||
|
|
||||||
|
for {
|
||||||
|
fmt.Print("Enter port ([Enter] - /dev/ttyACM0): ")
|
||||||
|
fmt.Scanln(&s_port)
|
||||||
|
|
||||||
|
if isPort(s_port) == true {
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
fmt.Println("Error - Invalid Port")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return s_port
|
||||||
|
}
|
||||||
|
|
||||||
|
func inputBaudrate() (int, error) {
|
||||||
|
var s_baud string
|
||||||
|
|
||||||
|
for {
|
||||||
|
fmt.Print("Enter baudrate (for example 9600): ")
|
||||||
|
fmt.Scanln(&s_baud)
|
||||||
|
|
||||||
|
if isBaud(s_baud) == true {
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
fmt.Println("Error - Invalid Baudrate")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return strconv.Atoi(s_baud)
|
||||||
|
}
|
||||||
|
|
||||||
|
func isPort(port string) bool {
|
||||||
|
_, err := os.Stat(port)
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func isBaud(baud string) bool {
|
||||||
|
switch baud {
|
||||||
|
case "4800":
|
||||||
|
return true
|
||||||
|
case "9600":
|
||||||
|
return true
|
||||||
|
case "115200":
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user