@@ -31,7 +31,7 @@ import (
3131
3232type serialhub struct {
3333 // Opened serial ports.
34- ports map [* serport ] bool
34+ ports map [string ] * serport
3535
3636 mu sync.Mutex
3737}
@@ -60,15 +60,15 @@ type SpPortItem struct {
6060var serialPorts SerialPortList
6161
6262var sh = serialhub {
63- ports : make (map [* serport ] bool ),
63+ ports : make (map [string ] * serport ),
6464}
6565
6666// Register serial ports from the connections.
6767func (sh * serialhub ) Register (port * serport ) {
6868 sh .mu .Lock ()
6969 //log.Print("Registering a port: ", p.portConf.Name)
7070 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
7272 sh .mu .Unlock ()
7373}
7474
@@ -77,7 +77,7 @@ func (sh *serialhub) Unregister(port *serport) {
7777 sh .mu .Lock ()
7878 //log.Print("Unregistering a port: ", p.portConf.Name)
7979 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 )
8181 close (port .sendBuffered )
8282 close (port .sendNoBuf )
8383 sh .mu .Unlock ()
@@ -86,15 +86,8 @@ func (sh *serialhub) Unregister(port *serport) {
8686func (sh * serialhub ) FindPortByName (portname string ) (* serport , bool ) {
8787 sh .mu .Lock ()
8888 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
9891}
9992
10093// List broadcasts a Json representation of the ports found
0 commit comments