Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions baud_darwin.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// +build darwin

package sio

const (
B0 = 0x00000
B50 = 0x00001
B75 = 0x00002
B110 = 0x00003
B134 = 0x00004
B150 = 0x00005
B200 = 0x00006
B300 = 0x00007
B600 = 0x00010
B1200 = 0x00011
B1800 = 0x00012
B2400 = 0x00013
B4800 = 0x00014
B9600 = 0x00015
B19200 = 0x00016
B38400 = 0x00017
B57600 = 0x10001
B115200 = 0x10002
B230400 = 0x10003
B460800 = 0x10004
B500000 = 0x10005
B576000 = 0x10006
B921600 = 0x10007
B1000000 = 0x10010
B1152000 = 0x10011
B1500000 = 0x10012
B2000000 = 0x10013
B2500000 = 0x10014
B3000000 = 0x10015
B3500000 = 0x10016
B4000000 = 0x10017
)
39 changes: 39 additions & 0 deletions baud_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// +build linux

package sio

import "syscall"

const (
B0 = syscall.B0
B50 = syscall.B50
B75 = syscall.B75
B110 = syscall.B110
B134 = syscall.B134
B150 = syscall.B150
B200 = syscall.B200
B300 = syscall.B300
B600 = syscall.B600
B1200 = syscall.B1200
B1800 = syscall.B1800
B2400 = syscall.B2400
B4800 = syscall.B4800
B9600 = syscall.B9600
B19200 = syscall.B19200
B38400 = syscall.B38400
B57600 = syscall.B57600
B115200 = syscall.B115200
B230400 = syscall.B230400
B460800 = syscall.B460800
B500000 = syscall.B500000
B576000 = syscall.B576000
B921600 = syscall.B921600
B1000000 = syscall.B1000000
B1152000 = syscall.B1152000
B1500000 = syscall.B1500000
B2000000 = syscall.B2000000
B2500000 = syscall.B2500000
B3000000 = syscall.B3000000
B3500000 = syscall.B3500000
B4000000 = syscall.B4000000
)
65 changes: 32 additions & 33 deletions example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,43 +21,42 @@ import (
"io"
"os"
"runtime"
"syscall"
"time"

"github.com/schleibinger/sio"
".."
)

