Skip to content

Commit 307c004

Browse files
committed
Linux added.
Former-commit-id: 0119722025c2edbe0d590ee3afee1323d4de2b21
1 parent b62a191 commit 307c004

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

seriallist_linux.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package main
2+
3+
import (
4+
//"fmt"
5+
//"github.com/tarm/goserial"
6+
"log"
7+
"os"
8+
"strings"
9+
//"encoding/binary"
10+
//"strconv"
11+
//"syscall"
12+
//"fmt"
13+
"io/ioutil"
14+
)
15+
16+
func getList() ([]OsSerialPort, os.SyscallError) {
17+
//return getListViaWmiPnpEntity()
18+
return getListViaTtyList()
19+
}
20+
21+
func getListViaTtyList() ([]OsSerialPort, os.SyscallError) {
22+
var err os.SyscallError
23+
24+
log.Println("getting serial list on darwin")
25+
26+
// make buffer of 100 max serial ports
27+
// return a slice
28+
list := make([]OsSerialPort, 100)
29+
30+
files, _ := ioutil.ReadDir("/dev/")
31+
ctr := 0
32+
for _, f := range files {
33+
if strings.HasPrefix(f.Name(), "tty") {
34+
// it is a legitimate serial port
35+
list[ctr].Name = "/dev/" + f.Name()
36+
list[ctr].FriendlyName = f.Name()
37+
log.Println("Added serial port to list: ", list[ctr])
38+
ctr++
39+
}
40+
// stop-gap in case going beyond 100 (which should never happen)
41+
// i mean, really, who has more than 100 serial ports?
42+
if ctr > 99 {
43+
ctr = 99
44+
}
45+
//fmt.Println(f.Name())
46+
//fmt.Println(f.)
47+
}
48+
/*
49+
list := make([]OsSerialPort, 3)
50+
list[0].Name = "tty.serial1"
51+
list[0].FriendlyName = "tty.serial1"
52+
list[1].Name = "tty.serial2"
53+
list[1].FriendlyName = "tty.serial2"
54+
list[2].Name = "tty.Bluetooth-Modem"
55+
list[2].FriendlyName = "tty.Bluetooth-Modem"
56+
*/
57+
58+
return list[0:ctr], err
59+
}

0 commit comments

Comments
 (0)