├── extras ├── CSharp │ ├── .gitignore │ ├── ZedGraph │ │ ├── ZedGraph.dll │ │ ├── ZedGraph.Web.dll │ │ ├── de │ │ │ └── ZedGraph.resources.dll │ │ ├── es │ │ │ └── ZedGraph.resources.dll │ │ ├── fr │ │ │ └── ZedGraph.resources.dll │ │ ├── hu │ │ │ └── ZedGraph.resources.dll │ │ ├── it │ │ │ └── ZedGraph.resources.dll │ │ ├── ja │ │ │ └── ZedGraph.resources.dll │ │ ├── pt │ │ │ └── ZedGraph.resources.dll │ │ ├── ru │ │ │ └── ZedGraph.resources.dll │ │ ├── sk │ │ │ └── ZedGraph.resources.dll │ │ ├── sv │ │ │ └── ZedGraph.resources.dll │ │ ├── tr │ │ │ └── ZedGraph.resources.dll │ │ ├── zh-cn │ │ │ └── ZedGraph.resources.dll │ │ └── zh-tw │ │ │ └── ZedGraph.resources.dll │ ├── DataLogging │ │ ├── ChartForm.resources │ │ ├── Properties │ │ │ ├── Resources.resources │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ └── AssemblyInfo.cs │ │ ├── app.config │ │ ├── Program.cs │ │ └── ChartForm.Designer.cs │ ├── Bluetooth │ │ └── InTheHand.Net.Personal.dll │ ├── TemperatureControl │ │ ├── ChartForm.resources │ │ ├── Properties │ │ │ ├── Resources.resources │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ └── AssemblyInfo.cs │ │ ├── app.config │ │ ├── Program.cs │ │ └── LoggingView.Designer.cs │ ├── Receive │ │ ├── app.config │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── ArduinoController │ │ ├── app.config │ │ ├── Properties │ │ │ ├── Settings.settings │ │ │ ├── Settings.Designer.cs │ │ │ └── AssemblyInfo.cs │ │ ├── Program.cs │ │ └── ControllerForm.cs │ ├── CommandMessengerTests │ │ ├── app.config │ │ ├── Program.cs │ │ ├── systemSettings.cs │ │ ├── Tests │ │ │ └── Random.cs │ │ ├── Enumerator.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── SendAndReceiveArguments │ │ ├── app.config │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── SendAndReceiveBinaryArguments │ │ ├── app.config │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── SimpleWatchdog │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── SimpleBluetooth │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── SendAndReceive │ │ ├── Program.cs │ │ ├── ConsoleUtils.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── CommandMessenger │ │ ├── CommandMessenger.nuspec │ │ ├── CommandEventArgs.cs │ │ ├── Queue │ │ │ ├── GeneralStrategy.cs │ │ │ ├── TopCommandStrategy.cs │ │ │ ├── CommandStrategy.cs │ │ │ ├── CollapseCommandStrategy.cs │ │ │ ├── ListQueue.cs │ │ │ └── StaleGeneralStrategy.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── StringUtils.cs │ │ ├── Transport │ │ │ └── ITransport.cs │ │ ├── TimeUtils.cs │ │ ├── StructSerializer.cs │ │ └── Logger.cs │ ├── CommandMessenger.Transport.Serial │ │ ├── CommandMessenger.Transport.Serial.nuspec │ │ ├── ISerialConnectionStorer.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── SerialSettings.cs │ ├── CommandMessenger.Transport.Network │ │ ├── CommandMessenger.Transport.Network.nuspec │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── TcpConnectionManager.cs │ ├── CommandMessenger.Transport.Bluetooth │ │ ├── CommandMessenger.Transport.Bluetooth.nuspec │ │ ├── IBluetoothConnectionStorer.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── build.bat │ └── CommandMessenger.Transport.IPC │ │ └── Properties │ │ └── AssemblyInfo.cs ├── documentation │ ├── PC │ │ └── html │ │ │ ├── bc_s.png │ │ │ ├── open.png │ │ │ ├── closed.png │ │ │ ├── doxygen.png │ │ │ ├── nav_f.png │ │ │ ├── nav_h.png │ │ │ ├── tab_a.png │ │ │ ├── tab_b.png │ │ │ ├── tab_h.png │ │ │ ├── tab_s.png │ │ │ ├── class_command_messenger_1_1_command.png │ │ │ ├── class_command_messenger_1_1_send_command.png │ │ │ ├── class_command_messenger_1_1_received_command.png │ │ │ ├── class_command_messenger_1_1_connection_manager.png │ │ │ ├── tabs.css │ │ │ ├── index.html │ │ │ ├── namespace_tools.html │ │ │ ├── class_receive_1_1_program-members.html │ │ │ ├── class_send_and_receive_1_1_program-members.html │ │ │ ├── class_command_messenger_tests_1_1_program-members.html │ │ │ ├── class_send_and_receive_arguments_1_1_program-members.html │ │ │ ├── class_send_and_receive_binary_arguments_1_1_program-members.html │ │ │ └── namespace_receive.html │ ├── Arduino │ │ └── html │ │ │ ├── bc_s.png │ │ │ ├── open.png │ │ │ ├── closed.png │ │ │ ├── doxygen.png │ │ │ ├── nav_f.png │ │ │ ├── nav_h.png │ │ │ ├── tab_a.png │ │ │ ├── tab_b.png │ │ │ ├── tab_h.png │ │ │ ├── tab_s.png │ │ │ ├── tabs.css │ │ │ ├── index.html │ │ │ ├── files.html │ │ │ ├── annotated.html │ │ │ └── classes.html │ └── Documentation.html └── VisualBasic │ ├── Receive │ ├── My Project │ │ ├── AssemblyInfo.vb │ │ └── Settings.settings │ ├── Program.vb │ ├── app.config │ └── Receive.vb │ ├── DataLogging │ ├── My Project │ │ ├── AssemblyInfo.vb │ │ ├── Settings.settings │ │ └── Resources.Designer.vb │ ├── Program.vb │ ├── app.config │ └── ChartForm.Designer.vb │ ├── SendAndReceive │ ├── My Project │ │ └── AssemblyInfo.vb │ ├── Program.vb │ └── app.config │ ├── SimpleWatchdog │ ├── My Project │ │ └── AssemblyInfo.vb │ └── Program.vb │ ├── CommandMessenger │ ├── My Project │ │ └── AssemblyInfo.vb │ ├── ConsoleUtils.vb │ ├── Serialport │ │ └── ISerialConnectionStorer.vb │ ├── Bluetooth │ │ └── IBluetoothConnectionStorer.vb │ ├── TransportLayer │ │ └── ITransport.vb │ ├── NewLineEvent.vb │ ├── Queue │ │ ├── TopCommandStrategy.vb │ │ ├── GeneralStrategy.vb │ │ ├── CollapseCommandStrategy.vb │ │ ├── ListQueue.vb │ │ ├── StaleGeneralStrategy.vb │ │ └── CommandStrategy.vb │ ├── DisposableObject.vb │ ├── StringUtils.vb │ ├── TimeUtils.vb │ ├── StructSerializer.vb │ └── DisposeStack.vb │ ├── SimpleBluetooth │ ├── My Project │ │ └── AssemblyInfo.vb │ └── Program.vb │ ├── ArduinoController │ ├── My Project │ │ ├── AssemblyInfo.vb │ │ ├── Settings.settings │ │ └── Resources.Designer.vb │ ├── Program.vb │ ├── app.config │ └── ControllerForm.vb │ ├── TemperatureControl │ ├── My Project │ │ ├── AssemblyInfo.vb │ │ ├── Settings.settings │ │ └── Resources.Designer.vb │ ├── Program.vb │ ├── LoggingView.Designer.vb │ ├── app.config │ └── LoggingView.vb │ ├── SendAndReceiveArguments │ ├── My Project │ │ └── AssemblyInfo.vb │ ├── Program.vb │ └── app.config │ └── SendAndReceiveBinaryArguments │ ├── My Project │ └── AssemblyInfo.vb │ ├── Program.vb │ └── app.config ├── .gitignore ├── utility ├── DoEvery.h ├── DoEvery.cpp └── HeaterSim.h ├── library.properties ├── library.json ├── LICENSE.md ├── keywords.txt ├── .travis.yml └── examples ├── SendAndReceive └── SendAndReceive.ino └── Receive └── Receive.ino /extras/CSharp/.gitignore: -------------------------------------------------------------------------------- 1 | [Bb]in/ 2 | [Oo]bj/ 3 | _ReSharper*/ 4 | *.suo 5 | *.csproj.user 6 | -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/ZedGraph.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/ZedGraph.dll -------------------------------------------------------------------------------- /extras/documentation/PC/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/bc_s.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/open.png -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/ZedGraph.Web.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/ZedGraph.Web.dll -------------------------------------------------------------------------------- /extras/documentation/PC/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/closed.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/doxygen.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/nav_f.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/nav_h.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/tab_a.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/tab_b.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/tab_h.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/tab_s.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/bc_s.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/open.png -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/ChartForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/DataLogging/ChartForm.resources -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/closed.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/doxygen.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/nav_f.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/nav_h.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/tab_a.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/tab_b.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/tab_h.png -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/Arduino/html/tab_s.png -------------------------------------------------------------------------------- /extras/CSharp/Bluetooth/InTheHand.Net.Personal.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/Bluetooth/InTheHand.Net.Personal.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/de/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/de/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/es/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/es/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/fr/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/fr/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/hu/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/hu/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/it/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/it/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/ja/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/ja/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/pt/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/pt/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/ru/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/ru/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/sk/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/sk/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/sv/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/sv/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/tr/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/tr/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/ChartForm.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/TemperatureControl/ChartForm.resources -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/zh-cn/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/zh-cn/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/CSharp/ZedGraph/zh-tw/ZedGraph.resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/ZedGraph/zh-tw/ZedGraph.resources.dll -------------------------------------------------------------------------------- /extras/VisualBasic/Receive/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/Receive/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/Properties/Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/DataLogging/Properties/Resources.resources -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/DataLogging/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceive/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/SendAndReceive/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/VisualBasic/SimpleWatchdog/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/SimpleWatchdog/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/CommandMessenger/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/VisualBasic/SimpleBluetooth/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/SimpleBluetooth/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/Properties/Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/CSharp/TemperatureControl/Properties/Resources.resources -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/ArduinoController/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/TemperatureControl/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/CSharp/Receive/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveArguments/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/SendAndReceiveArguments/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_command_messenger_1_1_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/class_command_messenger_1_1_command.png -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveBinaryArguments/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/VisualBasic/SendAndReceiveBinaryArguments/My Project/AssemblyInfo.vb -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_command_messenger_1_1_send_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/class_command_messenger_1_1_send_command.png -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveArguments/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_command_messenger_1_1_received_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/class_command_messenger_1_1_received_command.png -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_command_messenger_1_1_connection_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thijse/Arduino-CmdMessenger/HEAD/extras/documentation/PC/html/class_command_messenger_1_1_connection_manager.png -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveBinaryArguments/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extras/documentation/Documentation.html: -------------------------------------------------------------------------------- 1 |

CommandMessenger documentation

2 |

Browse the Arduino 3 | documentation

4 |

Browse the C# documentation

