Add serial stream

This commit is contained in:
Nonoo 2020-10-20 23:26:05 +02:00
parent 35c0a40b1c
commit 8943ff3627
5 changed files with 62 additions and 0 deletions

View file

@ -195,6 +195,7 @@ func (s *controlStream) handleRead(r []byte) {
s.requestSerialAndAudioTimeout.Stop()
s.requestSerialAndAudioTimeout = nil
}
go streams.serial.start()
go streams.audio.start()
s.serialAndAudioStreamOpened = true
}

1
go.mod
View file

@ -4,6 +4,7 @@ go 1.14
require (
github.com/akosmarton/papipes v0.0.0-20201020060136-a13951732479
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2
github.com/pborman/getopt v1.1.0
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.16.0

2
go.sum
View file

@ -7,6 +7,8 @@ github.com/akosmarton/papipes v0.0.0-20201020060136-a13951732479/go.mod h1:mdvQ3
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2 h1:CVuJwN34x4xM2aT4sIKhmeib40NeBPhRihNjQmpJsA4=
github.com/google/goterm v0.0.0-20200907032337-555d40f16ae2/go.mod h1:nOFQdrUlIlx6M6ODdSpBj1NVA+VgLC6kmw60mkw34H4=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=

View file

@ -10,6 +10,7 @@ import (
var streams struct {
control controlStream
serial serialStream
audio audioStream
}
@ -19,6 +20,7 @@ func exit(err error) {
}
streams.audio.sendDisconnect()
streams.serial.deinit()
streams.control.sendDisconnect()
audio.deinit()
@ -46,6 +48,7 @@ func main() {
audio.init()
streams.audio.init()
streams.serial.init()
streams.control.init()
setupCloseHandler()

55
serialstream.go Normal file
View file

@ -0,0 +1,55 @@
package main
import (
"github.com/google/goterm/term"
"github.com/nonoo/kappanhang/log"
)
type serialStream struct {
common streamCommon
pty *term.PTY
}
func (s *serialStream) init() {
s.common.open("serial", 50002)
var err error
s.pty, err = term.OpenPTY()
if err != nil {
exit(err)
}
n, err := s.pty.PTSName()
if err != nil {
exit(err)
}
log.Print("opened ", n)
}
func (s *serialStream) handleRead(r []byte) {
}
func (s *serialStream) start() {
s.common.sendPkt3()
s.common.waitForPkt4Answer()
s.common.sendPkt6()
s.common.waitForPkt6Answer()
log.Print("stream started")
s.common.pkt7.startPeriodicSend(&s.common, 1, false)
for {
select {
case r := <-s.common.readChan:
s.handleRead(r)
}
}
}
func (s *serialStream) deinit() {
s.common.sendDisconnect()
if s.pty != nil {
s.pty.Close()
}
}