In the previous two parts, I have shown how to build a 2-way traffic light and how to write a sketch to control it.
This time we’ll rewrite the sketch to use state tables.
In microcontroller programming, we are often dealing with a set of well defined states. State tables describe what each state means, rules for transitioning between the different states, for what is allowed and what is expected. Keeping this in a set of tables helps keep the code simple by avoiding a big, tangled mess of if-else statements. This, in turn keeps the code smaller so we can do more with the rather limited memory on the microcontroller.
This is a great little project for learning about Arduino programming as well as LEDs and resistors.
I’ll show how to build a traffic light simulator on a breadboard and write an Arduino sketch to control it. This first part is about building the circuit, while the second part will focus on the sketch.
And: No soldering required.
You will need the following parts. I’ve provided links to product description pages, in case you’re not sure what to get.
As with most error messages in Dynamics AX, there are many different situations that can result in exactly the same error message.
Start-SmartDeploy : Failed to initialize the managed interoperability layer of Microsoft Dynamics AX.
At C:\Windows\refresh_staging.ps1:403 char:18
+ Start-SmartDeploy <<<< -Configuration Staging
+ CategoryInfo : NotSpecified: (:) [Start-SmartDeploy], Initializ
+ FullyQualifiedErrorId : Microsoft.Dynamics.BusinessConnectorNet.Initiali
I have seen quite a few suggested solutions for this particular one, including checking the versions of the .NET framework, .NET Business Connector installed on both the server and the client, using LogonAs() instead of Logon(), but in every single case I have seen this message, the solution has been….. embarrassingly… simple.
It has always been a case of the problem existing between the chair and the keyboard.
Error executing code: Wrong argument types in variable assignment.
Using SqlDataReader.GetDataTypeName() to check the data type, it shows DateTime2. The destination field is a datetime field, but this problem as well as the solution happens even for plain date fields.
So, we might try to use SqlDataReader.GetDateTime() instead, but that results in exactly the same error.