5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | ################################################################################ 4 | 5 | *.nupkg 6 | -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/VisualBasic/Receive/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/VisualBasic/Receive/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | 3 | Friend Class Program 4 | Shared Sub Main() 5 | ' mimics Arduino calling structure 6 | Dim receive = New Receive With {.RunLoop = True} 7 | receive.Setup() 8 | Do While receive.RunLoop 9 | receive.Loop() 10 | Loop 11 | receive.Exit() 12 | End Sub 13 | 14 | End Class -------------------------------------------------------------------------------- /extras/CSharp/Receive/Program.cs: -------------------------------------------------------------------------------- 1 | namespace Receive 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | // mimics Arduino calling structure 8 | var receive = new Receive {RunLoop = true}; 9 | receive.Setup(); 10 | while (receive.RunLoop) receive.Loop(); 11 | receive.Exit(); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extras/VisualBasic/SimpleWatchdog/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | 3 | Friend Class Program 4 | Shared Sub Main() 5 | ' mimics Arduino calling structure 6 | Dim simpleWatchdog = New SimpleWatchdog With {.RunLoop = True} 7 | simpleWatchdog.Setup() 8 | Do While simpleWatchdog.RunLoop 9 | simpleWatchdog.Loop() 10 | Loop 11 | simpleWatchdog.Exit() 12 | End Sub 13 | 14 | End Class -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceive/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | 3 | Friend Class Program 4 | Shared Sub Main() 5 | 6 | ' mimics Arduino calling structure 7 | Dim sendAndReceive = New SendAndReceive With {.RunLoop = True} 8 | sendAndReceive.Setup() 9 | Do While sendAndReceive.RunLoop 10 | sendAndReceive.Loop() 11 | Loop 12 | sendAndReceive.Exit() 13 | 14 | End Sub 15 | End Class -------------------------------------------------------------------------------- /extras/VisualBasic/SimpleBluetooth/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | Friend Class Program 3 | Shared Sub Main() 4 | ' mimics Arduino calling structure 5 | Dim simpleWatchdog = New SimpleBluetooth.SimpleWatchdog With {.RunLoop = True} 6 | simpleWatchdog.Setup() 7 | Do While simpleWatchdog.RunLoop 8 | simpleWatchdog.Loop() 9 | Loop 10 | simpleWatchdog.Exit() 11 | End Sub 12 | 13 | End Class -------------------------------------------------------------------------------- /utility/DoEvery.h: -------------------------------------------------------------------------------- 1 | #ifndef DoEvery_h 2 | #define DoEvery_h 3 | #define LIBRARY_VERSION 1.0.0 4 | 5 | #include 6 | 7 | #if ARDUINO >= 100 8 | #include 9 | #else 10 | #include 11 | #endif 12 | 13 | 14 | class DoEvery 15 | { 16 | public: 17 | DoEvery(long); 18 | void reset(); 19 | bool check(); 20 | bool before(double); 21 | private: 22 | unsigned long period; 23 | unsigned long lastTime; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /extras/CSharp/SimpleWatchdog/Program.cs: -------------------------------------------------------------------------------- 1 | namespace SimpleWatchdog 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | // mimics Arduino calling structure 8 | var simpleWatchdog = new SimpleWatchdog { RunLoop = true }; 9 | simpleWatchdog.Setup(); 10 | while (simpleWatchdog.RunLoop) simpleWatchdog.Loop(); 11 | simpleWatchdog.Exit(); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extras/CSharp/SimpleBluetooth/Program.cs: -------------------------------------------------------------------------------- 1 | namespace SimpleWatchdog 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | // mimics Arduino calling structure 8 | var simpleWatchdog = new SimpleBluetooth.SimpleWatchdog { RunLoop = true }; 9 | simpleWatchdog.Setup(); 10 | while (simpleWatchdog.RunLoop) simpleWatchdog.Loop(); 11 | simpleWatchdog.Exit(); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveArguments/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | 3 | Friend Class Program 4 | Shared Sub Main() 5 | ' mimics Arduino calling structure 6 | Dim sendAndReceiveArguments = New SendAndReceiveArguments With {.RunLoop = True} 7 | sendAndReceiveArguments.Setup() 8 | Do While sendAndReceiveArguments.RunLoop 9 | sendAndReceiveArguments.Loop() 10 | Loop 11 | sendAndReceiveArguments.Exit() 12 | End Sub 13 | 14 | End Class -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveBinaryArguments/Program.vb: -------------------------------------------------------------------------------- 1 | 2 | 3 | Friend Class Program 4 | Shared Sub Main() 5 | ' mimics Arduino calling structure 6 | Dim sendAndReceiveBinaryArguments = New SendAndReceiveBinaryArguments With {.RunLoop = True} 7 | sendAndReceiveBinaryArguments.Setup() 8 | Do While sendAndReceiveBinaryArguments.RunLoop 9 | sendAndReceiveBinaryArguments.Loop() 10 | Loop 11 | sendAndReceiveBinaryArguments.Exit() 12 | End Sub 13 | 14 | End Class -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveArguments/Program.cs: -------------------------------------------------------------------------------- 1 | namespace SendAndReceiveArguments 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | // mimics Arduino calling structure 8 | var sendAndReceiveArguments = new SendAndReceiveArguments { RunLoop = true }; 9 | sendAndReceiveArguments.Setup(); 10 | while (sendAndReceiveArguments.RunLoop) sendAndReceiveArguments.Loop(); 11 | sendAndReceiveArguments.Exit(); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading; 7 | 8 | namespace CommandMessengerTests 9 | { 10 | class Program 11 | { 12 | static void Main(string[] args) 13 | { 14 | Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 15 | new CommandMessengerTest(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/Program.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Windows.Forms 3 | Imports Microsoft.VisualBasic 4 | 5 | 6 | Friend NotInheritable Class Program 7 | ''' 8 | ''' The main entry point for the application. 9 | ''' 10 | Private Sub New() 11 | End Sub 12 | _ 13 | Shared Sub Main() 14 | Application.EnableVisualStyles() 15 | Application.SetCompatibleTextRenderingDefault(False) 16 | Application.Run(New ControllerForm()) 17 | End Sub 18 | End Class -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace ArduinoController 5 | { 6 | static class Program 7 | { 8 | /// 9 | /// The main entry point for the application. 10 | /// 11 | [STAThread] 12 | static void Main() 13 | { 14 | Application.EnableVisualStyles(); 15 | Application.SetCompatibleTextRenderingDefault(false); 16 | Application.Run(new ControllerForm()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveBinaryArguments/Program.cs: -------------------------------------------------------------------------------- 1 | namespace SendAndReceiveBinaryArguments 2 | { 3 | class Program 4 | { 5 | static void Main() 6 | { 7 | // mimics Arduino calling structure 8 | var sendAndReceiveBinaryArguments = new SendAndReceiveBinaryArguments { RunLoop = true }; 9 | sendAndReceiveBinaryArguments.Setup(); 10 | while (sendAndReceiveBinaryArguments.RunLoop) sendAndReceiveBinaryArguments.Loop(); 11 | sendAndReceiveBinaryArguments.Exit(); 12 | } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace DataLogging 5 | { 6 | static class Program 7 | { 8 | /// 9 | /// The main entry point for the application. 10 | /// Note that the main code is n 11 | /// 12 | [STAThread] 13 | static void Main() 14 | { 15 | Application.EnableVisualStyles(); 16 | Application.SetCompatibleTextRenderingDefault(false); 17 | Application.Run(new ChartForm()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/Program.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Windows.Forms 3 | Imports Microsoft.VisualBasic 4 | 5 | 6 | Friend NotInheritable Class Program 7 | ''' 8 | ''' The main entry point for the application. 9 | ''' Note that the main code is n 10 | ''' 11 | Private Sub New() 12 | End Sub 13 | _ 14 | Shared Sub Main() 15 | Application.EnableVisualStyles() 16 | Application.SetCompatibleTextRenderingDefault(False) 17 | Application.Run(New ChartForm()) 18 | End Sub 19 | End Class -------------------------------------------------------------------------------- /library.properties: -------------------------------------------------------------------------------- 1 | name=CmdMessenger 2 | version=4.0.0 3 | author=Thijs Elenbaas, Valeriy Kucherenko 4 | maintainer=Thijs Elenbaas 5 | sentence=A serial messaging library for the Arduino and .NET/Mono platform. 6 | paragraph=It uses serial port and Bluetooth as transport layer. To use CmdMessenger, we define a list of command identifiers, then attach callback / handler functions for received messages. PLEASE NOTE: samples require PID and optionally Adafruit_MAX31855 library to be installed. 7 | category=Communication 8 | url=http://playground.arduino.cc/Code/CmdMessenger 9 | architectures=* 10 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceive/Program.cs: -------------------------------------------------------------------------------- 1 | namespace SendAndReceive 2 | { 3 | using CommandMessenger; 4 | class Program 5 | { 6 | static void Main() 7 | { 8 | 9 | // mimics Arduino calling structure 10 | var sendAndReceive = new SendAndReceive { RunLoop = true }; 11 | ConsoleUtils.ConsoleClose += (o, i) => sendAndReceive.Exit(); 12 | sendAndReceive.Setup(); 13 | while (sendAndReceive.RunLoop) sendAndReceive.Loop(); 14 | sendAndReceive.Exit(); 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace DataLogging 5 | { 6 | static class Program 7 | { 8 | /// 9 | /// The main entry point for the application. 10 | /// Note that the main code is not in this class 11 | /// 12 | [STAThread] 13 | static void Main() 14 | { 15 | Application.EnableVisualStyles(); 16 | Application.SetCompatibleTextRenderingDefault(false); 17 | Application.Run(new ChartForm()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/Program.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Windows.Forms 3 | Imports Microsoft.VisualBasic 4 | 5 | 6 | Friend NotInheritable Class Program 7 | ''' 8 | ''' The main entry point for the application. 9 | ''' Note that the main code is not in this class 10 | ''' 11 | Private Sub New() 12 | End Sub 13 | _ 14 | Shared Sub Main() 15 | Application.EnableVisualStyles() 16 | Application.SetCompatibleTextRenderingDefault(False) 17 | Application.Run(New ChartForm()) 18 | End Sub 19 | End Class -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/CommandMessenger.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $id$ 5 | $version$ 6 | $title$ 7 | Thijs Elenbaas 8 | Thijs Elenbaas 9 | https://github.com/thijse/Arduino-CmdMessenger 10 | false 11 | $description$ 12 | 13 | 14 | Arduino Communication 15 | 16 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/systemSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using CommandMessenger; 3 | using CommandMessenger.Transport; 4 | 5 | namespace CommandMessengerTests 6 | { 7 | public class systemSettings 8 | { 9 | public String Description { get; set; } 10 | public ITransport Transport { get; set; } 11 | public float MinReceiveSpeed { get; set; } 12 | public float MinSendSpeed { get; set; } 13 | public float MinDirectSendSpeed { get; set; } 14 | public BoardType BoardType { get; set; } 15 | public int sendBufferMaxLength { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Serial/CommandMessenger.Transport.Serial.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $id$ 5 | $version$ 6 | $title$ 7 | Thijs Elenbaas 8 | Thijs Elenbaas 9 | https://github.com/thijse/Arduino-CmdMessenger 10 | false 11 | $description$ 12 | 13 | 14 | Arduino Communication Serial 15 | 16 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Network/CommandMessenger.Transport.Network.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $id$ 5 | $version$ 6 | $title$ 7 | Thijs Elenbaas 8 | Thijs Elenbaas 9 | https://github.com/thijse/Arduino-CmdMessenger 10 | false 11 | $description$ 12 | 13 | 14 | Arduino Communication Network 15 | 16 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Bluetooth/CommandMessenger.Transport.Bluetooth.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $id$ 5 | $version$ 6 | $title$ 7 | Thijs Elenbaas 8 | Thijs Elenbaas 9 | https://github.com/thijse/Arduino-CmdMessenger 10 | false 11 | $description$ 12 | 13 | 14 | Arduino Communication Bluetooth 15 | 16 | -------------------------------------------------------------------------------- /utility/DoEvery.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************************** 2 | * 3 | * This Code is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. 4 | **********************************************************************************************/ 5 | 6 | #include 7 | 8 | DoEvery::DoEvery(long _period) { 9 | period=_period; 10 | lastTime=0; 11 | } 12 | 13 | void DoEvery::reset() { 14 | lastTime=millis(); 15 | } 16 | 17 | bool DoEvery::check() { 18 | if (millis()-lastTime > period) { 19 | lastTime+=period; 20 | return true; 21 | } else { 22 | return false; 23 | } 24 | } 25 | 26 | bool DoEvery::before(double threshTime) { 27 | if (threshTime>=period) return true; 28 | if (millis()-lastTime < threshTime) { 29 | return true; 30 | } else { 31 | return false; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CmdMessenger", 3 | "keywords": "protocol, message, communication, serial", 4 | "description": "A serial messaging library for the Arduino and .NET/Mono platform. ", 5 | "version": "4.1.0", 6 | "authors": 7 | [ 8 | { 9 | "name": "Thijs Elenbaas", 10 | "url": "http://thijs.elenbaas.net/about" 11 | }, 12 | { 13 | "name": "Valeriy Kucherenko", 14 | "url": "https://github.com/valkuc" 15 | } 16 | ], 17 | "repository": 18 | { 19 | "type": "git", 20 | "url": "https://github.com/thijse/Arduino-CmdMessenger.git" 21 | }, 22 | "dependencies": 23 | [ 24 | { 25 | "name": "PID", 26 | "frameworks": "arduino" 27 | }, 28 | { 29 | "name": "Adafruit-MAX31855", 30 | "frameworks": "arduino" 31 | } 32 | ], 33 | "frameworks": "arduino", 34 | "platforms": "*" 35 | } 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /extras/CSharp/build.bat: -------------------------------------------------------------------------------- 1 | CLS 2 | 3 | 'Just clean and build all projects here, even the examples just to simplify things 4 | msbuild CmdMessenger.sln /t:clean /p:Configuration=Release 5 | msbuild CmdMessenger.sln /t:Build /p:Configuration=Release 6 | 7 | 'Create nuget packages 8 | nuget pack ./CommandMessenger/CommandMessenger.csproj -IncludeReferencedProjects -Prop Configuration=Release -Prop Platform=AnyCPU -Symbols 9 | nuget pack ./CommandMessenger.Transport.Bluetooth/CommandMessenger.Transport.Bluetooth.csproj -IncludeReferencedProjects -Prop Configuration=Release -Prop Platform=AnyCPU -Symbols 10 | nuget pack ./CommandMessenger.Transport.Network/CommandMessenger.Transport.Network.csproj -IncludeReferencedProjects -Prop Configuration=Release -Prop Platform=AnyCPU -Symbols 11 | nuget pack ./CommandMessenger.Transport.Serial/CommandMessenger.Transport.Serial.csproj -IncludeReferencedProjects -Prop Configuration=Release -Prop Platform=AnyCPU -Symbols 12 | 13 | 14 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceive/ConsoleUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace CommandMessenger 5 | { 6 | public static class ConsoleUtils 7 | { 8 | public static EventHandler ConsoleClose = delegate {}; 9 | 10 | static ConsoleUtils() 11 | { 12 | _handler = ConsoleEventCallback; 13 | SetConsoleCtrlHandler(_handler, true); 14 | } 15 | 16 | static bool ConsoleEventCallback(int eventType) 17 | { 18 | if (eventType == 2) 19 | { 20 | ConsoleClose(null, EventArgs.Empty); 21 | } 22 | ConsoleClose= null; 23 | _handler = null; 24 | return false; 25 | } 26 | 27 | static ConsoleEventDelegate _handler; // Keeps it from getting garbage collected 28 | 29 | private delegate bool ConsoleEventDelegate(int eventType); 30 | [DllImport("kernel32.dll", SetLastError = true)] 31 | private static extern bool SetConsoleCtrlHandler(ConsoleEventDelegate callback, bool add); 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Serial/ISerialConnectionStorer.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2014 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2014 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Transport.Serial 21 | { 22 | public interface ISerialConnectionStorer 23 | { 24 | void StoreSettings(SerialConnectionManagerSettings serialConnectionManagerSettings); 25 | SerialConnectionManagerSettings RetrieveSettings(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/CommandEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2014 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2014 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | using System; 20 | 21 | namespace CommandMessenger 22 | { 23 | public sealed class CommandEventArgs : EventArgs 24 | { 25 | public Command Command { get; private set; } 26 | 27 | public CommandEventArgs(Command command) 28 | { 29 | Command = command; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/LoggingView.Designer.vb: -------------------------------------------------------------------------------- 1 | Imports Microsoft.VisualBasic 2 | Imports System 3 | Namespace Tools 4 | Partial Public Class LoggingView 5 | ''' 6 | ''' Required designer variable. 7 | ''' 8 | Private components As System.ComponentModel.IContainer = Nothing 9 | 10 | ''' 11 | ''' Clean up any resources being used. 12 | ''' 13 | ''' true if managed resources should be disposed; otherwise, false. 14 | Protected Overrides Sub Dispose(ByVal disposing As Boolean) 15 | If disposing AndAlso (components IsNot Nothing) Then 16 | components.Dispose() 17 | End If 18 | MyBase.Dispose(disposing) 19 | End Sub 20 | 21 | #Region "Component Designer generated code" 22 | 23 | ''' 24 | ''' Required method for Designer support - do not modify 25 | ''' the contents of this method with the code editor. 26 | ''' 27 | Private Sub InitializeComponent() 28 | components = New System.ComponentModel.Container() 29 | 'this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 30 | End Sub 31 | 32 | #End Region 33 | End Class 34 | End Namespace 35 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Bluetooth/IBluetoothConnectionStorer.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2014 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2014 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Transport.Bluetooth 21 | { 22 | public interface IBluetoothConnectionStorer 23 | { 24 | void StoreSettings(BluetoothConnectionManagerSettings bluetoothConnectionManagerSettings); 25 | BluetoothConnectionManagerSettings RetrieveSettings(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/Tests/Random.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CommandMessengerTests 4 | { 5 | public class Random 6 | { 7 | private static readonly System.Random RandomNumber = new System.Random(); 8 | 9 | public static float RandomizeFloat(float min, float max) 10 | { 11 | return (float)(min + ((max - min) *RandomNumber.NextDouble())); 12 | } 13 | 14 | public static double RandomizeDouble(double min, double max) 15 | { 16 | var random = RandomNumber.NextDouble(); 17 | return (double)(min + max * random - min * random); 18 | } 19 | 20 | 21 | public static Int16 RandomizeInt16(Int16 min, Int16 max) 22 | { 23 | return (Int16)(min + (((Double)max - (Double)min) *RandomNumber.NextDouble())); 24 | } 25 | 26 | public static Int32 RandomizeInt32(Int32 min, Int32 max) 27 | { 28 | return (Int32)(min + (((Double)max - (Double)min) *RandomNumber.NextDouble())); 29 | } 30 | 31 | public static bool RandomizeBool() 32 | { 33 | return (RandomNumber.NextDouble() > 0.5); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace DataLogging.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace DataLogging.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.0 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ArduinoController.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/ConsoleUtils.vb: -------------------------------------------------------------------------------- 1 | Imports Microsoft.VisualBasic 2 | Imports System 3 | Imports System.Runtime.InteropServices 4 | 5 | Namespace CommandMessenger 6 | Public Class ConsoleUtils 7 | Public Shared ConsoleClose As EventHandler = AddressOf AnonymousMethod1 8 | 9 | Shared Sub New() 10 | _handler = AddressOf ConsoleEventCallback 11 | SetConsoleCtrlHandler(_handler, True) 12 | End Sub 13 | Private Sub AnonymousMethod1(ByVal sender As Object, ByVal e As System.EventArgs) 14 | End Sub 15 | 16 | Private Shared Function ConsoleEventCallback(ByVal eventType As Integer) As Boolean 17 | If eventType = 2 Then 18 | ConsoleClose(Nothing, EventArgs.Empty) 19 | End If 20 | ConsoleClose= Nothing 21 | _handler = Nothing 22 | Return False 23 | End Function 24 | 25 | Private Shared _handler As ConsoleEventDelegate ' Keeps it from getting garbage collected 26 | 27 | Private Delegate Function ConsoleEventDelegate(ByVal eventType As Integer) As Boolean 28 | _ 29 | Private Shared Function SetConsoleCtrlHandler(ByVal callback As ConsoleEventDelegate, ByVal add As Boolean) As Boolean 30 | End Function 31 | 32 | End Class 33 | End Namespace 34 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Serialport/ISerialConnectionStorer.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2014 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2014 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger.Serialport 24 | Public Interface ISerialConnectionStorer 25 | Sub StoreSettings(ByVal serialConnectionManagerSettings As SerialConnectionManagerSettings) 26 | Function RetrieveSettings() As SerialConnectionManagerSettings 27 | End Interface 28 | End Namespace 29 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Bluetooth/IBluetoothConnectionStorer.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2014 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2014 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger.Bluetooth 24 | Public Interface IBluetoothConnectionStorer 25 | Sub StoreSettings(ByVal bluetoothConnectionManagerSettings As BluetoothConnectionManagerSettings) 26 | Function RetrieveSettings() As BluetoothConnectionManagerSettings 27 | End Interface 28 | End Namespace 29 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | -------------- 3 | Copyright (c) 2013, 2014, 2015, 2016, 2017 4 | Thijs Elenbaas, Valeriy Kucherenko, 5 | Dreamcat4, Neil Dudman, Thomas Ouellet Fredericks. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining 8 | a copy of this software and associated documentation files (the 9 | "Software"), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/LoggingView.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Tools 2 | { 3 | partial class LoggingView 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | components = new System.ComponentModel.Container(); 32 | //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 33 | } 34 | 35 | #endregion 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/Enumerator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace CommandMessengerTests 5 | { 6 | public class Enumerator 7 | { 8 | readonly Dictionary _enumTable; 9 | private int _enumCounter; 10 | public Enumerator() 11 | { 12 | _enumTable = new Dictionary(); 13 | _enumCounter = 0; 14 | } 15 | 16 | public void Add(string enumDescriptor) 17 | { 18 | _enumTable.Add(enumDescriptor, _enumCounter++); 19 | } 20 | 21 | public void Add(string[] enumDescriptors) 22 | { 23 | foreach (var enumDescriptor in enumDescriptors) 24 | { 25 | Add(enumDescriptor); 26 | } 27 | } 28 | 29 | public int this[string enumDescriptor] 30 | { 31 | get 32 | { 33 | if (_enumTable.ContainsKey(enumDescriptor)) 34 | { 35 | return _enumTable[enumDescriptor]; 36 | } 37 | else 38 | { 39 | throw new ArgumentException("This enum does not exist"); 40 | } 41 | } 42 | set { _enumTable[enumDescriptor] = value; } 43 | } 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | } 7 | 8 | .tabs2 { 9 | font-size: 10px; 10 | } 11 | .tabs3 { 12 | font-size: 9px; 13 | } 14 | 15 | .tablist { 16 | margin: 0; 17 | padding: 0; 18 | display: table; 19 | } 20 | 21 | .tablist li { 22 | float: left; 23 | display: table-cell; 24 | background-image: url('tab_b.png'); 25 | line-height: 36px; 26 | list-style: none; 27 | } 28 | 29 | .tablist a { 30 | display: block; 31 | padding: 0 20px; 32 | font-weight: bold; 33 | background-image:url('tab_s.png'); 34 | background-repeat:no-repeat; 35 | background-position:right; 36 | color: #283A5D; 37 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 38 | text-decoration: none; 39 | outline: none; 40 | } 41 | 42 | .tabs3 .tablist a { 43 | padding: 0 10px; 44 | } 45 | 46 | .tablist a:hover { 47 | background-image: url('tab_h.png'); 48 | background-repeat:repeat-x; 49 | color: #fff; 50 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 51 | text-decoration: none; 52 | } 53 | 54 | .tablist li.current a { 55 | background-image: url('tab_a.png'); 56 | background-repeat:repeat-x; 57 | color: #fff; 58 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | } 7 | 8 | .tabs2 { 9 | font-size: 10px; 10 | } 11 | .tabs3 { 12 | font-size: 9px; 13 | } 14 | 15 | .tablist { 16 | margin: 0; 17 | padding: 0; 18 | display: table; 19 | } 20 | 21 | .tablist li { 22 | float: left; 23 | display: table-cell; 24 | background-image: url('tab_b.png'); 25 | line-height: 36px; 26 | list-style: none; 27 | } 28 | 29 | .tablist a { 30 | display: block; 31 | padding: 0 20px; 32 | font-weight: bold; 33 | background-image:url('tab_s.png'); 34 | background-repeat:no-repeat; 35 | background-position:right; 36 | color: #283A5D; 37 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 38 | text-decoration: none; 39 | outline: none; 40 | } 41 | 42 | .tabs3 .tablist a { 43 | padding: 0 10px; 44 | } 45 | 46 | .tablist a:hover { 47 | background-image: url('tab_h.png'); 48 | background-repeat:repeat-x; 49 | color: #fff; 50 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 51 | text-decoration: none; 52 | } 53 | 54 | .tablist li.current a { 55 | background-image: url('tab_a.png'); 56 | background-repeat:repeat-x; 57 | color: #fff; 58 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Messenger 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | Messenger KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | CmdMessenger KEYWORD2 16 | printLfCr KEYWORD2 17 | attach KEYWORD2 18 | feedinSerialData KEYWORD2 19 | next KEYWORD2 20 | available KEYWORD2 21 | isArgOk KEYWORD2 22 | commandID KEYWORD2 23 | sendCmd KEYWORD2 24 | sendBinCmd KEYWORD2 25 | sendCmdStart KEYWORD2 26 | sendCmdEscArg KEYWORD2 27 | sendCmdfArg KEYWORD2 28 | sendCmdEnd KEYWORD2 29 | sendCmdArg KEYWORD2 30 | sendCmdSciArg KEYWORD2 31 | sendCmdBinArg KEYWORD2 32 | readBoolArg KEYWORD2 33 | readInt16Arg KEYWORD2 34 | readInt32Arg KEYWORD2 35 | readCharArg KEYWORD2 36 | readFloatArg KEYWORD2 37 | readDoubleArg KEYWORD2 38 | readStringArg KEYWORD2 39 | copyStringArg KEYWORD2 40 | compareStringArg KEYWORD2 41 | readBinArg KEYWORD2 42 | unescape KEYWORD2 43 | printSci KEYWORD2 44 | 45 | 46 | ####################################### 47 | # Instances (KEYWORD2) 48 | ####################################### 49 | 50 | ####################################### 51 | # Constants (LITERAL1) 52 | ####################################### 53 | 54 | -------------------------------------------------------------------------------- /extras/VisualBasic/Receive/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceive/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | before_install: 3 | - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16" 4 | - sleep 3 5 | - export DISPLAY=:1.0 6 | - wget http://downloads.arduino.cc/arduino-1.8.1-linux64.tar.xz 7 | - tar xf arduino-1.8.1-linux64.tar.xz 8 | - sudo mv arduino-1.8.1 /usr/local/share/arduino 9 | - sudo ln -s /usr/local/share/arduino/arduino /usr/local/bin/arduino 10 | install: 11 | - ln -s $PWD /usr/local/share/arduino/libraries/CmdMessenger 12 | script: 13 | - arduino --verify --board arduino:avr:uno $PWD/examples/ArduinoController/ArduinoController.ino 14 | - arduino --verify --board arduino:avr:uno $PWD/examples/CmdMessengerTest/CmdMessengerTest.ino 15 | - arduino --verify --board arduino:avr:uno $PWD/examples/ConsoleShell/ConsoleShell.ino 16 | - arduino --verify --board arduino:avr:uno $PWD/examples/DataLogging/DataLogging.ino 17 | - arduino --verify --board arduino:avr:uno $PWD/examples/Receive/Receive.ino 18 | - arduino --verify --board arduino:avr:uno $PWD/examples/SendAndReceive/SendAndReceive.ino 19 | - arduino --verify --board arduino:avr:uno $PWD/examples/SendAndReceiveArguments/SendAndReceiveArguments.ino 20 | - arduino --verify --board arduino:avr:uno $PWD/examples/SendAndReceiveBinaryArguments/SendAndReceiveBinaryArguments.ino 21 | notifications: 22 | email: 23 | on_success: change 24 | on_failure: change 25 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveArguments/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/SendAndReceiveBinaryArguments/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/TransportLayer/ITransport.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger.TransportLayer 24 | ''' Interface for transport layer. 25 | Public Interface ITransport 26 | Inherits IDisposable 27 | Function BytesInBuffer() As Integer 28 | Function Read() As Byte() 29 | Sub Poll() 30 | Function Connect() As Boolean 31 | Function Disconnect() As Boolean 32 | Function IsConnected() As Boolean 33 | Sub StartListening() 34 | Sub StopListening() 35 | Sub Write(ByVal buffer() As Byte) 36 | Event NewDataReceived As EventHandler 37 | End Interface 38 | End Namespace 39 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/NewLineEvent.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2014 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2014 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | Imports Microsoft.VisualBasic 21 | Imports System 22 | 23 | Namespace CommandMessenger 24 | Public Class NewLineEvent 25 | Public Delegate Sub NewLineHandler(ByVal sender As Object, ByVal e As NewLineArgs) 26 | 27 | Public Class NewLineArgs 28 | Inherits EventArgs 29 | Private privateCommand As Command 30 | Public Property Command() As Command 31 | Get 32 | Return privateCommand 33 | End Get 34 | Private Set(ByVal value As Command) 35 | privateCommand = value 36 | End Set 37 | End Property 38 | Public Sub New(ByVal command As Command) 39 | Command = command 40 | End Sub 41 | End Class 42 | End Class 43 | End Namespace 44 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/GeneralStrategy.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Queue 21 | { 22 | /// Base of general strategy. 23 | public class GeneralStrategy 24 | { 25 | /// Gets or sets the command queue. 26 | /// A Queue of commands. 27 | public ListQueue CommandQueue { get; set; } 28 | 29 | /// GenerAdd command (strategy) to command queue. 30 | public virtual void OnEnqueue() 31 | { 32 | } 33 | 34 | /// Remove this command (strategy) from command queue. 35 | public virtual void OnDequeue() 36 | { 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CmdMessenger")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("64af8ae8-9076-46b5-97aa-fe9c9a0c8b40")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("3.7.1.0")] 35 | [assembly: AssemblyFileVersion("3.7.1.0")] -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("DataLogging")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("7896e467-386e-471d-8856-518594d0588f")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/Receive/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ArduinoReceive")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c1610272-4b9d-445f-ac2c-7674ca40dbf2")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceive/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ArduinoReceive")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c1610272-4b9d-445f-ac2c-7674ca40dbf2")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/SimpleWatchdog/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("8-SimpleWatchdog")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c71c97ae-2491-4291-aa9e-d5c63b52c4e1")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/TemperatureControl/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("DataLogging")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("7896e467-386e-471d-8856-518594d0588f")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/SimpleBluetooth/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("8-SimpleWatchdog")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c71c97ae-2491-4291-aa9e-d5c63b52c4e1")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("6-ArduinoController")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("a231b913-d766-4279-802d-33591474da50")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessengerTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommandMessengerTests")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("3e948731-3f90-4c91-8e5b-574879664de1")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveArguments/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SendAndReceiveArgument")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c1610272-4b9d-445f-ac2c-7674ca40dbf2")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/SendAndReceiveBinaryArguments/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SendAndReceiveArgument")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("c1610272-4b9d-445f-ac2c-7674ca40dbf2")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/TopCommandStrategy.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Queue 21 | { 22 | /// Top strategy. The command is added to the front of the queue 23 | public class TopCommandStrategy : CommandStrategy 24 | { 25 | /// Top strategy. The command is added to the front of the queue 26 | /// The command to add to the front of the queue. 27 | public TopCommandStrategy(Command command) : base(command) 28 | { 29 | } 30 | 31 | /// Add command (strategy) to command queue. 32 | public override void Enqueue() 33 | { 34 | //Console.WriteLine("Enqueue {0}", CommandQueue.Count); 35 | CommandQueue.EnqueueFront(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Network/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommandMessenger.Transport.Network")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("8933d9ef-cfcc-49ce-8053-ec002aee8da4")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("3.7.0.0")] 35 | [assembly: AssemblyFileVersion("3.7.0.0")] 36 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/TopCommandStrategy.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger 24 | ''' Top strategy. The command is added to the front of the queue 25 | Public Class TopCommandStrategy 26 | Inherits CommandStrategy 27 | ''' Top strategy. The command is added to the front of the queue 28 | ''' The command to add to the front of the queue. 29 | Public Sub New(ByVal command As Command) 30 | MyBase.New(command) 31 | End Sub 32 | 33 | ''' Add command (strategy) to command queue. 34 | Public Overrides Sub Enqueue() 35 | 'Console.WriteLine("Enqueue {0}", CommandQueue.Count); 36 | CommandQueue.EnqueueFront(Me) 37 | End Sub 38 | End Class 39 | End Namespace 40 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Serial/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommandMessenger.Transport.Serial")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("aca5bf54-8f0a-4481-b7b8-289e32d3d93a")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("3.7.0.0")] 35 | [assembly: AssemblyFileVersion("3.7.0.0")] 36 | 37 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Bluetooth/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommandMessenger-Transport-Bluetooth")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1294722c-24e4-4f83-99d1-5cec70fd5962")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("3.7.0.0")] 36 | [assembly: AssemblyFileVersion("3.7.0.0")] 37 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.IPC/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommandMessenger.Transport.Serial")] 9 | [assembly: AssemblyDescription("A messaging library for the Arduino and .NET/Mono platform")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyProduct("CmdMessenger")] 12 | [assembly: AssemblyCopyright("Copyright © Thijs Elenbaas 2013, 2014, 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("aca5bf54-8f0a-4481-b7b8-289e32d3d93a")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/DisposableObject.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | 24 | Namespace CommandMessenger 25 | Public Class DisposableObject 26 | Implements IDisposable 27 | Protected DisposeStack As New DisposeStack() 28 | Protected IsDisposed As Boolean = False 29 | 30 | Public Overridable Sub Dispose() Implements IDisposable.Dispose 31 | Dispose(True) 32 | GC.SuppressFinalize(Me) 33 | End Sub 34 | 35 | ''' 36 | ''' Remove all references and remove children 37 | ''' 38 | ''' If true, cleanup 39 | Protected Overridable Sub Dispose(ByVal disposing As Boolean) 40 | If (Not IsDisposed) Then 41 | If disposing Then 42 | DisposeStack.Dispose() 43 | DisposeStack = Nothing 44 | IsDisposed = True 45 | End If 46 | End If 47 | End Sub 48 | End Class 49 | 50 | 51 | End Namespace 52 | -------------------------------------------------------------------------------- /utility/HeaterSim.h: -------------------------------------------------------------------------------- 1 | /* 2 | HeaterSim.cpp - Simple heater simulation library 3 | Copyright (c) 2014 Thijs Elenbaas. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef HEATERSIM_h 21 | #define HEATERSIM_h 22 | 23 | 24 | #if ARDUINO >= 100 25 | #include 26 | #else 27 | #include 28 | #endif 29 | #include 30 | 31 | 32 | class HeaterSim 33 | { 34 | private: 35 | float _boilerOn; 36 | float _boilerTemp; 37 | float _delayedBoilerTemp; 38 | float _ambientTemp; 39 | float _deltaTime; 40 | unsigned long _lastTime; 41 | unsigned long _deltams; 42 | float _halfTimeCooling; 43 | float _responseTime; 44 | float _heaterSpeed; 45 | void CalcTemperature(); 46 | void CalcDelayedTemperature(); 47 | 48 | public: 49 | HeaterSim(float ambientTemp = 20); 50 | void SetAmbientTemp(float ambientTemp); 51 | void SetBoilerTemp(float boilerTemp); 52 | float GetTemp(); 53 | void SetHeaterState(bool boilerOn); 54 | }; 55 | 56 | extern HeaterSim Boiler; 57 | 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/StringUtils.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System.Text; 21 | 22 | namespace CommandMessenger 23 | { 24 | /// String utilities. 25 | public class StringUtils 26 | { 27 | /// Convert string from one codepage to another. 28 | /// The string. 29 | /// input encoding codepage. 30 | /// output encoding codepage. 31 | /// the encoded string. 32 | static public string ConvertEncoding(string input, Encoding fromEncoding, Encoding toEncoding) 33 | { 34 | var byteArray = fromEncoding.GetBytes(input); 35 | var asciiArray = Encoding.Convert(fromEncoding, toEncoding, byteArray); 36 | var finalString = toEncoding.GetString(asciiArray); 37 | return finalString; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/GeneralStrategy.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger 24 | ''' Base of general strategy. 25 | Public Class GeneralStrategy 26 | ''' Gets or sets the command queue. 27 | ''' A Queue of commands. 28 | Private privateCommandQueue As ListQueue 29 | Public Property CommandQueue() As ListQueue(Of CommandStrategy) 30 | Get 31 | Return privateCommandQueue 32 | End Get 33 | Set(ByVal value As ListQueue) 34 | privateCommandQueue = value 35 | End Set 36 | End Property 37 | 38 | ''' GenerAdd command (strategy) to command queue. 39 | Public Overridable Sub OnEnqueue() 40 | End Sub 41 | 42 | ''' Remove this command (strategy) from command queue. 43 | Public Overridable Sub OnDequeue() 44 | End Sub 45 | End Class 46 | End Namespace 47 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/StringUtils.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System.Text 23 | 24 | Namespace CommandMessenger 25 | ''' String utilities. 26 | Public Class StringUtils 27 | ''' Convert string from one codepage to another. 28 | ''' The string. 29 | ''' input encoding codepage. 30 | ''' output encoding codepage. 31 | ''' the encoded string. 32 | Public Shared Function ConvertEncoding(ByVal input As String, ByVal fromEncoding As Encoding, ByVal toEncoding As Encoding) As String 33 | Dim byteArray = fromEncoding.GetBytes(input) 34 | Dim asciiArray = Encoding.Convert(fromEncoding, toEncoding, byteArray) 35 | Dim finalString = toEncoding.GetString(asciiArray) 36 | Return finalString 37 | End Function 38 | End Class 39 | End Namespace 40 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Main Page 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 |
47 |
48 |
49 |
CmdMessenger Documentation
50 |
51 |
52 |
53 | 54 | 55 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/CollapseCommandStrategy.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger 24 | ''' Collapse command strategy. 25 | ''' The purpose of the strategy is to avoid duplicates of a certain command on the queue 26 | ''' to avoid lagging 27 | Public Class CollapseCommandStrategy 28 | Inherits CommandStrategy 29 | ''' Collapse strategy. 30 | ''' The command that will be collapsed on the queue. 31 | Public Sub New(ByVal command As Command) 32 | MyBase.New(command) 33 | End Sub 34 | 35 | ''' Add command (strategy) to command queue. 36 | Public Overrides Sub Enqueue() 37 | ' find if there already is a command with the same CmdId 38 | Dim index = CommandQueue.FindIndex(Function(strategy) strategy.Command.CmdId = Command.CmdId) 39 | If index < 0 Then 40 | ' if not, add to the back of the queue 41 | CommandQueue.Enqueue(Me) 42 | Else 43 | ' if on the queue, replace with new command 44 | CommandQueue(index) = Me 45 | End If 46 | End Sub 47 | End Class 48 | End Namespace 49 | -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Main Page 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a messaging library for the Arduino Platform. It has uses the serial port as its transport layer
29 |
36 |
37 | 38 | 39 | 46 |
47 |
48 |
49 |
CmdMessenger Documentation
50 |
51 |
52 |
53 | 54 | 55 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Network/TcpConnectionManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CommandMessenger.Transport.Network 4 | { 5 | public class TcpConnectionManager : ConnectionManager 6 | { 7 | private readonly TcpTransport _transport; 8 | private readonly object _tryConnectionLock = new object(); 9 | 10 | public TcpConnectionManager(TcpTransport tcpTransport, CmdMessenger cmdMessenger, int identifyCommandId = 0, string uniqueDeviceId = null) 11 | : base(cmdMessenger, identifyCommandId, uniqueDeviceId) 12 | { 13 | DeviceScanEnabled = false; 14 | 15 | if (tcpTransport == null) 16 | throw new ArgumentNullException("tcpTransport", "Transport is null."); 17 | 18 | _transport = tcpTransport; 19 | 20 | ReadSettings(); 21 | } 22 | 23 | protected override void DoWorkConnect() 24 | { 25 | lock (_tryConnectionLock) 26 | { 27 | Connected = false; 28 | 29 | if (_transport.Connect()) 30 | { 31 | int optimalTimeout = _transport.Timeout + 250; 32 | DeviceStatus status = ArduinoAvailable(optimalTimeout); 33 | 34 | Connected = (status == DeviceStatus.Available); 35 | 36 | if (Connected) 37 | { 38 | Log(1, string.Format("Connected to {0}:{1}.", _transport.Host, _transport.Port)); 39 | StoreSettings(); 40 | 41 | ConnectionFoundEvent(); 42 | } 43 | else 44 | { 45 | _transport.Disconnect(); 46 | } 47 | } 48 | } 49 | } 50 | 51 | protected override void DoWorkScan() 52 | { 53 | throw new NotSupportedException("ScanMode not supported by TcpConnectionManager."); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/ListQueue.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System.Collections.Generic 23 | 24 | Namespace CommandMessenger 25 | ''' Queue class. 26 | ''' Type of object to queue. 27 | Public Class ListQueue(Of T) 28 | Inherits List(Of T) 29 | ''' Adds item to front of queue. 30 | ''' The item to queue. 31 | Public Sub EnqueueFront(ByVal item As T) 32 | Insert(Count, item) 33 | End Sub 34 | 35 | ''' Adds item to back of queue. 36 | ''' The item to queue. 37 | Public Sub Enqueue(ByVal item As T) 38 | Add(item) 39 | End Sub 40 | 41 | ''' fetches item from front of queue. 42 | ''' The item to dequeue. 43 | Public Function Dequeue() As T 44 | Dim t = MyBase.Item(0) 45 | RemoveAt(0) 46 | Return t 47 | End Function 48 | 49 | ''' look at item at front of queue without removing it from the queue. 50 | ''' The item to peek at. 51 | Public Function Peek() As T 52 | Return MyBase.Item(0) 53 | End Function 54 | 55 | End Class 56 | End Namespace 57 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/CommandStrategy.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Queue 21 | { 22 | /// Base command strategy. 23 | public class CommandStrategy 24 | { 25 | /// Base command strategy. 26 | /// The command to be wrapped in a strategy. 27 | public CommandStrategy(Command command) 28 | { 29 | Command = command; 30 | } 31 | 32 | /// Gets or sets the command queue. 33 | /// A Queue of commands. 34 | public ListQueue CommandQueue { get; set; } 35 | 36 | /// Gets or sets the command. 37 | /// The command wrapped in the strategy. 38 | public Command Command { get; private set; } 39 | 40 | /// Add command (strategy) to command queue. 41 | public virtual void Enqueue() 42 | { 43 | CommandQueue.Enqueue(this); 44 | } 45 | 46 | /// Remove this command (strategy) from command queue. 47 | public virtual void DeQueue() 48 | { 49 | CommandQueue.Remove(this); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Transport/ITransport.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System; 21 | 22 | namespace CommandMessenger.Transport 23 | { 24 | /// Interface for transport layer. 25 | public interface ITransport: IDisposable 26 | { 27 | /// 28 | /// Connect transport 29 | /// 30 | /// 31 | bool Connect(); 32 | 33 | /// 34 | /// Disconnect transport 35 | /// 36 | /// 37 | bool Disconnect(); 38 | 39 | /// 40 | /// Returns connection status 41 | /// 42 | /// true when connected 43 | bool IsConnected(); 44 | 45 | /// 46 | /// Bytes read over transport 47 | /// 48 | /// 49 | byte[] Read(); 50 | 51 | /// 52 | /// Write bytes over transport 53 | /// 54 | /// 55 | void Write(byte[] buffer); 56 | 57 | /// 58 | /// Bytes have been received event. 59 | /// 60 | event EventHandler DataReceived; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/CollapseCommandStrategy.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Queue 21 | { 22 | /// Collapse command strategy. 23 | /// The purpose of the strategy is to avoid duplicates of a certain command on the queue 24 | /// to avoid lagging 25 | public class CollapseCommandStrategy : CommandStrategy 26 | { 27 | /// Collapse strategy. 28 | /// The command that will be collapsed on the queue. 29 | public CollapseCommandStrategy(Command command) : base(command) 30 | {} 31 | 32 | /// Add command (strategy) to command queue. 33 | public override void Enqueue() 34 | { 35 | // find if there already is a command with the same CmdId 36 | var index = CommandQueue.FindIndex(strategy => strategy.Command.CmdId == Command.CmdId); 37 | if (index < 0) 38 | { 39 | // if not, add to the back of the queue 40 | CommandQueue.Enqueue(this); 41 | } 42 | else 43 | { 44 | // if on the queue, replace with new command 45 | CommandQueue[index] = this; 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/TimeUtils.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System; 21 | 22 | namespace CommandMessenger 23 | { 24 | /// Class to get a timestamp 25 | public static class TimeUtils 26 | { 27 | public static readonly DateTime Jan1St1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); // 1 January 1970 28 | 29 | /// Gets the milliseconds since 1 Jan 1970. 30 | /// The milliseconds since 1 Jan 1970. 31 | public static long Millis { get { return (long)((DateTime.Now.ToUniversalTime() - Jan1St1970).TotalMilliseconds); } } 32 | 33 | /// Gets the seconds since 1 Jan 1970. 34 | /// The seconds since 1 Jan 1970. 35 | public static long Seconds { get { return (long)((DateTime.Now.ToUniversalTime() - Jan1St1970).TotalSeconds); } } 36 | 37 | // Returns if it has been more than interval (in ms) ago. Used for periodic actions 38 | public static bool HasExpired(ref long prevTime, long interval) 39 | { 40 | var millis = Millis; 41 | if (millis - prevTime > interval) 42 | { 43 | prevTime = millis; 44 | return true; 45 | } 46 | return false; 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/ListQueue.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System.Collections.Generic; 21 | 22 | namespace CommandMessenger.Queue 23 | { 24 | /// Queue class. 25 | /// Type of object to queue. 26 | public class ListQueue : List 27 | { 28 | /// Adds item to front of queue. 29 | /// The item to queue. 30 | public void EnqueueFront(T item) 31 | { 32 | Insert(Count, item); 33 | } 34 | 35 | /// Adds item to back of queue. 36 | /// The item to queue. 37 | public void Enqueue(T item) 38 | { 39 | Add(item); 40 | } 41 | 42 | /// fetches item from front of queue. 43 | /// The item to dequeue. 44 | public T Dequeue() 45 | { 46 | var t = base[0]; 47 | RemoveAt(0); 48 | return t; 49 | } 50 | 51 | /// look at item at front of queue without removing it from the queue. 52 | /// The item to peek at. 53 | public T Peek() 54 | { 55 | return base[0]; 56 | } 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/ChartForm.Designer.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports Microsoft.VisualBasic 3 | 4 | Partial Public Class ChartForm 5 | ''' 6 | ''' Required designer variable. 7 | ''' 8 | Private components As System.ComponentModel.IContainer = Nothing 9 | 10 | 11 | #Region "Windows Form Designer generated code" 12 | 13 | ''' 14 | ''' Required method for Designer support - do not modify 15 | ''' the contents of this method with the code editor. 16 | ''' 17 | Private Sub InitializeComponent() 18 | Me.components = New System.ComponentModel.Container() 19 | Me.chartControl = New ZedGraph.ZedGraphControl() 20 | Me.SuspendLayout() 21 | ' 22 | ' chartControl 23 | ' 24 | Me.chartControl.Anchor = (CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) Or System.Windows.Forms.AnchorStyles.Left) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)) 25 | Me.chartControl.IsAntiAlias = True 26 | Me.chartControl.Location = New System.Drawing.Point(12, 12) 27 | Me.chartControl.Name = "chartControl" 28 | Me.chartControl.ScrollGrace = 0.0R 29 | Me.chartControl.ScrollMaxX = 0.0R 30 | Me.chartControl.ScrollMaxY = 0.0R 31 | Me.chartControl.ScrollMaxY2 = 0.0R 32 | Me.chartControl.ScrollMinX = 0.0R 33 | Me.chartControl.ScrollMinY = 0.0R 34 | Me.chartControl.ScrollMinY2 = 0.0R 35 | Me.chartControl.Size = New System.Drawing.Size(521, 442) 36 | Me.chartControl.TabIndex = 0 37 | ' 38 | ' ChartForm 39 | ' 40 | Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0F, 13.0F) 41 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 42 | Me.ClientSize = New System.Drawing.Size(545, 466) 43 | Me.Controls.Add(Me.chartControl) 44 | Me.Name = "ChartForm" 45 | Me.Text = "Data Logging and Charting" 46 | Me.ResumeLayout(False) 47 | 48 | End Sub 49 | 50 | #End Region 51 | 52 | Public chartControl As ZedGraph.ZedGraphControl 53 | End Class -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/TimeUtils.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | 24 | Namespace CommandMessenger 25 | ''' Class to get a timestamp 26 | Public NotInheritable Class TimeUtils 27 | Public Shared ReadOnly Jan1St1970 As New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc) ' 1 January 1970 28 | 29 | ''' Gets the milliseconds since 1 Jan 1970. 30 | ''' The milliseconds since 1 Jan 1970. 31 | Private Sub New() 32 | End Sub 33 | Public Shared ReadOnly Property Millis() As Long 34 | Get 35 | Return CLng(Fix((DateTime.Now.ToUniversalTime() - Jan1St1970).TotalMilliseconds)) 36 | End Get 37 | End Property 38 | 39 | ''' Gets the seconds since 1 Jan 1970. 40 | ''' The seconds since 1 Jan 1970. 41 | Public Shared ReadOnly Property Seconds() As Long 42 | Get 43 | Return CLng(Fix((DateTime.Now.ToUniversalTime() - Jan1St1970).TotalSeconds)) 44 | End Get 45 | End Property 46 | 47 | ' Returns if it has been more than interval (in ms) ago. Used for periodic actions 48 | Public Shared Function HasExpired(ByRef prevTime As Long, ByVal interval As Long) As Boolean 49 | Dim millis = TimeUtils.Millis 50 | If millis - prevTime > interval Then 51 | prevTime = millis 52 | Return True 53 | End If 54 | Return False 55 | End Function 56 | End Class 57 | End Namespace -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/StructSerializer.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System.Runtime.InteropServices 23 | 24 | Namespace CommandMessenger 25 | ''' Helper object to convert structures to byte arrays and vice versa. 26 | Friend Class StructSerializer 27 | ''' Convert an object to a byte array. 28 | ''' The object. 29 | ''' The byte array. 30 | Public Shared Function ObjectToByteArray(ByVal obj As Object) As Byte() 31 | Dim length = Marshal.SizeOf(obj) 32 | Dim byteArray = New Byte(length - 1){} 33 | Dim arrayPointer = Marshal.AllocHGlobal(length) 34 | Marshal.StructureToPtr(obj, arrayPointer, True) 35 | Marshal.Copy(arrayPointer, byteArray, 0, length) 36 | Marshal.FreeHGlobal(arrayPointer) 37 | Return byteArray 38 | End Function 39 | 40 | ''' Convert an byte array to an object. 41 | ''' The bytearray. 42 | ''' [in,out] The object. 43 | Public Shared Sub ByteArrayToObject(ByVal bytearray() As Byte, ByRef obj As Object) 44 | Dim length = Marshal.SizeOf(obj) 45 | Dim arrayPointer = Marshal.AllocHGlobal(length) 46 | Marshal.Copy(bytearray, 0, arrayPointer, length) 47 | obj = Marshal.PtrToStructure(arrayPointer, obj.GetType()) 48 | Marshal.FreeHGlobal(arrayPointer) 49 | End Sub 50 | End Class 51 | End Namespace 52 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/StaleGeneralStrategy.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger 24 | ''' Stale strategy. Any command older than the time-out is removed from the queue 25 | Public Class StaleGeneralStrategy 26 | Inherits GeneralStrategy 27 | Private ReadOnly _commandTimeOut As Long 28 | 29 | ''' Stale strategy. Any command older than the time-out is removed from the queue 30 | ''' The time-out for any commands on the queue. 31 | Public Sub New(ByVal commandTimeOut As Long) 32 | _commandTimeOut = commandTimeOut 33 | End Sub 34 | 35 | ''' Remove this command (strategy) from command queue. 36 | Public Overrides Sub OnDequeue() 37 | ' Remove commands that have gone stale 38 | 'Console.WriteLine("Before StaleStrategy {0}", CommandQueue.Count); 39 | Dim currentTime = TimeUtils.Millis 40 | ' Work from oldest to newest 41 | Dim item = 0 42 | Do While item < CommandQueue.Count 43 | Dim age = currentTime - CommandQueue(item).Command.TimeStamp 44 | If age > _commandTimeOut AndAlso CommandQueue.Count > 1 Then 45 | CommandQueue.RemoveAt(item) 46 | Else 47 | ' From here on commands are newer, so we can stop 48 | Exit Do 49 | End If 50 | item += 1 51 | Loop 52 | 'Console.WriteLine("After StaleStrategy {0}", CommandQueue.Count); 53 | End Sub 54 | End Class 55 | End Namespace 56 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/StructSerializer.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System.Runtime.InteropServices; 21 | 22 | namespace CommandMessenger 23 | { 24 | /// Helper object to convert structures to byte arrays and vice versa. 25 | class StructSerializer 26 | { 27 | /// Convert an object to a byte array. 28 | /// The object. 29 | /// The byte array. 30 | public static byte[] ObjectToByteArray(object obj) 31 | { 32 | var length = Marshal.SizeOf(obj); 33 | var byteArray = new byte[length]; 34 | var arrayPointer = Marshal.AllocHGlobal(length); 35 | Marshal.StructureToPtr(obj, arrayPointer, true); 36 | Marshal.Copy(arrayPointer, byteArray, 0, length); 37 | Marshal.FreeHGlobal(arrayPointer); 38 | return byteArray; 39 | } 40 | 41 | /// Convert an byte array to an object. 42 | /// The bytearray. 43 | /// [in,out] The object. 44 | public static void ByteArrayToObject(byte[] bytearray, ref object obj) 45 | { 46 | var length = Marshal.SizeOf(obj); 47 | var arrayPointer = Marshal.AllocHGlobal(length); 48 | Marshal.Copy(bytearray, 0, arrayPointer, length); 49 | obj = Marshal.PtrToStructure(arrayPointer, obj.GetType()); 50 | Marshal.FreeHGlobal(arrayPointer); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /extras/CSharp/DataLogging/ChartForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace DataLogging 2 | { 3 | partial class ChartForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | 11 | #region Windows Form Designer generated code 12 | 13 | /// 14 | /// Required method for Designer support - do not modify 15 | /// the contents of this method with the code editor. 16 | /// 17 | private void InitializeComponent() 18 | { 19 | this.components = new System.ComponentModel.Container(); 20 | this.chartControl = new ZedGraph.ZedGraphControl(); 21 | this.SuspendLayout(); 22 | // 23 | // chartControl 24 | // 25 | this.chartControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 26 | | System.Windows.Forms.AnchorStyles.Left) 27 | | System.Windows.Forms.AnchorStyles.Right))); 28 | this.chartControl.IsAntiAlias = true; 29 | this.chartControl.Location = new System.Drawing.Point(12, 12); 30 | this.chartControl.Name = "chartControl"; 31 | this.chartControl.ScrollGrace = 0D; 32 | this.chartControl.ScrollMaxX = 0D; 33 | this.chartControl.ScrollMaxY = 0D; 34 | this.chartControl.ScrollMaxY2 = 0D; 35 | this.chartControl.ScrollMinX = 0D; 36 | this.chartControl.ScrollMinY = 0D; 37 | this.chartControl.ScrollMinY2 = 0D; 38 | this.chartControl.Size = new System.Drawing.Size(521, 442); 39 | this.chartControl.TabIndex = 0; 40 | // 41 | // ChartForm 42 | // 43 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 44 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 45 | this.ClientSize = new System.Drawing.Size(545, 466); 46 | this.Controls.Add(this.chartControl); 47 | this.Name = "ChartForm"; 48 | this.Text = "Data Logging and Charting"; 49 | this.ResumeLayout(false); 50 | 51 | } 52 | 53 | #endregion 54 | 55 | public ZedGraph.ZedGraphControl chartControl; 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/files.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: File List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a messaging library for the Arduino Platform. It has uses the serial port as its transport layer
29 |
36 |
37 | 38 | 39 | 46 | 51 |
52 |
53 |
54 |
File List
55 |
56 |
57 |
Here is a list of all documented files with brief descriptions:
58 | 59 |
D:/My Documents/Github/Arduino/Own Arduino libraries/CmdMessenger/Arduino-CmdMessenger/CmdMessenger.h [code]
60 |
61 | 62 | 63 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Logger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | 5 | namespace CommandMessenger 6 | { 7 | static class Logger 8 | { 9 | private static readonly Encoding StringEncoder = Encoding.GetEncoding("ISO-8859-1"); // The string encoder 10 | private static FileStream _fileStream; 11 | 12 | static Logger() 13 | { 14 | LogFileName = null; 15 | IsEnabled = true; 16 | } 17 | 18 | static public bool IsEnabled { get; set; } 19 | static public bool IsOpen { get; private set; } 20 | static public bool DirectFlush { get; set; } 21 | 22 | /// Gets or sets the log file name. 23 | /// The logfile name . 24 | static public String LogFileName { get; private set; } 25 | 26 | 27 | static public bool Open() 28 | { 29 | return Open(LogFileName); 30 | } 31 | 32 | static public bool Open(string logFileName) 33 | { 34 | if (IsOpen && LogFileName == logFileName) return true; 35 | 36 | LogFileName = logFileName; 37 | if (IsOpen) 38 | { 39 | try 40 | { 41 | _fileStream.Close(); 42 | } 43 | catch (Exception) { } 44 | IsOpen = false; 45 | } 46 | 47 | try 48 | { 49 | _fileStream = new FileStream(logFileName, FileMode.Create, FileAccess.ReadWrite); 50 | } 51 | catch (Exception) 52 | { 53 | return false; 54 | } 55 | IsOpen = true; 56 | return true; 57 | } 58 | 59 | static public void Close() 60 | { 61 | if (!IsOpen) return; 62 | try 63 | { 64 | _fileStream.Close(); 65 | } 66 | catch (Exception) { } 67 | IsOpen = false; 68 | } 69 | 70 | static public void Log(string logString) 71 | { 72 | if (!IsEnabled || !IsOpen) return; 73 | var writeBytes = StringEncoder.GetBytes(logString); 74 | _fileStream.Write(writeBytes, 0, writeBytes.Length); 75 | if (DirectFlush) _fileStream.Flush(); 76 | } 77 | 78 | static public void LogLine(string logString) 79 | { 80 | Log(logString + Environment.NewLine); 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger/Queue/StaleGeneralStrategy.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | namespace CommandMessenger.Queue 21 | { 22 | /// Stale strategy. Any command older than the time-out is removed from the queue 23 | public class StaleGeneralStrategy : GeneralStrategy 24 | { 25 | private readonly long _commandTimeOut; 26 | 27 | /// Stale strategy. Any command older than the time-out is removed from the queue 28 | /// The time-out for any commands on the queue. 29 | public StaleGeneralStrategy(long commandTimeOut) 30 | { 31 | _commandTimeOut = commandTimeOut; 32 | } 33 | 34 | /// Remove this command (strategy) from command queue. 35 | public override void OnDequeue() 36 | { 37 | // Remove commands that have gone stale 38 | //Console.WriteLine("Before StaleStrategy {0}", CommandQueue.Count); 39 | var currentTime = TimeUtils.Millis; 40 | // Work from oldest to newest 41 | for (var item = 0; item < CommandQueue.Count; item++) 42 | { 43 | var age = currentTime - CommandQueue[item].Command.TimeStamp; 44 | if (age > _commandTimeOut && CommandQueue.Count > 1 ) 45 | { 46 | CommandQueue.RemoveAt(item); 47 | } 48 | else 49 | { 50 | // From here on commands are newer, so we can stop 51 | break; 52 | } 53 | } 54 | //Console.WriteLine("After StaleStrategy {0}", CommandQueue.Count); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/namespace_tools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Package Tools 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 51 |
52 |
53 |
54 | Classes
55 |
56 |
Package Tools
57 |
58 |
59 | 60 | 62 | 63 |

61 | Classes

class  LoggingView
64 |
65 | 66 | 67 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/annotated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Class List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a messaging library for the Arduino Platform. It has uses the serial port as its transport layer
29 |
36 |
37 | 38 | 39 | 46 | 53 |
54 |
55 |
56 |
Class List
57 |
58 |
59 |
Here are the classes, structs, unions and interfaces with brief descriptions:
60 | 61 |
CmdMessenger
62 |
63 | 64 | 65 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /extras/CSharp/ArduinoController/ControllerForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Globalization; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Windows.Forms; 10 | 11 | namespace ArduinoController 12 | { 13 | public partial class ControllerForm : Form 14 | { 15 | private readonly ArduinoController _arduinoController; 16 | private double _ledFrequency; 17 | 18 | public ControllerForm() 19 | { 20 | InitializeComponent(); 21 | _arduinoController = new ArduinoController(); 22 | _arduinoController.Setup(this); 23 | } 24 | 25 | // Update arduinoController on value checkbox checked/unchecked 26 | private void EnableLedCheckBoxCheckedChanged(object sender, EventArgs e) 27 | { 28 | _arduinoController.SetLedState(EnableLedCheckBox.Checked); 29 | } 30 | 31 | // Update value label and arduinoController on value changed using slider 32 | private void LedFrequencyTrackBarScroll(object sender, EventArgs e) 33 | { 34 | _ledFrequency = 0.4 + ((double)LedFrequencyLabelTrackBar.Value) / 25.0; 35 | LedFrequencyValue.Text = _ledFrequency.ToString(CultureInfo.InvariantCulture); 36 | _arduinoController.SetLedFrequency(_ledFrequency); 37 | } 38 | 39 | // Set ledState checkbox 40 | public void SetLedState(bool ledState) 41 | { 42 | EnableLedCheckBox.Checked = ledState; 43 | } 44 | 45 | // Set frequency slider 46 | public void SetFrequency(double ledFrequency) 47 | { 48 | LedFrequencyLabelTrackBar.Value = (int) ((ledFrequency - 0.4)*2.5); 49 | } 50 | 51 | // Update value label and arduinoController on value changed 52 | private void LedFrequencyLabelTrackBarValueChanged(object sender, EventArgs e) 53 | { 54 | LedFrequencyTrackBarScroll(sender,e); 55 | } 56 | 57 | /// 58 | /// Clean up any resources being used. 59 | /// 60 | /// true if managed resources should be disposed; otherwise, false. 61 | protected override void Dispose(bool disposing) 62 | { 63 | if (disposing ) 64 | { 65 | _arduinoController.Exit(); 66 | if (components!=null) 67 | components.Dispose(); 68 | } 69 | base.Dispose(disposing); 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/ControllerForm.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Collections.Generic 3 | Imports System.ComponentModel 4 | Imports System.Data 5 | Imports System.Drawing 6 | Imports System.Globalization 7 | Imports System.Linq 8 | Imports System.Text 9 | Imports System.Windows.Forms 10 | Imports Microsoft.VisualBasic 11 | 12 | 13 | Partial Public Class ControllerForm 14 | Inherits Form 15 | Private ReadOnly _arduinoController As ArduinoController 16 | Private _ledFrequency As Double 17 | 18 | Public Sub New() 19 | InitializeComponent() 20 | _arduinoController = New ArduinoController() 21 | _arduinoController.Setup(Me) 22 | End Sub 23 | 24 | ' Update arduinoController on value checkbox checked/unchecked 25 | Private Sub EnableLedCheckBoxCheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles EnableLedCheckBox.CheckedChanged 26 | _arduinoController.SetLedState(EnableLedCheckBox.Checked) 27 | End Sub 28 | 29 | ' Update value label and arduinoController on value changed using slider 30 | Private Sub LedFrequencyTrackBarScroll(ByVal sender As Object, ByVal e As EventArgs) Handles LedFrequencyLabelTrackBar.Scroll 31 | _ledFrequency = 0.4 + (CDbl(LedFrequencyLabelTrackBar.Value)) / 25.0 32 | LedFrequencyValue.Text = _ledFrequency.ToString(CultureInfo.InvariantCulture) 33 | _arduinoController.SetLedFrequency(_ledFrequency) 34 | End Sub 35 | 36 | ' Set ledState checkbox 37 | Public Sub SetLedState(ByVal ledState As Boolean) 38 | EnableLedCheckBox.Checked = ledState 39 | End Sub 40 | 41 | ' Set frequency slider 42 | Public Sub SetFrequency(ByVal ledFrequency As Double) 43 | LedFrequencyLabelTrackBar.Value = CInt(Fix((ledFrequency - 0.4) * 2.5)) 44 | End Sub 45 | 46 | ' Update value label and arduinoController on value changed 47 | Private Sub LedFrequencyLabelTrackBarValueChanged(ByVal sender As Object, ByVal e As EventArgs) Handles LedFrequencyLabelTrackBar.ValueChanged 48 | LedFrequencyTrackBarScroll(sender, e) 49 | End Sub 50 | 51 | ''' 52 | ''' Clean up any resources being used. 53 | ''' 54 | ''' true if managed resources should be disposed; otherwise, false. 55 | Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) 56 | If disposing Then 57 | _arduinoController.Exit() 58 | If components IsNot Nothing Then 59 | components.Dispose() 60 | End If 61 | End If 62 | MyBase.Dispose(disposing) 63 | End Sub 64 | End Class -------------------------------------------------------------------------------- /examples/SendAndReceive/SendAndReceive.ino: -------------------------------------------------------------------------------- 1 | // *** SentandReceive *** 2 | 3 | // This example expands the previous Receive example. The Arduino will now send back a status. 4 | // It adds a demonstration of how to: 5 | // - Handle received commands that do not have a function attached 6 | // - Send a command with a parameter to the PC 7 | 8 | #include // CmdMessenger 9 | 10 | // Blinking led variables 11 | bool ledState = 0; // Current state of Led 12 | const int kBlinkLed = 13; // Pin of internal Led 13 | 14 | // Attach a new CmdMessenger object to the default Serial port 15 | CmdMessenger cmdMessenger = CmdMessenger(Serial); 16 | 17 | // This is the list of recognized commands. These can be commands that can either be sent or received. 18 | // In order to receive, attach a callback function to these events 19 | enum 20 | { 21 | kSetLed , // Command to request led to be set in specific state 22 | kStatus , // Command to report status 23 | }; 24 | 25 | // Callbacks define on which received commands we take action 26 | void attachCommandCallbacks() 27 | { 28 | // Attach callback methods 29 | cmdMessenger.attach(OnUnknownCommand); 30 | cmdMessenger.attach(kSetLed, OnSetLed); 31 | } 32 | 33 | // Called when a received command has no attached function 34 | void OnUnknownCommand() 35 | { 36 | cmdMessenger.sendCmd(kStatus,"Command without attached callback"); 37 | } 38 | 39 | // Callback function that sets led on or off 40 | void OnSetLed() 41 | { 42 | // Read led state argument, interpret string as boolean 43 | ledState = cmdMessenger.readBoolArg(); 44 | // Set led 45 | digitalWrite(kBlinkLed, ledState?HIGH:LOW); 46 | // Send back status that describes the led state 47 | cmdMessenger.sendCmd(kStatus,(int)ledState); 48 | } 49 | 50 | // Setup function 51 | void setup() 52 | { 53 | // Listen on serial connection for messages from the PC 54 | Serial.begin(115200); 55 | 56 | // Adds newline to every command 57 | cmdMessenger.printLfCr(); 58 | 59 | // Attach my application's user-defined callback methods 60 | attachCommandCallbacks(); 61 | 62 | // Send the status to the PC that says the Arduino has booted 63 | // Note that this is a good debug function: it will let you also know 64 | // if your program had a bug and the arduino restarted 65 | cmdMessenger.sendCmd(kStatus,"Arduino has started!"); 66 | 67 | // set pin for blink LED 68 | pinMode(kBlinkLed, OUTPUT); 69 | } 70 | 71 | // Loop function 72 | void loop() 73 | { 74 | // Process incoming serial data, and perform callbacks 75 | cmdMessenger.feedinSerialData(); 76 | } 77 | 78 | 79 | -------------------------------------------------------------------------------- /examples/Receive/Receive.ino: -------------------------------------------------------------------------------- 1 | // *** Receive *** 2 | 3 | // This 1st example will make the PC toggle the integrated led on the arduino board. 4 | // It demonstrates how to: 5 | // - Define commands 6 | // - Set up a serial connection 7 | // - Receive a command with a parameter from the PC 8 | 9 | #include // CmdMessenger 10 | 11 | // Blinking led variables 12 | bool ledState = 0; // Current state of Led 13 | const int kBlinkLed = 13; // Pin of internal Led 14 | 15 | // Attach a new CmdMessenger object to the default Serial port 16 | CmdMessenger cmdMessenger = CmdMessenger(Serial); 17 | 18 | // We can define up to a default of 50 cmds total, including both directions (send + receive) 19 | // and including also the first 4 default command codes for the generic error handling. 20 | // If you run out of message slots, then just increase the value of MAXCALLBACKS in CmdMessenger.h 21 | 22 | // This is the list of recognized commands. These can be commands that can either be sent or received. 23 | // In order to receive, attach a callback function to these events 24 | // 25 | // Note that commands work both directions: 26 | // - All commands can be sent 27 | // - Commands that have callbacks attached can be received 28 | // 29 | // This means that both sides should have an identical command list: 30 | // both sides can either send it or receive it (or even both) 31 | 32 | // Commands 33 | enum 34 | { 35 | kSetLed, // Command to request led to be set in specific state 36 | }; 37 | 38 | // Callbacks define on which received commands we take action 39 | void attachCommandCallbacks() 40 | { 41 | cmdMessenger.attach(kSetLed, OnSetLed); 42 | } 43 | 44 | // Callback function that sets led on or off 45 | void OnSetLed() 46 | { 47 | // Read led state argument, interpret string as boolean 48 | ledState = cmdMessenger.readBoolArg(); 49 | // Set led 50 | digitalWrite(kBlinkLed, ledState?HIGH:LOW); 51 | } 52 | 53 | // Setup function 54 | void setup() 55 | { 56 | // Listen on serial connection for messages from the PC 57 | // 115200 is the max speed on Arduino Uno, Mega, with AT8u2 USB 58 | // Use 57600 for the Arduino Duemilanove and others with FTDI Serial 59 | Serial.begin(115200); 60 | 61 | // Adds newline to every command 62 | cmdMessenger.printLfCr(); 63 | 64 | // Attach my application's user-defined callback methods 65 | attachCommandCallbacks(); 66 | 67 | // set pin for blink LED 68 | pinMode(kBlinkLed, OUTPUT); 69 | } 70 | 71 | // Loop function 72 | void loop() 73 | { 74 | // Process incoming serial data, and perform callbacks 75 | cmdMessenger.feedinSerialData(); 76 | } 77 | 78 | 79 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/LoggingView.vb: -------------------------------------------------------------------------------- 1 | Imports Microsoft.VisualBasic 2 | Imports System.Drawing 3 | Imports System.Windows.Forms 4 | 5 | Namespace Tools 6 | Partial Public Class LoggingView 7 | Inherits ListBox 8 | Public Sub New() 9 | InitializeComponent() 10 | SetStyle(ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True) 11 | DrawMode = DrawMode.OwnerDrawFixed 12 | FollowLastItem = True 13 | MaxEntriesInListBox = 3000 14 | End Sub 15 | 16 | Private privateFollowLastItem As Boolean 17 | Public Property FollowLastItem() As Boolean 18 | Get 19 | Return privateFollowLastItem 20 | End Get 21 | Set(ByVal value As Boolean) 22 | privateFollowLastItem = value 23 | End Set 24 | End Property 25 | Private privateMaxEntriesInListBox As Integer 26 | Public Property MaxEntriesInListBox() As Integer 27 | Get 28 | Return privateMaxEntriesInListBox 29 | End Get 30 | Set(ByVal value As Integer) 31 | privateMaxEntriesInListBox = value 32 | End Set 33 | End Property 34 | 35 | 36 | Public Sub AddEntry(ByVal item As Object) 37 | BeginUpdate() 38 | Items.Add(item) 39 | 40 | If Items.Count > MaxEntriesInListBox Then 41 | Items.RemoveAt(0) 42 | End If 43 | 44 | If FollowLastItem Then 45 | TopIndex = Items.Count - 1 46 | End If 47 | EndUpdate() 48 | End Sub 49 | 50 | Protected Overrides Sub OnDrawItem(ByVal e As DrawItemEventArgs) 51 | If Items.Count > 0 Then 52 | e.DrawBackground() 53 | e.Graphics.DrawString(Items(e.Index).ToString(), e.Font, New SolidBrush(ForeColor), New PointF(e.Bounds.X, e.Bounds.Y)) 54 | End If 55 | MyBase.OnDrawItem(e) 56 | End Sub 57 | Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 58 | Dim iRegion = New Region(e.ClipRectangle) 59 | e.Graphics.FillRegion(New SolidBrush(BackColor), iRegion) 60 | If Items.Count > 0 Then 61 | For i As Integer = 0 To Items.Count - 1 62 | Dim irect = GetItemRectangle(i) 63 | If e.ClipRectangle.IntersectsWith(irect) Then 64 | If (SelectionMode = SelectionMode.One AndAlso SelectedIndex = i) OrElse (SelectionMode = SelectionMode.MultiSimple AndAlso SelectedIndices.Contains(i)) OrElse (SelectionMode = SelectionMode.MultiExtended AndAlso SelectedIndices.Contains(i)) Then 65 | OnDrawItem(New DrawItemEventArgs(e.Graphics, Font, irect, i, DrawItemState.Selected, ForeColor, BackColor)) 66 | Else 67 | OnDrawItem(New DrawItemEventArgs(e.Graphics, Font, irect, i, DrawItemState.Default, ForeColor, BackColor)) 68 | End If 69 | iRegion.Complement(irect) 70 | End If 71 | Next i 72 | End If 73 | MyBase.OnPaint(e) 74 | End Sub 75 | End Class 76 | End Namespace 77 | -------------------------------------------------------------------------------- /extras/VisualBasic/Receive/Receive.vb: -------------------------------------------------------------------------------- 1 | ' This 1st example will make the PC toggle the integrated led on the arduino board. 2 | ' It demonstrates how to: 3 | ' - Define commands 4 | ' - Set up a serial connection 5 | ' - Send a command with a parameter to the Arduino 6 | 7 | Imports System 8 | Imports System.Threading 9 | Imports CommandMessenger 10 | Imports CommandMessenger.Transport.Serial 11 | 12 | ' This is the list of recognized commands. These can be commands that can either be sent or received. 13 | ' In order to receive, attach a callback function to these events 14 | ' 15 | ' Default commands 16 | ' Note that commands work both directions: 17 | ' - All commands can be sent 18 | ' - Commands that have callbacks attached can be received 19 | ' 20 | ' This means that both sides should have an identical command list: 21 | ' one side can either send it or receive it (sometimes both) 22 | 23 | ' Commands 24 | Friend Enum CommandIDs 25 | SetLed ' Command to request led to be set in specific state 26 | End Enum 27 | 28 | Public Class Receive 29 | Public Property RunLoop As Boolean 30 | Private _serialTransport As SerialTransport 31 | Private _cmdMessenger As CmdMessenger 32 | Private _ledState As Boolean 33 | 34 | ' Setup function 35 | Public Sub Setup() 36 | _ledState = False 37 | 38 | ' Create Serial Port object 39 | _serialTransport = New SerialTransport() 40 | _serialTransport.CurrentSerialSettings.PortName = "COM6" ' Set com port 41 | _serialTransport.CurrentSerialSettings.BaudRate = 115200 ' Set baud rate 42 | _serialTransport.CurrentSerialSettings.DtrEnable = False ' For some boards (e.g. Sparkfun Pro Micro) DtrEnable may need to be true. 43 | 44 | ' Initialize the command messenger with the Serial Port transport layer 45 | _cmdMessenger = New CmdMessenger(_serialTransport, BoardType.Bit16) 46 | 47 | 48 | ' Attach the callbacks to the Command Messenger 49 | AttachCommandCallBacks() 50 | 51 | ' Start listening 52 | _cmdMessenger.Connect() 53 | End Sub 54 | 55 | ' Loop function 56 | Public Sub [Loop]() 57 | ' Create command 58 | Dim command = New SendCommand(CommandIDs.SetLed, _ledState) 59 | 60 | ' Send command 61 | _cmdMessenger.SendCommand(command) 62 | 63 | Console.Write("Turning led ") 64 | Console.WriteLine(If(_ledState, "on", "off")) 65 | 66 | ' Wait for 1 second and repeat 67 | Thread.Sleep(1000) 68 | _ledState = Not _ledState ' Toggle led state 69 | End Sub 70 | 71 | ' Exit function 72 | Public Sub [Exit]() 73 | ' We will never exit the application 74 | End Sub 75 | 76 | ''' Attach command call backs. 77 | Private Sub AttachCommandCallBacks() 78 | ' No callbacks are currently needed 79 | End Sub 80 | End Class -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_receive_1_1_program-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Member List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 54 | 60 |
61 |
62 |
63 |
Receive.Program Member List
64 |
65 |
66 | This is the complete list of members for Receive.Program, including all inherited members. 67 |
68 | 69 | 70 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/Queue/CommandStrategy.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Namespace CommandMessenger 24 | ''' Base command strategy. 25 | Public Class CommandStrategy 26 | ''' Base command strategy. 27 | ''' The command to be wrapped in a strategy. 28 | Public Sub New(ByVal command As Command) 29 | Command = command 30 | End Sub 31 | 32 | ''' Gets or sets the command queue. 33 | ''' A Queue of commands. 34 | Private privateCommandQueue As ListQueue 35 | Public Property CommandQueue() As ListQueue(Of CommandStrategy) 36 | Get 37 | Return privateCommandQueue 38 | End Get 39 | Set(ByVal value As ListQueue) 40 | privateCommandQueue = value 41 | End Set 42 | End Property 43 | 44 | ''' Gets or sets the run state of the thread. 45 | ''' The thread run state. 46 | Private privateThreadRunState As CommandQueue.ThreadRunStates 47 | Public Property ThreadRunState() As CommandQueue.ThreadRunStates 48 | Get 49 | Return privateThreadRunState 50 | End Get 51 | Set(ByVal value As CommandQueue.ThreadRunStates) 52 | privateThreadRunState = value 53 | End Set 54 | End Property 55 | 56 | ''' Gets or sets the command. 57 | ''' The command wrapped in the strategy. 58 | Private privateCommand As Command 59 | Public Property Command() As Command 60 | Get 61 | Return privateCommand 62 | End Get 63 | Private Set(ByVal value As Command) 64 | privateCommand = value 65 | End Set 66 | End Property 67 | 68 | ''' Add command (strategy) to command queue. 69 | Public Overridable Sub Enqueue() 70 | CommandQueue.Enqueue(Me) 71 | End Sub 72 | 73 | ''' Remove this command (strategy) from command queue. 74 | Public Overridable Sub DeQueue() 75 | CommandQueue.Remove(Me) 76 | End Sub 77 | End Class 78 | End Namespace 79 | -------------------------------------------------------------------------------- /extras/CSharp/CommandMessenger.Transport.Serial/SerialSettings.cs: -------------------------------------------------------------------------------- 1 | #region CmdMessenger - MIT - (c) 2013 Thijs Elenbaas. 2 | /* 3 | CmdMessenger - library that provides command based messaging 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | Copyright 2013 - Thijs Elenbaas 17 | */ 18 | #endregion 19 | 20 | using System.IO.Ports; 21 | 22 | namespace CommandMessenger.Transport.Serial 23 | { 24 | /// 25 | /// Class containing serial port configuration 26 | /// 27 | public class SerialSettings 28 | { 29 | #region Properties 30 | 31 | /// 32 | /// The port to use (for example: COM1 or /dev/ttyACM1). 33 | /// 34 | public string PortName { get; set; } 35 | 36 | /// 37 | /// Port baud rate. 38 | /// 39 | public int BaudRate { get; set; } 40 | 41 | /// 42 | /// One of the Parity values. 43 | /// 44 | public Parity Parity { get; set; } 45 | 46 | /// 47 | /// The data bits value. 48 | /// 49 | public int DataBits { get; set; } 50 | 51 | /// 52 | /// One of the StopBits values. 53 | /// 54 | public StopBits StopBits { get; set; } 55 | 56 | /// 57 | /// Set Data Terminal Ready. 58 | /// 59 | public bool DtrEnable { get; set; } 60 | 61 | /// 62 | /// Timeout for read and write operations to serial port. 63 | /// 64 | public int Timeout { get; set; } 65 | 66 | #endregion 67 | 68 | public SerialSettings() 69 | { 70 | StopBits = StopBits.One; 71 | DataBits = 8; 72 | Parity = Parity.None; 73 | BaudRate = 9600; 74 | PortName = string.Empty; 75 | Timeout = 500; // 500ms is default value for SerialPort 76 | } 77 | 78 | /// 79 | /// Check is serial settings configured properly. 80 | /// 81 | /// 82 | public bool IsValid() 83 | { 84 | return !string.IsNullOrEmpty(PortName) && BaudRate > 0; 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_send_and_receive_1_1_program-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Member List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 54 | 60 |
61 |
62 |
63 |
SendAndReceive.Program Member List
64 |
65 |
66 | This is the complete list of members for SendAndReceive.Program, including all inherited members. 67 |
68 | 69 | 70 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /extras/VisualBasic/DataLogging/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 27 | Friend Class Resources 28 | 29 | Private Shared resourceMan As Global.System.Resources.ResourceManager 30 | 31 | Private Shared resourceCulture As Global.System.Globalization.CultureInfo 32 | 33 | _ 34 | Friend Sub New() 35 | MyBase.New 36 | End Sub 37 | 38 | ''' 39 | ''' Returns the cached ResourceManager instance used by this class. 40 | ''' 41 | _ 42 | Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 43 | Get 44 | If Object.ReferenceEquals(resourceMan, Nothing) Then 45 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DataLogging.Resources", GetType(Resources).Assembly) 46 | resourceMan = temp 47 | End If 48 | Return resourceMan 49 | End Get 50 | End Property 51 | 52 | ''' 53 | ''' Overrides the current thread's CurrentUICulture property for all 54 | ''' resource lookups using this strongly typed resource class. 55 | ''' 56 | _ 57 | Friend Shared Property Culture() As Global.System.Globalization.CultureInfo 58 | Get 59 | Return resourceCulture 60 | End Get 61 | Set 62 | resourceCulture = value 63 | End Set 64 | End Property 65 | End Class 66 | -------------------------------------------------------------------------------- /extras/VisualBasic/ArduinoController/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 27 | Friend Class Resources 28 | 29 | Private Shared resourceMan As Global.System.Resources.ResourceManager 30 | 31 | Private Shared resourceCulture As Global.System.Globalization.CultureInfo 32 | 33 | _ 34 | Friend Sub New() 35 | MyBase.New 36 | End Sub 37 | 38 | ''' 39 | ''' Returns the cached ResourceManager instance used by this class. 40 | ''' 41 | _ 42 | Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 43 | Get 44 | If Object.ReferenceEquals(resourceMan, Nothing) Then 45 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ArduinoController.Resources", GetType(Resources).Assembly) 46 | resourceMan = temp 47 | End If 48 | Return resourceMan 49 | End Get 50 | End Property 51 | 52 | ''' 53 | ''' Overrides the current thread's CurrentUICulture property for all 54 | ''' resource lookups using this strongly typed resource class. 55 | ''' 56 | _ 57 | Friend Shared Property Culture() As Global.System.Globalization.CultureInfo 58 | Get 59 | Return resourceCulture 60 | End Get 61 | Set 62 | resourceCulture = value 63 | End Set 64 | End Property 65 | End Class 66 | -------------------------------------------------------------------------------- /extras/VisualBasic/TemperatureControl/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.0 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | 17 | 'This class was auto-generated by the StronglyTypedResourceBuilder 18 | 'class via a tool like ResGen or Visual Studio. 19 | 'To add or remove a member, edit your .ResX file then rerun ResGen 20 | 'with the /str option, or rebuild your VS project. 21 | ''' 22 | ''' A strongly-typed resource class, for looking up localized strings, etc. 23 | ''' 24 | _ 27 | Friend Class Resources 28 | 29 | Private Shared resourceMan As Global.System.Resources.ResourceManager 30 | 31 | Private Shared resourceCulture As Global.System.Globalization.CultureInfo 32 | 33 | _ 34 | Friend Sub New() 35 | MyBase.New 36 | End Sub 37 | 38 | ''' 39 | ''' Returns the cached ResourceManager instance used by this class. 40 | ''' 41 | _ 42 | Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 43 | Get 44 | If Object.ReferenceEquals(resourceMan, Nothing) Then 45 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("TemperatureControl.Resources", GetType(Resources).Assembly) 46 | resourceMan = temp 47 | End If 48 | Return resourceMan 49 | End Get 50 | End Property 51 | 52 | ''' 53 | ''' Overrides the current thread's CurrentUICulture property for all 54 | ''' resource lookups using this strongly typed resource class. 55 | ''' 56 | _ 57 | Friend Shared Property Culture() As Global.System.Globalization.CultureInfo 58 | Get 59 | Return resourceCulture 60 | End Get 61 | Set 62 | resourceCulture = value 63 | End Set 64 | End Property 65 | End Class 66 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_command_messenger_tests_1_1_program-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Member List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 54 | 60 |
61 |
62 |
63 |
CommandMessengerTests.Program Member List
64 |
65 |
66 | This is the complete list of members for CommandMessengerTests.Program, including all inherited members. 67 |
68 | 69 | 70 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_send_and_receive_arguments_1_1_program-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Member List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 54 | 60 |
61 |
62 |
63 |
SendAndReceiveArguments.Program Member List
64 |
65 |
66 | This is the complete list of members for SendAndReceiveArguments.Program, including all inherited members. 67 |
68 | 69 | 70 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /extras/documentation/Arduino/html/classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Class Index 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a messaging library for the Arduino Platform. It has uses the serial port as its transport layer
29 |
36 |
37 | 38 | 39 | 46 | 53 |
54 |
55 |
56 |
Class Index
57 |
58 |
59 | 60 | 61 | 63 | 64 | 65 | 66 |
  C  
62 |
CmdMessenger   
67 | 68 |
69 | 70 | 71 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /extras/VisualBasic/CommandMessenger/DisposeStack.vb: -------------------------------------------------------------------------------- 1 | #Region "CmdMessenger - MIT - (c) 2013 Thijs Elenbaas." 2 | ' 3 | ' CmdMessenger - library that provides command based messaging 4 | ' 5 | ' Permission is hereby granted, free of charge, to any person obtaining 6 | ' a copy of this software and associated documentation files (the 7 | ' "Software"), to deal in the Software without restriction, including 8 | ' without limitation the rights to use, copy, modify, merge, publish, 9 | ' distribute, sublicense, and/or sell copies of the Software, and to 10 | ' permit persons to whom the Software is furnished to do so, subject to 11 | ' the following conditions: 12 | ' 13 | ' The above copyright notice and this permission notice shall be 14 | ' included in all copies or substantial portions of the Software. 15 | ' 16 | ' Copyright 2013 - Thijs Elenbaas 17 | ' 18 | #End Region 19 | 20 | 21 | Imports Microsoft.VisualBasic 22 | Imports System 23 | Imports System.Collections.Generic 24 | 25 | Namespace CommandMessenger 26 | ''' 27 | ''' The dispose stack takes manages disposal of objects that are pushed onto the stack. 28 | ''' When the stack is disposed all objects are disposed (in reversed order). 29 | ''' 30 | Public NotInheritable Class DisposeStack 31 | Implements IDisposable 32 | Private ReadOnly _disposables As List(Of IDisposable) = New List(Of IDisposable)() 33 | 34 | ''' 35 | ''' Pushes a disposable object under the DisposeStack. 36 | ''' 37 | ''' Type of object pushed 38 | ''' The object pushed under the stack 39 | ''' Returns the pushed object 40 | Public Function PushFront(Of T As IDisposable)(ByVal newObject As T) As T 41 | _disposables.Insert(0, newObject) 42 | Return newObject 43 | End Function 44 | 45 | ''' 46 | ''' Pushes a disposable object under the DisposeStack. 47 | ''' 48 | ''' Type of object pushed 49 | ''' The object pushed on the stack 50 | ''' Returns the pushed object 51 | Public Function Push(Of T As IDisposable)(ByVal newObject As T) As T 52 | _disposables.Add(newObject) 53 | Return newObject 54 | End Function 55 | 56 | ''' 57 | ''' Push an arbitrary number of disposable objects onto the stack in one call 58 | ''' 59 | ''' The disposable objects 60 | Public Sub Push(ParamArray ByVal objects() As IDisposable) 61 | For Each d As IDisposable In objects 62 | _disposables.Add(d) 63 | Next d 64 | End Sub 65 | 66 | ''' 67 | ''' Dispose all items within the dispose stack. 68 | ''' 69 | Public Sub Dispose() Implements IDisposable.Dispose 70 | For i As Integer = _disposables.Count - 1 To 0 Step -1 71 | _disposables(i).Dispose() 72 | Next i 73 | 74 | _disposables.Clear() 75 | End Sub 76 | End Class 77 | End Namespace 78 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/class_send_and_receive_binary_arguments_1_1_program-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Member List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 54 | 60 |
61 |
62 |
63 |
SendAndReceiveBinaryArguments.Program Member List
64 |
65 |
66 | This is the complete list of members for SendAndReceiveBinaryArguments.Program, including all inherited members. 67 |
68 | 69 | 70 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /extras/documentation/PC/html/namespace_receive.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CmdMessenger: Package Receive 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 | 35 |
25 |
CmdMessenger 26 |  4.0.0 27 |
28 |
CmdMessenger is a serial port messaging library for the .Net / Mono Platform.
29 |
36 |
37 | 38 | 39 | 46 | 51 |
52 |
53 |
54 | Classes | 55 | Enumerations
56 |
57 |
Package Receive
58 |
59 |
60 | 61 | 63 | 64 | 65 | 67 | 69 |

62 | Classes

class  Program
class  Receive

66 | Enumerations

enum  Command { SetLed 68 | }
70 |
71 | 72 | 73 | 78 | 79 | 80 | 81 | --------------------------------------------------------------------------------