Twitter: @CEDriverWiz
The previous article in this series covered implementing an Arduino device as the remote app that send the UI configuration at start up to the UWP app so that the UWP app can configure the UI for it as an array of buttons. The Arduino device executes a state machine. The article covers the BT connectivity from within the UWP app and the implementation of the UWP apps mirror of the state machine.
In the previous article, issues with and how to connect a Windows 10 system to an Arduino device using the Classic (Generic) Bluetooth Serial (SPP) connectivity was covered in detail. This is so that a UWP app running on a Windows 10 device can act as the UI for an app running on a remote device such as an Arduino or IOT-Core device. The UI a dynamically generated array of buttons with multiline text that when pressed send a code representing the button to the remote app for interpretation. There is also a list box in the UI that can be used to display messages from the remote app. The UI specified in Json is passed via the serial medium from the remote app to the Windows system and used to generate the app’s UI dynamically in XAMl at runtime. This article covers the code to receive the json text from the remote device and how to interpret it within the UWP app as well as how to pass the button code and get the remote app’s text messages.
The Story so far: We are working towards rejigging an old Surface 1 or 2, or any old Windows Tablet/Laptop with a touch screen, to be the UI for a remote app running on a device such as an Arduino or Windows 10 IoT-Core. We have developed a Windows 10 UWP app that programmatically sets up the UI as an XAML grid of buttons. These buttons are rounded boxes whose content is a multiline TextBlock. If disabled, these buttons can individually just be fixed textual content in the UI. The grid and button’s text is specified in a Json string which is loaded from a file present in the UWP app. A ListView box was added so that the remote app can send back text to be displayed. The intention is for the UWP app to communicate UI button presses to the remote app over various mediums such as Bluetooth, RS232, Network Sockets etc. to facilitate the download of this Json content from the remote app. Later on we will port the UWP app backwards to Windows 8.1 so it can run on the WinRT( ARM) Surface 2.
This article covers Bluetooth connectivity between the UWP UI app running on a Windows 10 Surface Book 2 and an Arduino Uno (compatible). Button presses on the UWP app are sent to the Arduino device as single (unique) character and echoed back to the app. Upon return the button’s text is looked up and displayed in the TextBlock. Special characters can initiate command actions in the remote app. One button press will get the remote app to send the grid Json configuration text to the UWP app so it can (re)configure the grid. In this manner the UWP app engenders some universality in that it can be configured for a variety of remote apps, by that app at runtime. The first part of this article covers the device to device Bluetooth Serial Port connectivity. The second part covers the Bluetooth connectivity fro a UWP app and an Arduino device.
Turn your old Surface into into a large touchpad. As part 3, add a Text Output control to the UI that can note which button is pressed along with (later on) output from the remote app.
Turn your old Surface into into a large touchpad. As part 2, specify the buttons and app config via a Json Configuration file. This reworks a previous GitHub project.
Turn your old Surface into into a large touchpad:
Have you got an old RT Surface 1 or 2 gathering dust and don't know what to do with it?
We are looking a short-cutting getting started with Xamarin Forms for cross platform app development, if you are already a UWP app developer. This article discusses the rudiments of an Xamarin Forms app project from the perspective of a UWP app developer.
So we have seen the need to use Xamarin. So lets get started. This article covers installation in Visual Studio on a Windows device
OK so you have been creating Windows apps for ages including UWP. You have developed apps that run on the Windows desktop and the phone. You understand the rudiments of developing a modern UI app MVM etc. You understand PEM, properties events and methods for classes and GUI elements. You understand database CRUD can attach a database to an app using formal database invocation methods. You might even have mastered the Entity Framework and/or have a deep understanding of ORM. Overall, in coding terms, when confronted with a new programming context you know what you want to do and how you do with UWP or Windows Forms; you just need to do it in the new context. Xamarin Forms, bring it on!
In this article I discuss two ways to the refer a UWP app to an Entity Framework Model Class Library, which appears to not be possible through the normal method of adding references between projects in Visual Studio.