source: arduino-1-6-7/trunk/fuentes/arduino-ide-amd64/libraries/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino @ 46

Last change on this file since 46 was 46, checked in by jrpelegrina, 4 years ago

First release to Xenial

File size: 3.3 KB
Line 
1/*
2  Arduino Yún USB-to-Serial
3
4  Allows you to use the Yún's 32U4 processor as a
5  serial terminal for the Linux side on the Yún.
6
7  Upload this to an Arduino Yún via serial (not WiFi) then open
8  the serial monitor at 115200 to see the boot process of Linux.
9  You can also use the serial monitor as a basic command line
10  interface for Linux using this sketch.
11
12  From the serial monitor the following commands can be issued:
13
14  '~' followed by '0' -> Set the UART speed to 57600 baud
15  '~' followed by '1' -> Set the UART speed to 115200 baud
16  '~' followed by '2' -> Set the UART speed to 250000 baud
17  '~' followed by '3' -> Set the UART speed to 500000 baud
18  '~' followed by '~' -> Sends the bridge's shutdown command to
19                        obtain the console.
20
21  The circuit:
22   Arduino Yún
23
24  created March 2013
25  by Massimo Banzi
26  modified by Cristian Maglie
27
28  This example code is in the public domain.
29
30  http://www.arduino.cc/en/Tutorial/YunSerialTerminal
31
32*/
33
34long linuxBaud = 250000;
35
36void setup() {
37  SERIAL_PORT_USBVIRTUAL.begin(115200);  // open serial connection via USB-Serial
38  SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux
39}
40
41boolean commandMode = false;
42
43void loop() {
44  // copy from USB-CDC to UART
45  int c = SERIAL_PORT_USBVIRTUAL.read();    // read from USB-CDC
46  if (c != -1) {                            // got anything?
47    if (commandMode == false) {             // if we aren't in command mode...
48      if (c == '~') {                       //    Tilde '~' key pressed?
49        commandMode = true;                 //       enter in command mode
50      } else {
51        SERIAL_PORT_HARDWARE.write(c);      //    otherwise write char to UART
52      }
53    } else {                                // if we are in command mode...
54      if (c == '0') {                       //     '0' key pressed?
55        SERIAL_PORT_HARDWARE.begin(57600);  //        set speed to 57600
56        SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600");
57      } else if (c == '1') {                //     '1' key pressed?
58        SERIAL_PORT_HARDWARE.begin(115200); //        set speed to 115200
59        SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200");
60      } else if (c == '2') {                //     '2' key pressed?
61        SERIAL_PORT_HARDWARE.begin(250000); //        set speed to 250000
62        SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000");
63      } else if (c == '3') {                //     '3' key pressed?
64        SERIAL_PORT_HARDWARE.begin(500000); //        set speed to 500000
65        SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000");
66      } else if (c == '~') {                //     '~` key pressed?
67        SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command
68        SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command");
69      } else {                              //     any other key pressed?
70        SERIAL_PORT_HARDWARE.write('~');    //        write '~' to UART
71        SERIAL_PORT_HARDWARE.write(c);      //        write char to UART
72      }
73      commandMode = false;                  //     in all cases exit from command mode
74    }
75  }
76
77  // copy from UART to USB-CDC
78  c = SERIAL_PORT_HARDWARE.read();          // read from UART
79  if (c != -1) {                            // got anything?
80    SERIAL_PORT_USBVIRTUAL.write(c);        //    write to USB-CDC
81  }
82}
Note: See TracBrowser for help on using the repository browser.