Calliope : Senden von Text über Serielle Schnittstelle
In diesem Beispiel werden von dem Calliope Lerncomputer Daten über eine serielle Schnittstelle an einen angeschlossenen PC gesendet.
Der PC empfängt die Daten und zeigt die Daten in einem Consolen Programm an.
Dem Code serial.writeLine(“ein Text zum Senden”) wird über die integrierte Schnittstelle ein Text zur COM Schnittstelle des Computers gesendet.
serial.writeLine(Messwert + "") //\r \n |
Calliope Beispiel Code
Senden von Text über die serielle Schnittstelle
Der Code ist in javascript
Der Code in der Caliope zum Senden von Daten zur Seriellen Schnittstelle wird hier beschrieben
basic.forever(() => { //-----< MainLoop >------
//Temperatur lesen let Messwert = input.compassHeading()
serial.writeLine(Messwert + "") //\r \n
//wait 1 Sekunde basic.pause(1000)
//-----</ MainLoop >------ })
|
Calliope wird hier programmiert und in die Hardware geladen
Empfangen über die COM Schnittstelle des PCs
Console Programm
Die Serielle Schnittstelle wird zunächst festgelegt
//< globale Variablen > static SerialPort serial_Caliope;
//--< seriell erstellen >-- //Serielle Schnittstelle definieren serial_Caliope = new SerialPort { PortName = "COM7", BaudRate = 115200, Parity = Parity.None, DataBits = 8, Handshake = Handshake.None, RtsEnable = true, StopBits = StopBits.One }; |
Dann wird die COM Schnittstelle verbunden oder zum Abfragen geöffnet
//Serielle Schnittstelle starten serial_Caliope.Open(); //--</ seriell erstellen >-- |
Werte werden dann gelesen über den Befehl
string comErgebnis = serial_Caliope.ReadLine(); |
Und anschliessend in der Console Angezeigt
Console.WriteLine(comErgebnis); |
Über ein kleines Consolen Programm werden die Daten zyklisch an der seriellen Schnittstelle gelesen
using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers;
namespace _02_Console_Net { class Program { //< globale Variablen > static SerialPort serial_Caliope;
static void Main(string[] args) { //--------------< Main >--------------- //--< seriell erstellen >-- //Serielle Schnittstelle definieren serial_Caliope = new SerialPort { PortName = "COM7", BaudRate = 115200, Parity = Parity.None, DataBits = 8, Handshake = Handshake.None, RtsEnable = true, StopBits = StopBits.One };
//Serielle Schnittstelle starten serial_Caliope.Open(); //--</ seriell erstellen >--
//-< Timer >- Timer timerA = new Timer(1000); timerA.Elapsed += Timer_Elapsed; timerA.Start(); //-</ Timer >-
//Ausgeben Console.ReadKey(); //
//--------------</ Main >--------------- }
#region Events //----< Events >------- private static void Timer_Elapsed(object sender, ElapsedEventArgs e) { string comErgebnis = serial_Caliope.ReadLine(); Console.WriteLine(comErgebnis); } //----</ Events >------- #endregion /Events
} } |