aboutsummaryrefslogtreecommitdiff
path: root/libraries/SoftwareSerial/examples
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/SoftwareSerial/examples')
-rwxr-xr-xlibraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde50
-rw-r--r--libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino78
2 files changed, 78 insertions, 50 deletions
diff --git a/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde b/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde
deleted file mode 100755
index 1db4536..0000000
--- a/libraries/SoftwareSerial/examples/TwoPortRXExample/TwoPortRXExample.pde
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <SoftwareSerial.h>
-
-SoftwareSerial ss(2, 3);
-SoftwareSerial ss2(4, 5);
-
-/* This sample shows how to correctly process received data
- on two different "soft" serial ports. Here we listen on
- the first port (ss) until we receive a '?' character. Then
- we begin listening on the other soft port.
-*/
-
-void setup()
-{
- // Start the HW serial port
- Serial.begin(57600);
-
- // Start each soft serial port
- ss.begin(4800);
- ss2.begin(4800);
-
- // By default, the most recently "begun" port is listening.
- // We want to listen on ss, so let's explicitly select it.
- ss.listen();
-
- // Simply wait for a ? character to come down the pipe
- Serial.println("Data from the first port: ");
- char c = 0;
- do
- if (ss.available())
- {
- c = (char)ss.read();
- Serial.print(c);
- }
- while (c != '?');
-
- // Now listen on the second port
- ss2.listen();
-
- Serial.println("Data from the second port: ");
-}
-
-void loop()
-{
- if (ss2.available())
- {
- char c = (char)ss2.read();
- Serial.print(c);
- }
-}
-
diff --git a/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino b/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino
new file mode 100644
index 0000000..e870c6f
--- /dev/null
+++ b/libraries/SoftwareSerial/examples/TwoPortReceive/TwoPortReceive.ino
@@ -0,0 +1,78 @@
+/*
+ Software serial multple serial test
+
+ Receives from the two software serial ports,
+ sends to the hardware serial port.
+
+ In order to listen on a software port, you call port.listen().
+ When using two software serial ports, you have to switch ports
+ by listen()ing on each one in turn. Pick a logical time to switch
+ ports, like the end of an expected transmission, or when the
+ buffer is empty. This example switches ports when there is nothing
+ more to read from a port
+
+ The circuit:
+ Two devices which communicate serially are needed.
+ * First serial device's TX attached to digital pin 2, RX to pin 3
+ * Second serial device's TX attached to digital pin 4, RX to pin 5
+
+ created 18 Apr. 2011
+ by Tom Igoe
+ based on Mikal Hart's twoPortRXExample
+
+ This example code is in the public domain.
+
+ */
+
+#include <SoftwareSerial.h>
+// software serial #1: TX = digital pin 2, RX = digital pin 3
+SoftwareSerial portOne(2, 3);
+
+// software serial #2: TX = digital pin 4, RX = digital pin 5
+SoftwareSerial portTwo(4, 5);
+
+void setup()
+{
+ // Start the hardware serial port
+ Serial.begin(9600);
+
+ // Start each software serial port
+ portOne.begin(9600);
+ portTwo.begin(9600);
+}
+
+void loop()
+{
+ // By default, the last intialized port is listening.
+ // when you want to listen on a port, explicitly select it:
+ portOne.listen();
+ Serial.println("Data from port one:");
+ // while there is data coming in, read it
+ // and send to the hardware serial port:
+ while (portOne.available() > 0) {
+ char inByte = portOne.read();
+ Serial.write(inByte);
+ }
+
+ // blank line to separate data from the two ports:
+ Serial.println();
+
+ // Now listen on the second port
+ portTwo.listen();
+ // while there is data coming in, read it
+ // and send to the hardware serial port:
+ Serial.println("Data from port two:");
+ while (portTwo.available() > 0) {
+ char inByte = portTwo.read();
+ Serial.write(inByte);
+ }
+
+ // blank line to separate data from the two ports:
+ Serial.println();
+}
+
+
+
+
+
+