@@ -1248,7 +1248,9 @@ void __attribute__((interrupt(), nomips16)) IntSer7Handler(void)
12481248** instantiated as Serial0.
12491249*/
12501250USBSerial Serial (&rx_bufferUSB);
1251+ bool Serial_available () { return Serial.available (); }
12511252#if defined(_SER0_BASE)
1253+ bool Serial0_available () { return Serial0.available (); }
12521254#if defined(__PIC32_PPS__)
12531255HardwareSerial Serial0 ((p32_uart *)_SER0_BASE, _SER0_IRQ, _SER0_VECTOR, _SER0_IPL, _SER0_SPL, IntSer0Handler, _SER0_TX_PIN, _SER0_RX_PIN, _SER0_TX_OUT, _SER0_RX_IN);
12541256#else
@@ -1264,6 +1266,7 @@ HardwareSerial Serial0((p32_uart *)_SER0_BASE, _SER0_IRQ, _SER0_VECTOR, _SER0_IP
12641266** however MZ have 6
12651267*/
12661268#if defined(_SER0_BASE)
1269+ bool Serial_available () { return Serial.available (); }
12671270#if defined(__PIC32_PPS__)
12681271HardwareSerial Serial ((p32_uart *)_SER0_BASE, _SER0_IRQ, _SER0_VECTOR, _SER0_IPL, _SER0_SPL, IntSer0Handler, _SER0_TX_PIN, _SER0_RX_PIN, _SER0_TX_OUT, _SER0_RX_IN);
12691272#else
@@ -1274,6 +1277,7 @@ HardwareSerial Serial((p32_uart *)_SER0_BASE, _SER0_IRQ, _SER0_VECTOR, _SER0_IPL
12741277#endif // defined(_USB) && defined(_USE_USB_FOR_SERIAL_)
12751278
12761279#if defined(_SER1_BASE)
1280+ bool Serial1_available () { return Serial1.available (); }
12771281#if defined(__PIC32_PPS__)
12781282HardwareSerial Serial1 ((p32_uart *)_SER1_BASE, _SER1_IRQ, _SER1_VECTOR, _SER1_IPL, _SER1_SPL, IntSer1Handler, _SER1_TX_PIN, _SER1_RX_PIN, _SER1_TX_OUT, _SER1_RX_IN);
12791283#else
@@ -1282,6 +1286,7 @@ HardwareSerial Serial1((p32_uart *)_SER1_BASE, _SER1_IRQ, _SER1_VECTOR, _SER1_IP
12821286#endif
12831287
12841288#if defined(_SER2_BASE)
1289+ bool Serial2_available () { return Serial2.available (); }
12851290#if defined(__PIC32MZXX__)
12861291HardwareSerial Serial2 ((p32_uart *)_SER2_BASE, _SER2_IRQ, _SER2_VECTOR, _SER2_IPL, _SER2_SPL, IntSer2Handler, _SER2_TX_PIN, _SER2_RX_PIN, _SER2_TX_OUT, _SER2_RX_IN);
12871292#else
@@ -1290,6 +1295,7 @@ HardwareSerial Serial2((p32_uart *)_SER2_BASE, _SER2_IRQ, _SER2_VECTOR, _SER2_IP
12901295#endif
12911296
12921297#if defined(_SER3_BASE)
1298+ bool Serial3_available () { return Serial3.available (); }
12931299#if defined(__PIC32MZXX__)
12941300HardwareSerial Serial3 ((p32_uart *)_SER3_BASE, _SER3_IRQ, _SER3_VECTOR, _SER3_IPL, _SER3_SPL, IntSer3Handler, _SER3_TX_PIN, _SER3_RX_PIN, _SER3_TX_OUT, _SER3_RX_IN);
12951301#else
@@ -1298,6 +1304,7 @@ HardwareSerial Serial3((p32_uart *)_SER3_BASE, _SER3_IRQ, _SER3_VECTOR, _SER3_IP
12981304#endif
12991305
13001306#if defined(_SER4_BASE)
1307+ bool Serial4_available () { return Serial4.available (); }
13011308#if defined(__PIC32MZXX__)
13021309HardwareSerial Serial4 ((p32_uart *)_SER4_BASE, _SER4_IRQ, _SER4_VECTOR, _SER4_IPL, _SER4_SPL, IntSer4Handler, _SER4_TX_PIN, _SER4_RX_PIN, _SER4_TX_OUT, _SER4_RX_IN);
13031310#else
@@ -1306,6 +1313,7 @@ HardwareSerial Serial4((p32_uart *)_SER4_BASE, _SER4_IRQ, _SER4_VECTOR, _SER4_IP
13061313#endif
13071314
13081315#if defined(_SER5_BASE)
1316+ bool Serial5_available () { return Serial5.available (); }
13091317#if defined(__PIC32MZXX__)
13101318HardwareSerial Serial5 ((p32_uart *)_SER5_BASE, _SER5_IRQ, _SER5_VECTOR, _SER5_IPL, _SER5_SPL, IntSer5Handler, _SER5_TX_PIN, _SER5_RX_PIN, _SER5_TX_OUT, _SER5_RX_IN);
13111319#else
@@ -1314,6 +1322,7 @@ HardwareSerial Serial5((p32_uart *)_SER5_BASE, _SER5_IRQ, _SER5_VECTOR, _SER5_IP
13141322#endif
13151323
13161324#if defined(_SER6_BASE)
1325+ bool Serial6_available () { return Serial6.available (); }
13171326#if defined(__PIC32MZXX__)
13181327HardwareSerial Serial6 ((p32_uart *)_SER6_BASE, _SER6_IRQ, _SER6_VECTOR, _SER6_IPL, _SER6_SPL, IntSer6Handler, _SER6_TX_PIN, _SER6_RX_PIN, _SER6_TX_OUT, _SER6_RX_IN);
13191328#else
@@ -1322,13 +1331,70 @@ HardwareSerial Serial6((p32_uart *)_SER6_BASE, _SER6_IRQ, _SER6_VECTOR, _SER6_IP
13221331#endif
13231332
13241333#if defined(_SER7_BASE)
1334+ bool Serial7_available () { return Serial7.available (); }
13251335#if defined(__PIC32MZXX__)
13261336HardwareSerial Serial7 ((p32_uart *)_SER7_BASE, _SER7_IRQ, _SER7_VECTOR, _SER7_IPL, _SER7_SPL, IntSer7Handler, _SER7_TX_PIN, _SER7_RX_PIN, _SER7_TX_OUT, _SER7_RX_IN);
13271337#else
13281338HardwareSerial Serial7 ((p32_uart *)_SER7_BASE, _SER7_IRQ, _SER7_VECTOR, _SER7_IPL, _SER7_SPL, IntSer7Handler);
13291339#endif
13301340#endif
13311341
1342+ void serialEventRun () {
1343+ #if defined(_USB) && defined(_USE_USB_FOR_SERIAL_)
1344+ if (Serial_available && serialEvent && Serial_available ()) serialEvent ();
1345+ #if (NUM_SERIAL_PORTS > 0)
1346+ if (Serial0_available && serialEvent0 && Serial0_available ()) serialEvent0 ();
1347+ #endif
1348+ #if (NUM_SERIAL_PORTS > 1)
1349+ if (Serial1_available && serialEvent1 && Serial1_available ()) serialEvent1 ();
1350+ #endif
1351+ #if (NUM_SERIAL_PORTS > 2)
1352+ if (Serial2_available && serialEvent2 && Serial2_available ()) serialEvent2 ();
1353+ #endif
1354+ #if (NUM_SERIAL_PORTS > 3)
1355+ if (Serial3_available && serialEvent3 && Serial3_available ()) serialEvent3 ();
1356+ #endif
1357+ #if (NUM_SERIAL_PORTS > 4)
1358+ if (Serial4_available && serialEvent4 && Serial4_available ()) serialEvent4 ();
1359+ #endif
1360+ #if (NUM_SERIAL_PORTS > 5)
1361+ if (Serial5_available && serialEvent5 && Serial5_available ()) serialEvent5 ();
1362+ #endif
1363+ #if (NUM_SERIAL_PORTS > 6)
1364+ if (Serial6_available && serialEvent6 && Serial6_available ()) serialEvent6 ();
1365+ #endif
1366+ #if (NUM_SERIAL_PORTS > 7)
1367+ if (Serial7_available && serialEvent7 && Serial7_available ()) serialEvent7 ();
1368+ #endif
1369+ #else
1370+ #if (NUM_SERIAL_PORTS > 0)
1371+ if (Serial_available && serialEvent && Serial_available ()) serialEvent ();
1372+ #endif
1373+ #if (NUM_SERIAL_PORTS > 1)
1374+ if (Serial1_available && serialEvent1 && Serial1_available ()) serialEvent1 ();
1375+ #endif
1376+ #if (NUM_SERIAL_PORTS > 2)
1377+ if (Serial2_available && serialEvent2 && Serial2_available ()) serialEvent2 ();
1378+ #endif
1379+ #if (NUM_SERIAL_PORTS > 3)
1380+ if (Serial3_available && serialEvent3 && Serial3_available ()) serialEvent3 ();
1381+ #endif
1382+ #if (NUM_SERIAL_PORTS > 4)
1383+ if (Serial4_available && serialEvent4 && Serial4_available ()) serialEvent4 ();
1384+ #endif
1385+ #if (NUM_SERIAL_PORTS > 5)
1386+ if (Serial5_available && serialEvent5 && Serial5_available ()) serialEvent5 ();
1387+ #endif
1388+ #if (NUM_SERIAL_PORTS > 6)
1389+ if (Serial6_available && serialEvent6 && Serial6_available ()) serialEvent6 ();
1390+ #endif
1391+ #if (NUM_SERIAL_PORTS > 7)
1392+ if (Serial7_available && serialEvent7 && Serial7_available ()) serialEvent7 ();
1393+ #endif
1394+ #endif
1395+ }
1396+
1397+
13321398/* ------------------------------------------------------------ */
13331399
13341400/* ***********************************************************************/
0 commit comments