-func openTTY(name string) (*os.File, error) {
- file, err := os.OpenFile(name,os.O_RDWR, 0600) // For read access.
- if err != nil {
- Syslog_.Println(err.Error())
- return nil, err
+func openTTY(name string, speed uint) (file *os.File, err error) {
+ file, err = os.OpenFile(name,os.O_RDWR, 0666)
+ if err != nil { return }
+ if err = termios.SetRawFile(file); err != nil { return }
+ switch speed {
+ case 0: // set no baudrate
+ case 1200: err = termios.SetSpeedFile(file, termios.B1200)
+ case 2400: err = termios.SetSpeedFile(file, termios.B2400)
+ case 4800: err = termios.SetSpeedFile(file, termios.B4800)
+ case 9600: err = termios.SetSpeedFile(file, termios.B9600)
+ case 19200: err = termios.SetSpeedFile(file, termios.B19200)
+ case 38400: err = termios.SetSpeedFile(file, termios.B38400)
+ case 57600: err = termios.SetSpeedFile(file, termios.B57600)
+ case 115200: err = termios.SetSpeedFile(file, termios.B115200)
+ case 230400: err = termios.SetSpeedFile(file, termios.B230400)
+ default:
+ file.Close()
+ err = errors.New("Unsupported Baudrate, use 0 to disable setting a baudrate")