var bauds = map[int]uint32{
50: syscall.B50,
75: syscall.B75,
110: syscall.B110,
134: syscall.B134,
150: syscall.B150,
200: syscall.B200,
300: syscall.B300,
600: syscall.B600,
1200: syscall.B1200,
1800: syscall.B1800,
2400: syscall.B2400,
4800: syscall.B4800,
9600: syscall.B9600,
19200: syscall.B19200,
38400: syscall.B38400,
57600: syscall.B57600,
115200: syscall.B115200,
230400: syscall.B230400,
460800: syscall.B460800,
500000: syscall.B500000,
576000: syscall.B576000,
921600: syscall.B921600,
1000000: syscall.B1000000,
1152000: syscall.B1152000,
1500000: syscall.B1500000,
2000000: syscall.B2000000,
2500000: syscall.B2500000,
3000000: syscall.B3000000,
3500000: syscall.B3500000,
4000000: syscall.B4000000,
var bauds = map[int]uint64{
50: sio.B50,
75: sio.B75,
110: sio.B110,
134: sio.B134,
150: sio.B150,
200: sio.B200,
300: sio.B300,
600: sio.B600,
1200: sio.B1200,
1800: sio.B1800,
2400: sio.B2400,
4800: sio.B4800,
9600: sio.B9600,
19200: sio.B19200,
38400: sio.B38400,
57600: sio.B57600,
115200: sio.B115200,
230400: sio.B230400,
460800: sio.B460800,
500000: sio.B500000,
576000: sio.B576000,
921600: sio.B921600,
1000000: sio.B1000000,
1152000: sio.B1152000,
1500000: sio.B1500000,
2000000: sio.B2000000,
2500000: sio.B2500000,
3000000: sio.B3000000,
3500000: sio.B3500000,
4000000: sio.B4000000,
}

const serve = "The quick brown fox jumps over the lazy dog"
Expand Down
65 changes: 32 additions & 33 deletions rxdump/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,42 +18,41 @@ import (
"fmt"
"os"
"runtime"
"syscall"

"github.com/schleibinger/sio"
".."
)

var bauds = map[int]uint32{
50: syscall.B50,
75: syscall.B75,
110: syscall.B110,
134: syscall.B134,
150: syscall.B150,
200: syscall.B200,
300: syscall.B300,
600: syscall.B600,
1200: syscall.B1200,
1800: syscall.B1800,
2400: syscall.B2400,
4800: syscall.B4800,
9600: syscall.B9600,
19200: syscall.B19200,
38400: syscall.B38400,
57600: syscall.B57600,
115200: syscall.B115200,
230400: syscall.B230400,
460800: syscall.B460800,
500000: syscall.B500000,
576000: syscall.B576000,
921600: syscall.B921600,
1000000: syscall.B1000000,
1152000: syscall.B1152000,
1500000: syscall.B1500000,
2000000: syscall.B2000000,
2500000: syscall.B2500000,
3000000: syscall.B3000000,
3500000: syscall.B3500000,
4000000: syscall.B4000000,
var bauds = map[int]uint64{
50: sio.B50,
75: sio.B75,
110: sio.B110,
134: sio.B134,
150: sio.B150,
200: sio.B200,
300: sio.B300,
600: sio.B600,
1200: sio.B1200,
1800: sio.B1800,
2400: sio.B2400,
4800: sio.B4800,
9600: sio.B9600,
19200: sio.B19200,
38400: sio.B38400,
57600: sio.B57600,
115200: sio.B115200,
230400: sio.B230400,
460800: sio.B460800,
500000: sio.B500000,
576000: sio.B576000,
921600: sio.B921600,
1000000: sio.B1000000,
1152000: sio.B1152000,
1500000: sio.B1500000,
2000000: sio.B2000000,
2500000: sio.B2500000,
3000000: sio.B3000000,
3500000: sio.B3500000,
4000000: sio.B4000000,
}

// Removed usage of "log", seems to cause "guru meditation" on Phytec's Phycard
Expand Down
8 changes: 4 additions & 4 deletions sio.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// +build linux
// +build linux darwin

/*

Expand Down Expand Up @@ -56,7 +56,7 @@ type Port struct {
// mode (e.g. no HW nor XON/XOFF flow control).
//
// Ex.: sio.Open("/dev/ttyS0", syscall.B115200)
func Open(dev string, rate uint32) (p *Port, err error) {
func Open(dev string, rate uint64) (p *Port, err error) {
var f *os.File
defer func() {
if err != nil && f != nil {
Expand All @@ -72,14 +72,14 @@ func Open(dev string, rate uint32) (p *Port, err error) {
t := syscall.Termios{
Iflag: syscall.IGNPAR,
Cflag: syscall.CS8 | syscall.CREAD | syscall.CLOCAL | rate,
Cc: [32]uint8{syscall.VMIN: 1},
Cc: [termiosNCCS]uint8{syscall.VMIN: 1},
Ispeed: rate,
Ospeed: rate,
}
if _, _, errno := syscall.Syscall6(
syscall.SYS_IOCTL,
uintptr(fd),
uintptr(syscall.TCSETS),
uintptr(ioctlWriteTermios),
uintptr(unsafe.Pointer(&t)),
0,
0,
Expand Down
13 changes: 13 additions & 0 deletions sio_darwin.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build darwin

package sio

import "syscall"

const termiosNCCS = 20
const ioctlReadTermios = syscall.TIOCGETA
const ioctlWriteTermios = syscall.TIOCSETA
13 changes: 13 additions & 0 deletions sio_linux.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build linux

package sio

import "syscall"

const termiosNCCS = 32
const ioctlReadTermios = syscall.TCGETS
const ioctlWriteTermios = syscall.TCSETS
65 changes: 32 additions & 33 deletions sioctrl/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,43 +16,42 @@ package main
import (
"flag"
"log"
"syscall"
"time"

"github.com/schleibinger/sio"
".."
)

var bauds = map[int]uint32{
50: syscall.B50,
75: syscall.B75,
110: syscall.B110,
134: syscall.B134,
150: syscall.B150,
200: syscall.B200,
300: syscall.B300,
600: syscall.B600,
1200: syscall.B1200,
1800: syscall.B1800,
2400: syscall.B2400,
4800: syscall.B4800,
9600: syscall.B9600,
19200: syscall.B19200,
38400: syscall.B38400,
57600: syscall.B57600,
115200: syscall.B115200,
230400: syscall.B230400,
460800: syscall.B460800,
500000: syscall.B500000,
576000: syscall.B576000,
921600: syscall.B921600,
1000000: syscall.B1000000,
1152000: syscall.B1152000,
1500000: syscall.B1500000,
2000000: syscall.B2000000,
2500000: syscall.B2500000,
3000000: syscall.B3000000,
3500000: syscall.B3500000,
4000000: syscall.B4000000,
var bauds = map[int]uint64{
50: sio.B50,
75: sio.B75,
110: sio.B110,
134: sio.B134,
150: sio.B150,
200: sio.B200,
300: sio.B300,
600: sio.B600,
1200: sio.B1200,
1800: sio.B1800,
2400: sio.B2400,
4800: sio.B4800,
9600: sio.B9600,
19200: sio.B19200,
38400: sio.B38400,
57600: sio.B57600,
115200: sio.B115200,
230400: sio.B230400,
460800: sio.B460800,
500000: sio.B500000,
576000: sio.B576000,
921600: sio.B921600,
1000000: sio.B1000000,
1152000: sio.B1152000,
1500000: sio.B1500000,
2000000: sio.B2000000,
2500000: sio.B2500000,
3000000: sio.B3000000,
3500000: sio.B3500000,
4000000: sio.B4000000,
}

func main() {
Expand Down