@@ -31,7 +31,7 @@ import (
31
31
32
32
type serialhub struct {
33
33
// Opened serial ports.
34
- ports map [* serport ] bool
34
+ ports map [string ] * serport
35
35
36
36
mu sync.Mutex
37
37
}
@@ -60,15 +60,15 @@ type SpPortItem struct {
60
60
var serialPorts SerialPortList
61
61
62
62
var sh = serialhub {
63
- ports : make (map [* serport ] bool ),
63
+ ports : make (map [string ] * serport ),
64
64
}
65
65
66
66
// Register serial ports from the connections.
67
67
func (sh * serialhub ) Register (port * serport ) {
68
68
sh .mu .Lock ()
69
69
//log.Print("Registering a port: ", p.portConf.Name)
70
70
h .broadcastSys <- []byte ("{\" Cmd\" :\" Open\" ,\" Desc\" :\" Got register/open on port.\" ,\" Port\" :\" " + port .portConf .Name + "\" ,\" Baud\" :" + strconv .Itoa (port .portConf .Baud ) + ",\" BufferType\" :\" " + port .BufferType + "\" }" )
71
- sh .ports [port ] = true
71
+ sh .ports [port . portName ] = port
72
72
sh .mu .Unlock ()
73
73
}
74
74
@@ -77,7 +77,7 @@ func (sh *serialhub) Unregister(port *serport) {
77
77
sh .mu .Lock ()
78
78
//log.Print("Unregistering a port: ", p.portConf.Name)
79
79
h .broadcastSys <- []byte ("{\" Cmd\" :\" Close\" ,\" Desc\" :\" Got unregister/close on port.\" ,\" Port\" :\" " + port .portConf .Name + "\" ,\" Baud\" :" + strconv .Itoa (port .portConf .Baud ) + "}" )
80
- delete (sh .ports , port )
80
+ delete (sh .ports , port . portName )
81
81
close (port .sendBuffered )
82
82
close (port .sendNoBuf )
83
83
sh .mu .Unlock ()
@@ -86,15 +86,8 @@ func (sh *serialhub) Unregister(port *serport) {
86
86
func (sh * serialhub ) FindPortByName (portname string ) (* serport , bool ) {
87
87
sh .mu .Lock ()
88
88
defer sh .mu .Unlock ()
89
-
90
- for port := range sh .ports {
91
- if strings .EqualFold (port .portConf .Name , portname ) {
92
- // we found our port
93
- //spHandlerClose(port)
94
- return port , true
95
- }
96
- }
97
- return nil , false
89
+ port , ok := sh .ports [portname ]
90
+ return port , ok
98
91
}
99
92
100
93
// List broadcasts a Json representation of the ports found
0 commit comments