<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[RemoteXY community — Read timeout error]]></title>
		<link>https://forum.remotexy.com/viewtopic.php?id=1476</link>
		<atom:link href="https://forum.remotexy.com/extern.php?action=feed&amp;tid=1476&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Read timeout error.]]></description>
		<lastBuildDate>Thu, 31 Mar 2022 21:56:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Read timeout error]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=4573#p4573</link>
			<description><![CDATA[<p>Note to de-energize the stepper motors when not running, I use a relay to cut power to the Stepper drivers.</p>]]></description>
			<author><![CDATA[null@example.com (Frjlmkam56!)]]></author>
			<pubDate>Thu, 31 Mar 2022 21:56:43 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=4573#p4573</guid>
		</item>
		<item>
			<title><![CDATA[Re: Read timeout error]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=4572#p4572</link>
			<description><![CDATA[<p>Here is the full Visuino code, with the embedded RemoteXY code<br />//----------------------------------------------<br />//<br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Sketch Generated by Visuino<br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a target="_blank" href="http://www.visuino.com">www.visuino.com</a><br />//<br />//------------------ Source --------------------<br />//<br />// BLE Control PAN-TILT_Rev001.visuino<br />//<br /> //----------------------------------------------</p><p>#define VISUINO_ESP32</p><p>#include &lt;OpenWire.h&gt;<br />#include &lt;Mitov.h&gt;<br />#include &lt;Arduino.h&gt;<br />#include &lt;Mitov_ESP32.h&gt;<br />#include &lt;Mitov_ESP32_BLE.h&gt;<br />#include &lt;BLEDevice.h&gt;<br />#include &lt;BLEUtils.h&gt;<br />#include &lt;Mitov_ESP32_BLE_Server.h&gt;<br />#include &lt;Mitov_BluetoothLE_Uart_Service.h&gt;<br />#include &lt;Mitov_StandardSerial.h&gt;<br />#include &lt;Mitov_Stepper.h&gt;<br />#include &lt;Mitov_Packet.h&gt;<br />#include &lt;Mitov_RemoteXY.h&gt;<br />#include &lt;Mitov_LogicGates.h&gt;</p><br /><br /><p>// Shared Component Member Variables</p><p>namespace ComponentVariables<br />{<br />class<br />{<br />public:<br />&nbsp; bool Value1 : 1;<br />&nbsp; bool Value2 : 1;<br />&nbsp; uint32_t Value3 : 4;<br />&nbsp; bool Value4 : 1;<br />&nbsp; bool Value5 : 1;<br />&nbsp; bool Value6 : 1;<br />&nbsp; bool Value7 : 1;<br />&nbsp; bool Value8 : 1;<br />&nbsp; bool Value9 : 1;<br />&nbsp; bool Value10 : 1;<br />&nbsp; bool Value11 : 1;<br />&nbsp; bool Value12 : 1;<br />&nbsp; bool Value13 : 1;<br />&nbsp; bool Value14 : 1;<br />&nbsp; bool Value15 : 1;<br />&nbsp; bool Value16 : 1;<br />&nbsp; bool Value17 : 1;<br />&nbsp; bool Value18 : 1;<br />&nbsp; uint32_t Value19 : 4;<br />&nbsp; int32_t Value20 : 1;<br />&nbsp; bool Value21 : 1;<br />&nbsp; bool Value22 : 1;<br />&nbsp; bool Value23 : 1;<br />&nbsp; bool Value24 : 1;<br />&nbsp; bool Value25 : 1;<br />&nbsp; bool Value26 : 1;<br />&nbsp; bool Value27 : 1;<br />&nbsp; bool Value28 : 1;</p><p>} BitFields;</p><p>class Variable1<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value1; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value1 = AValue; }</p><p>};</p><p>class Variable2<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value2; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value2 = AValue; }</p><p>};</p><p>class Variable3<br />{<br />public:<br />&nbsp; inline static uint32_t GetValue() { return BitFields.Value3; }<br />&nbsp; inline static void SetValue( uint32_t AValue ) { BitFields.Value3 = AValue; }</p><p>};</p><p>class Variable4<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value4; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value4 = AValue; }</p><p>};</p><p>class Variable5<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value5; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value5 = AValue; }</p><p>};</p><p>class Variable6<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value6; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value6 = AValue; }</p><p>};</p><p>class Variable7<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value7; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value7 = AValue; }</p><p>};</p><p>class Variable8<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value8; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value8 = AValue; }</p><p>};</p><p>class Variable9<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value9; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value9 = AValue; }</p><p>};</p><p>class Variable10<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value10; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value10 = AValue; }</p><p>};</p><p>class Variable11<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value11; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value11 = AValue; }</p><p>};</p><p>class Variable12<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value12; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value12 = AValue; }</p><p>};</p><p>class Variable13<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value13; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value13 = AValue; }</p><p>};</p><p>class Variable14<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value14; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value14 = AValue; }</p><p>};</p><p>class Variable15<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value15; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value15 = AValue; }</p><p>};</p><p>class Variable16<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value16; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value16 = AValue; }</p><p>};</p><p>class Variable17<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value17; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value17 = AValue; }</p><p>};</p><p>class Variable18<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value18; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value18 = AValue; }</p><p>};</p><p>class Variable19<br />{<br />public:<br />&nbsp; inline static uint32_t GetValue() { return BitFields.Value19; }<br />&nbsp; inline static void SetValue( uint32_t AValue ) { BitFields.Value19 = AValue; }</p><p>};</p><p>class Variable20<br />{<br />public:<br />&nbsp; inline static int32_t GetValue() { return BitFields.Value20; }<br />&nbsp; inline static void SetValue( int32_t AValue ) { BitFields.Value20 = AValue; }</p><p>};</p><p>class Variable21<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value21; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value21 = AValue; }</p><p>};</p><p>class Variable22<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value22; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value22 = AValue; }</p><p>};</p><p>class Variable23<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value23; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value23 = AValue; }</p><p>};</p><p>class Variable24<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value24; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value24 = AValue; }</p><p>};</p><p>class Variable25<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value25; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value25 = AValue; }</p><p>};</p><p>class Variable26<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value26; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value26 = AValue; }</p><p>};</p><p>class Variable27<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value27; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value27 = AValue; }</p><p>};</p><p>class Variable28<br />{<br />public:<br />&nbsp; inline static bool GetValue() { return BitFields.Value28; }<br />&nbsp; inline static void SetValue( bool AValue ) { BitFields.Value28 = AValue; }</p><p>};</p><p>} // ComponentVariables</p><p>// Arduino Constant Declarations</p><p>namespace VisuinoConstants<br />{<br />class FloatValue0<br />{<br />public:<br />&nbsp; &nbsp; inline static constexpr float GetValue() { return 80; }<br />};</p><p>class FloatValue1<br />{<br />public:<br />&nbsp; &nbsp; inline static constexpr float GetValue() { return 250; }<br />};</p><p>class TextValue1<br />{<br />public:<br />&nbsp; &nbsp; inline static constexpr const char *GetValue() { return &quot;&quot;; }<br />};</p><p>class TextValue0<br />{<br />public:<br />&nbsp; &nbsp; inline static constexpr const char *GetValue() { return &quot;GARAGE1&quot;; }<br />};</p><p>} // VisuinoConstants</p><p>// Pin Call Declarations</p><p>namespace PinCalls<br />{<br />class PinCallerReceive0<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive1<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive2<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive3<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive4<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive5<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive6<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive7<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive8<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />class PinCallerReceive9<br />{<br />public:<br />&nbsp; void Notify( void *_Data );</p><p>};<br />} // PinCalls</p><p>// Call Chains</p><p>namespace CallChains<br />{<br />class CheckPopulated1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 5; }<br />&nbsp; static void Call( bool &amp; AIsPopulated );</p><p>};<br />class GetData1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 5; }<br />&nbsp; static void Call( uint8_t *&amp; ADataStart, uint32_t &amp; ADataIndex, uint8_t &amp; AOffset );</p><p>};<br />class GetSize1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 5; }<br />&nbsp; static void Call( int32_t AIndex, bool &amp; AAlligned, int &amp; AResult );</p><p>};<br />class Expand1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 5; }<br />&nbsp; static void Call( int32_t AIndex, uint8_t * const &amp; AInBuffer, uint8_t * const &amp; AOutBuffer, int &amp; ASize, bool &amp; AResult );</p><p>};<br />class GetValue1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 0; }<br />&nbsp; static void Call( int32_t AIndex, uint8_t &amp; AValue );</p><p>};<br />class ApplyValues1<br />{<br />public:<br />&nbsp; inline static uint32_t Count() { return 0; }<br />&nbsp; static void Call( uint8_t * AValue );</p><p>};<br />} // CallChains</p><p>// Arduino Board Declarations</p><p>namespace BoardDeclarations<br />{<br />namespace Types<br />{<br />typedef Mitov::SerialPort&lt;<br />&nbsp; SERIAL_TYPE, // 0_T_TYPE<br />&nbsp; Serial, // 1_C_TYPE<br />&nbsp; Mitov::ConstantProperty&lt;4, uint32_t, 0 &gt;, // AfterSendingDelay<br />&nbsp; Mitov::ConstantProperty&lt;7, uint32_t, 8 &gt;, // DataBits<br />&nbsp; Mitov::ConstantProperty&lt;3, bool, true &gt;, // Enabled<br />&nbsp; Mitov::ConstantProperty&lt;51, uint32_t, 0&gt;, // FEndTime<br />&nbsp; Mitov::ConstantProperty&lt;50, bool, false&gt;, // FSending<br />&nbsp; Mitov::GenericPin_NoImplementation&lt;5 &gt;, // OutputPin<br />&nbsp; Mitov::ConstantProperty&lt;9, Mitov::TArduinoStandardSerialParity, Mitov::spNone &gt;, // Parity<br />&nbsp; Mitov::DigitalPin_NoImplementation&lt;2 &gt;, // SendingOutputPin<br />&nbsp; Mitov::ConstantProperty&lt;6, uint32_t, 9600 &gt;, // Speed<br />&nbsp; Mitov::ConstantProperty&lt;8, uint32_t, 1 &gt; // StopBits<br />&nbsp; &nbsp;&gt; SerialPort0;<br />} // Types</p><p>namespace Instances<br />{<br />Types::SerialPort0 SerialPort0;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::ArduinoSerialInput_Binary&lt;Types::SerialPort0, Instances::SerialPort0, Mitov::TArray&lt;uint8_t&gt;&gt; SerialPort0_Input_IOWByteStream_1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::SerialPort0_Input_IOWByteStream_1 SerialPort0_Input_IOWByteStream_1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::ArduinoDigitalChannel&lt;<br />&nbsp; Mitov::ConstantProperty&lt;51, bool, false&gt;, // InitialValue<br />&nbsp; Mitov::ConstantProperty&lt;22, bool, false&gt;, // IsAnalog<br />&nbsp; Mitov::ConstantProperty&lt;24, bool, true&gt;, // IsCombinedInOut<br />&nbsp; Mitov::ConstantProperty&lt;21, bool, false&gt;, // IsOpenDrain<br />&nbsp; Mitov::ConstantProperty&lt;25, bool, true&gt;, // IsOutput<br />&nbsp; Mitov::ConstantProperty&lt;10, bool, false &gt;, // IsPullDown<br />&nbsp; Mitov::ConstantProperty&lt;5, bool, false &gt;, // IsPullUp<br />&nbsp; Mitov::ConstantProperty&lt;23, bool, false&gt;, // IsRawInput<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;6, ::PinCalls::PinCallerReceive0 &gt;, // OutputPin<br />&nbsp; 14 // PIN<br />&nbsp; &gt; ArduinoDigitalChannel_14;<br />} // Types</p><p>namespace Instances<br />{<br />Types::ArduinoDigitalChannel_14 ArduinoDigitalChannel_14;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::DigitalInput&lt;<br />&nbsp; Mitov::ConstantProperty&lt;10, bool, false &gt;, // IsPullDown<br />&nbsp; Mitov::ConstantProperty&lt;5, bool, false &gt;, // IsPullUp<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;6, ::PinCalls::PinCallerReceive0 &gt;, // OutputPin<br />&nbsp; 14 // PIN<br />&nbsp; &gt; ArduinoAnalogInputChannel_AsDigital_14;<br />} // Types</p><p>namespace Instances<br />{<br />Types::ArduinoAnalogInputChannel_AsDigital_14 ArduinoAnalogInputChannel_AsDigital_14;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::ESP32BluetoothLE&lt;<br />&nbsp; Mitov::TypedPin_NoImplementation&lt;2, int32_t &gt;, // ConnectedCountOutputPin<br />&nbsp; Mitov::ConstantPropertyString&lt;3, ::VisuinoConstants::TextValue0 &gt;, // DeviceName<br />&nbsp; Mitov::TextPin_NoImplementation&lt;1 &gt;, // MACAddressOutputPin<br />&nbsp; Mitov::ConstantProperty&lt;4, uint32_t, 460 &gt;, // MaximumTransmissionUnit<br />&nbsp; Mitov::ConstantProperty&lt;6, Mitov::TArduinoESP32BluetoothLESecurity::TArduinoESP32BluetoothLESecurity, Mitov::TArduinoESP32BluetoothLESecurity::Default &gt;, // Security<br />&nbsp; Mitov::ESP32ServerImp, // Server<br />&nbsp; Mitov::ConstantProperty&lt;5, uint32_t, 5 &gt; // TransmitPower<br />&nbsp; &nbsp;&gt; TArduinoESP32BluetoothLEModule1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoESP32BluetoothLEModule1 TArduinoESP32BluetoothLEModule1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::ESP32BluetoothLEServer&lt;<br />&nbsp; BoardDeclarations::Types::TArduinoESP32BluetoothLEModule1, // 0_TYPE_OWNER<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEModule1, // 1_NAME_OWNER<br />&nbsp; Mitov::ConstantProperty&lt;1, bool, true &gt; // Enabled<br />&nbsp; &nbsp;&gt; TArduinoESP32BluetoothLEServer1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoESP32BluetoothLEServer1 TArduinoESP32BluetoothLEServer1;<br />} // Instances</p><p>} // BoardDeclarations</p><p>// Declarations</p><p>namespace Declarations<br />{<br />namespace Types<br />{<br />typedef Mitov::ArduinoBluetoothLEUartService&lt;<br />&nbsp; BoardDeclarations::Types::TArduinoESP32BluetoothLEServer1, // 0_TYPE_OWNER<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEServer1, // 1_NAME_OWNER<br />&nbsp; Mitov::ArduinoBluetoothLEUartServiceImpl_HC08, // BASE<br />&nbsp; Mitov::ConstantProperty&lt;5, uint32_t, 200 &gt;, // BufferSize<br />&nbsp; Mitov::ConstantProperty&lt;1, bool, true &gt;, // Enabled<br />&nbsp; Mitov::GenericPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive1 &gt; // OutputPin<br />&nbsp; &nbsp;&gt; TArduinoBluetoothUartService1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoBluetoothUartService1 TArduinoBluetoothUartService1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::StepperMotor4Wire&lt;<br />&nbsp; Mitov::TypedVariableValue&lt;9, bool, ::ComponentVariables::Variable1, false &gt;, // Enabled<br />&nbsp; Mitov::TypedVariable&lt;13, uint32_t, ::ComponentVariables::Variable3 &gt;, // FStep<br />&nbsp; Mitov::ConstantProperty&lt;12, bool, false &gt;, // HalfStep<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;5 &gt;, // OutputPins_0<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;18 &gt;, // OutputPins_1<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;19 &gt;, // OutputPins_2<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;21 &gt;, // OutputPins_3<br />&nbsp; Mitov::TypedVariableValue&lt;10, bool, ::ComponentVariables::Variable2, false &gt;, // Reversed<br />&nbsp; Mitov::StepperMotorSpeed, // Speed_Implementation<br />&nbsp; Mitov::ConstantPropertyFloat&lt;11, float, ::VisuinoConstants::FloatValue0 &gt; // StepsPerSecond<br />&nbsp; &nbsp;&gt; TILT;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TILT TILT;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::Packet&lt;<br />&nbsp; 5, // COUNT_Elements<br />&nbsp; Mitov::NestedProperty&lt;12, Mitov::PacketChecksumElement&lt;<br />&nbsp; &nbsp; Mitov::ConstantProperty&lt;11, bool, true &gt; // Enabled<br />&nbsp; &nbsp; &nbsp;&gt; &gt;, // Checksum<br />&nbsp; Mitov::EmbeddedCallChain&lt;CallChains::CheckPopulated1 &gt;, // Elements_CheckPopulated<br />&nbsp; Mitov::EmbeddedCallChain&lt;CallChains::Expand1 &gt;, // Elements_Expand<br />&nbsp; Mitov::EmbeddedCallChain&lt;CallChains::GetData1 &gt;, // Elements_GetData<br />&nbsp; Mitov::EmbeddedCallChain&lt;CallChains::GetSize1 &gt;, // Elements_GetSize<br />&nbsp; Mitov::TypedVariable&lt;15, bool, ::ComponentVariables::Variable5 &gt;, // FModified<br />&nbsp; Mitov::TypedVariable&lt;13, bool, ::ComponentVariables::Variable4 &gt;, // FNeedsNewSize<br />&nbsp; Mitov::TypedVariable&lt;17, bool, ::ComponentVariables::Variable6 &gt;, // FRefreshed<br />&nbsp; Mitov::NestedProperty&lt;9, Mitov::TArduinoHeadMarkerBinaryPacketElement&lt;<br />&nbsp; &nbsp; Mitov::NullPropertyArray&lt;8, uint8_t, uint8_t &gt;, // Bytes<br />&nbsp; &nbsp; Mitov::EmbeddedCallChain&lt;CallChains::ApplyValues1 &gt;, // Bytes_ApplyValues<br />&nbsp; &nbsp; Mitov::EmbeddedCallChain&lt;CallChains::GetValue1 &gt; // Bytes_GetValue<br />&nbsp; &nbsp; &nbsp;&gt; &gt;, // HeadMarker<br />&nbsp; Mitov::ConstantProperty&lt;5, bool, false &gt;, // OnlyModified<br />&nbsp; Mitov::TypedPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive2, Mitov::TArray&lt;uint8_t&gt; &gt; // OutputPin<br />&nbsp; &nbsp;&gt; Packet1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::Packet1 Packet1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::PacketDigitalBinaryElement&lt;<br />&nbsp; Declarations::Types::Packet1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::Packet1, // 1_NAME_OWNER<br />&nbsp; Mitov::TypedVariable&lt;5, bool, ::ComponentVariables::Variable8 &gt;, // FBoolValue<br />&nbsp; Mitov::TypedVariable&lt;3, bool, ::ComponentVariables::Variable7 &gt; // FPopulated<br />&nbsp; &nbsp;&gt; TArduinoDigitalBinaryPacketElement1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoDigitalBinaryPacketElement1 TArduinoDigitalBinaryPacketElement1 = Types::TArduinoDigitalBinaryPacketElement1( false );<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::PacketDigitalBinaryElement&lt;<br />&nbsp; Declarations::Types::Packet1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::Packet1, // 1_NAME_OWNER<br />&nbsp; Mitov::TypedVariable&lt;5, bool, ::ComponentVariables::Variable10 &gt;, // FBoolValue<br />&nbsp; Mitov::TypedVariable&lt;3, bool, ::ComponentVariables::Variable9 &gt; // FPopulated<br />&nbsp; &nbsp;&gt; TArduinoDigitalBinaryPacketElement2;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoDigitalBinaryPacketElement2 TArduinoDigitalBinaryPacketElement2 = Types::TArduinoDigitalBinaryPacketElement2( false );<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::PacketDigitalBinaryElement&lt;<br />&nbsp; Declarations::Types::Packet1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::Packet1, // 1_NAME_OWNER<br />&nbsp; Mitov::TypedVariable&lt;5, bool, ::ComponentVariables::Variable12 &gt;, // FBoolValue<br />&nbsp; Mitov::TypedVariable&lt;3, bool, ::ComponentVariables::Variable11 &gt; // FPopulated<br />&nbsp; &nbsp;&gt; TArduinoDigitalBinaryPacketElement3;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoDigitalBinaryPacketElement3 TArduinoDigitalBinaryPacketElement3 = Types::TArduinoDigitalBinaryPacketElement3( false );<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::PacketDigitalBinaryElement&lt;<br />&nbsp; Declarations::Types::Packet1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::Packet1, // 1_NAME_OWNER<br />&nbsp; Mitov::TypedVariable&lt;5, bool, ::ComponentVariables::Variable14 &gt;, // FBoolValue<br />&nbsp; Mitov::TypedVariable&lt;3, bool, ::ComponentVariables::Variable13 &gt; // FPopulated<br />&nbsp; &nbsp;&gt; TArduinoDigitalBinaryPacketElement4;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoDigitalBinaryPacketElement4 TArduinoDigitalBinaryPacketElement4 = Types::TArduinoDigitalBinaryPacketElement4( false );<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::PacketDigitalBinaryElement&lt;<br />&nbsp; Declarations::Types::Packet1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::Packet1, // 1_NAME_OWNER<br />&nbsp; Mitov::TypedVariable&lt;5, bool, ::ComponentVariables::Variable16 &gt;, // FBoolValue<br />&nbsp; Mitov::TypedVariable&lt;3, bool, ::ComponentVariables::Variable15 &gt; // FPopulated<br />&nbsp; &nbsp;&gt; TArduinoDigitalBinaryPacketElement5;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoDigitalBinaryPacketElement5 TArduinoDigitalBinaryPacketElement5 = Types::TArduinoDigitalBinaryPacketElement5( false );<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::StepperMotor4Wire&lt;<br />&nbsp; Mitov::TypedVariableValue&lt;9, bool, ::ComponentVariables::Variable17, false &gt;, // Enabled<br />&nbsp; Mitov::TypedVariable&lt;13, uint32_t, ::ComponentVariables::Variable19 &gt;, // FStep<br />&nbsp; Mitov::ConstantProperty&lt;12, bool, false &gt;, // HalfStep<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;26 &gt;, // OutputPins_0<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;25 &gt;, // OutputPins_1<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;33 &gt;, // OutputPins_2<br />&nbsp; Mitov::DigitalPin_DirectBoardPinImplementation&lt;32 &gt;, // OutputPins_3<br />&nbsp; Mitov::TypedVariableValue&lt;10, bool, ::ComponentVariables::Variable18, false &gt;, // Reversed<br />&nbsp; Mitov::StepperMotorSpeed, // Speed_Implementation<br />&nbsp; Mitov::ConstantPropertyFloat&lt;11, float, ::VisuinoConstants::FloatValue1 &gt; // StepsPerSecond<br />&nbsp; &nbsp;&gt; PAN;<br />} // Types</p><p>namespace Instances<br />{<br />Types::PAN PAN;<br />} // Instances</p><p>namespace RemoteXY_Declarations<br />{<br />&nbsp; namespace _o_RemoteXY1<br />&nbsp; {<br />&nbsp; &nbsp; #pragma pack(push, 1)</p><p>&nbsp; &nbsp; // RemoteXY configurate<br />&nbsp; &nbsp; static uint8_t const PROGMEM Config[] =<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; 15, 25, 1, 1, 0, 23, 64, 19, 19, 2, 31, 68, 87, 78, 0, 1, 0, 23, 19, 19, 19, 2, 31, 85, 80, 0, 1, 0, 1, 40, 19, 19, 2, 31, 76, 69, 70, 84, 0, 1, 0, 43, 40, 19, 19, 2, 31, 82, 73, 71, 72, 84, 0<br />&nbsp; &nbsp; };</p><p>&nbsp; &nbsp; // this structure defines all the variables of your control interface<br />&nbsp; &nbsp; struct<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; // input variable<br />&nbsp; &nbsp; &nbsp; uint8_t switch_0; // =1 if switch ON and =0 if OFF<br />&nbsp; &nbsp; &nbsp; uint8_t switch_1; // =1 if switch ON and =0 if OFF<br />&nbsp; &nbsp; &nbsp; uint8_t switch_2; // =1 if switch ON and =0 if OFF<br />&nbsp; &nbsp; &nbsp; uint8_t switch_3; // =1 if switch ON and =0 if OFF</p><p>&nbsp; &nbsp; &nbsp; // output variable<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; RemoteXY;</p><p>&nbsp; &nbsp; #pragma pack(pop)</p><p>&nbsp; &nbsp; class Access<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; public:<br />&nbsp; &nbsp; &nbsp; inline static uint8_t *GetConfig()<br />&nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return (uint8_t*)Config;<br />&nbsp; &nbsp; &nbsp; }</p><p>&nbsp; &nbsp; &nbsp; inline static uint8_t *GetData()<br />&nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return (uint8_t*)&amp;RemoteXY;<br />&nbsp; &nbsp; &nbsp; }</p><p>&nbsp; &nbsp; };</p><p>&nbsp; } // _o_RemoteXY1<br />} // RemoteXY_Declarations</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXY&lt;<br />&nbsp; ::Declarations::RemoteXY_Declarations::_o_RemoteXY1::Access, // 0_ACCESS<br />&nbsp; 53, // C_CONFIG_LENGTH<br />&nbsp; 53, // C_CONFIG_VERSION<br />&nbsp; 4, // C_INPUT_LENGTH<br />&nbsp; 0, // C_OUTPUT_LENGTH<br />&nbsp; Mitov::TypedVariable&lt;32, int32_t, ::ComponentVariables::Variable20&gt; // FProtocolConnectedFlags<br />&nbsp; &nbsp;&gt; RemoteXY1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::RemoteXY1 RemoteXY1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXYDigitalOutput&lt;<br />&nbsp; Declarations::Types::RemoteXY1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::RemoteXY1, // 1_NAME_OWNER<br />&nbsp; Mitov::ConstantProperty&lt;4, bool, false &gt;, // InitialValue<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive3 &gt;, // OutputPin<br />&nbsp; Mitov::ConstantProperty&lt;2, bool, true &gt; // UseInitialValueOnDisconnect<br />&nbsp; &nbsp;&gt; TArduinoRemoteXYButtonElement1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoRemoteXYButtonElement1 TArduinoRemoteXYButtonElement1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXYDigitalOutput&lt;<br />&nbsp; Declarations::Types::RemoteXY1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::RemoteXY1, // 1_NAME_OWNER<br />&nbsp; Mitov::ConstantProperty&lt;4, bool, false &gt;, // InitialValue<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive4 &gt;, // OutputPin<br />&nbsp; Mitov::ConstantProperty&lt;2, bool, true &gt; // UseInitialValueOnDisconnect<br />&nbsp; &nbsp;&gt; TArduinoRemoteXYButtonElement2;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoRemoteXYButtonElement2 TArduinoRemoteXYButtonElement2;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXYDigitalOutput&lt;<br />&nbsp; Declarations::Types::RemoteXY1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::RemoteXY1, // 1_NAME_OWNER<br />&nbsp; Mitov::ConstantProperty&lt;4, bool, false &gt;, // InitialValue<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive5 &gt;, // OutputPin<br />&nbsp; Mitov::ConstantProperty&lt;2, bool, true &gt; // UseInitialValueOnDisconnect<br />&nbsp; &nbsp;&gt; TArduinoRemoteXYButtonElement3;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoRemoteXYButtonElement3 TArduinoRemoteXYButtonElement3;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXYDigitalOutput&lt;<br />&nbsp; Declarations::Types::RemoteXY1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::RemoteXY1, // 1_NAME_OWNER<br />&nbsp; Mitov::ConstantProperty&lt;4, bool, false &gt;, // InitialValue<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation&lt;3, ::PinCalls::PinCallerReceive6 &gt;, // OutputPin<br />&nbsp; Mitov::ConstantProperty&lt;2, bool, true &gt; // UseInitialValueOnDisconnect<br />&nbsp; &nbsp;&gt; TArduinoRemoteXYButtonElement4;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoRemoteXYButtonElement4 TArduinoRemoteXYButtonElement4;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::MitovRemoteXYProtpcol&lt;<br />&nbsp; Mitov::RemoteXY_Serial&lt;<br />&nbsp; &nbsp; &nbsp; Declarations::Types::TArduinoBluetoothUartService1, // 0_SERIAL_TYPE_PIN<br />&nbsp; &nbsp; &nbsp; Declarations::Instances::TArduinoBluetoothUartService1 // 1_SERIAL_NAME_PIN<br />&nbsp; &nbsp; &nbsp; &gt;, // 0_INTERFACE<br />&nbsp; Declarations::Types::RemoteXY1, // 0_TYPE_OWNER<br />&nbsp; Declarations::Instances::RemoteXY1, // 1_NAME_OWNER<br />&nbsp; Mitov::DigitalPin_NoImplementation&lt;2 &gt;, // ConnectedOutputPin<br />&nbsp; 0, // INDEX<br />&nbsp; Mitov::ConstantPropertyString&lt;3, ::VisuinoConstants::TextValue1 &gt; // Password<br />&nbsp; &nbsp;&gt; TArduinoRemoteXYProtocolSerial1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::TArduinoRemoteXYProtocolSerial1 TArduinoRemoteXYProtocolSerial1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::BooleanOperation&lt;<br />&nbsp; Mitov::BooleanOr, // BASE<br />&nbsp; 2, // COUNT_InputPins<br />&nbsp; Mitov::TypedVariable&lt;7, bool, ::ComponentVariables::Variable22 &gt;, // FModified<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly&lt;3, ::PinCalls::PinCallerReceive7, Mitov::TypedVariable&lt;0, bool, ::ComponentVariables::Variable21 &gt; &gt; // OutputPin<br />&nbsp; &nbsp;&gt; Or1;<br />} // Types</p><p>namespace Instances<br />{<br />Types::Or1 Or1;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::BooleanOperation&lt;<br />&nbsp; Mitov::BooleanOr, // BASE<br />&nbsp; 2, // COUNT_InputPins<br />&nbsp; Mitov::TypedVariable&lt;7, bool, ::ComponentVariables::Variable24 &gt;, // FModified<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly&lt;3, ::PinCalls::PinCallerReceive8, Mitov::TypedVariable&lt;0, bool, ::ComponentVariables::Variable23 &gt; &gt; // OutputPin<br />&nbsp; &nbsp;&gt; Or2;<br />} // Types</p><p>namespace Instances<br />{<br />Types::Or2 Or2;<br />} // Instances</p><p>namespace Types<br />{<br />typedef Mitov::BooleanOperation&lt;<br />&nbsp; Mitov::BooleanOr, // BASE<br />&nbsp; 4, // COUNT_InputPins<br />&nbsp; Mitov::TypedVariable&lt;9, bool, ::ComponentVariables::Variable26 &gt;, // FModified<br />&nbsp; Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly&lt;3, ::PinCalls::PinCallerReceive9, Mitov::TypedVariable&lt;0, bool, ::ComponentVariables::Variable25 &gt; &gt; // OutputPin<br />&nbsp; &nbsp;&gt; Or3;<br />} // Types</p><p>namespace Instances<br />{<br />Types::Or3 Or3;<br />} // Instances</p><p>} // Declarations</p><p>// Type Converters</p><p>namespace TypeConverters<br />{<br />Mitov::Convert_BinaryToClock&lt;Mitov::TypedVariable&lt;0, bool, ::ComponentVariables::Variable27 &gt;&gt; Converter0;<br />Mitov::Convert_BinaryToClock&lt;Mitov::TypedVariable&lt;0, bool, ::ComponentVariables::Variable28 &gt;&gt; Converter1;<br />} // TypeConverters</p><p>// Call Chains</p><p>namespace CallChains<br />{<br />void CheckPopulated1::Call( bool &amp; AIsPopulated )<br />{<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement1.CheckPopulated( AIsPopulated );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement2.CheckPopulated( AIsPopulated );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement3.CheckPopulated( AIsPopulated );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement4.CheckPopulated( AIsPopulated );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement5.CheckPopulated( AIsPopulated );<br />}</p><p>void GetData1::Call( uint8_t *&amp; ADataStart, uint32_t &amp; ADataIndex, uint8_t &amp; AOffset )<br />{<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement1.GetData( ADataStart, ADataIndex, AOffset );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement2.GetData( ADataStart, ADataIndex, AOffset );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement3.GetData( ADataStart, ADataIndex, AOffset );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement4.GetData( ADataStart, ADataIndex, AOffset );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement5.GetData( ADataStart, ADataIndex, AOffset );<br />}</p><p>void GetSize1::Call( int32_t AIndex, bool &amp; AAlligned, int &amp; AResult )<br />{<br />&nbsp; switch( AIndex )<br />&nbsp; {<br />&nbsp; &nbsp; case 0: Declarations::Instances::TArduinoDigitalBinaryPacketElement1.GetSize( AAlligned, AResult ); break;<br />&nbsp; &nbsp; case 1: Declarations::Instances::TArduinoDigitalBinaryPacketElement2.GetSize( AAlligned, AResult ); break;<br />&nbsp; &nbsp; case 2: Declarations::Instances::TArduinoDigitalBinaryPacketElement3.GetSize( AAlligned, AResult ); break;<br />&nbsp; &nbsp; case 3: Declarations::Instances::TArduinoDigitalBinaryPacketElement4.GetSize( AAlligned, AResult ); break;<br />&nbsp; &nbsp; case 4: Declarations::Instances::TArduinoDigitalBinaryPacketElement5.GetSize( AAlligned, AResult ); break;<br />&nbsp; }<br />}</p><p>void Expand1::Call( int32_t AIndex, uint8_t * const &amp; AInBuffer, uint8_t * const &amp; AOutBuffer, int &amp; ASize, bool &amp; AResult )<br />{<br />&nbsp; switch( AIndex )<br />&nbsp; {<br />&nbsp; &nbsp; case 0: Declarations::Instances::TArduinoDigitalBinaryPacketElement1.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;<br />&nbsp; &nbsp; case 1: Declarations::Instances::TArduinoDigitalBinaryPacketElement2.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;<br />&nbsp; &nbsp; case 2: Declarations::Instances::TArduinoDigitalBinaryPacketElement3.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;<br />&nbsp; &nbsp; case 3: Declarations::Instances::TArduinoDigitalBinaryPacketElement4.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;<br />&nbsp; &nbsp; case 4: Declarations::Instances::TArduinoDigitalBinaryPacketElement5.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;<br />&nbsp; }<br />}</p><p>void GetValue1::Call( int32_t AIndex, uint8_t &amp; AValue )<br />{<br />}</p><p>void ApplyValues1::Call( uint8_t * AValue )<br />{<br />}</p><p>} // CallChains</p><p>// Pin Call Declarations</p><p>namespace PinCalls<br />{<br />void PinCallerConverterReceive1( void *_Data );<br />void PinCallerConverterReceive2( void *_Data );<br />} // PinCalls</p><p>// Pin Call Implementations</p><p>namespace PinCalls<br />{<br />void PinCallerReceive1::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TArduinoRemoteXYProtocolSerial1._DirectPinReceive( _Data );<br />}</p><p>void PinCallerReceive0::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement5.InputPin_o_Receive( _Data );<br />}</p><p>void PinCallerReceive2::Notify( void *_Data )<br />{<br />&nbsp; BoardDeclarations::Instances::SerialPort0_Input_IOWByteStream_1.InputPin_o_Receive( _Data );<br />}</p><p>void PinCallerReceive3::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement1.InputPin_o_Receive( _Data );<br />&nbsp; TypeConverters::Converter0.Convert( _Data, PinCallerConverterReceive1 );<br />&nbsp; Declarations::Instances::Or1.InputPins_o_Receive( 0, _Data );<br />&nbsp; Declarations::Instances::Or3.InputPins_o_Receive( 0, _Data );<br />}</p><p>void PinCallerConverterReceive1( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TILT.StepInputPin_o_Receive( _Data );<br />}<br />void PinCallerReceive4::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement2.InputPin_o_Receive( _Data );<br />&nbsp; Declarations::Instances::TILT.Reversed().InputPin_o_Receive( _Data );<br />&nbsp; Declarations::Instances::Or1.InputPins_o_Receive( 1, _Data );<br />&nbsp; Declarations::Instances::Or3.InputPins_o_Receive( 1, _Data );<br />}</p><p>void PinCallerReceive5::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::PAN.Reversed().InputPin_o_Receive( _Data );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement3.InputPin_o_Receive( _Data );<br />&nbsp; Declarations::Instances::Or2.InputPins_o_Receive( 0, _Data );<br />&nbsp; Declarations::Instances::Or3.InputPins_o_Receive( 2, _Data );<br />}</p><p>void PinCallerReceive6::Notify( void *_Data )<br />{<br />&nbsp; TypeConverters::Converter1.Convert( _Data, PinCallerConverterReceive2 );<br />&nbsp; Declarations::Instances::TArduinoDigitalBinaryPacketElement4.InputPin_o_Receive( _Data );<br />&nbsp; Declarations::Instances::Or2.InputPins_o_Receive( 1, _Data );<br />&nbsp; Declarations::Instances::Or3.InputPins_o_Receive( 3, _Data );<br />}</p><p>void PinCallerConverterReceive2( void *_Data )<br />{<br />&nbsp; Declarations::Instances::PAN.StepInputPin_o_Receive( _Data );<br />}<br />void PinCallerReceive7::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::TILT.Enabled().InputPin_o_Receive( _Data );<br />}</p><p>void PinCallerReceive8::Notify( void *_Data )<br />{<br />&nbsp; Declarations::Instances::PAN.Enabled().InputPin_o_Receive( _Data );<br />}</p><p>void PinCallerReceive9::Notify( void *_Data )<br />{<br />&nbsp; BoardDeclarations::Instances::ArduinoDigitalChannel_14.DigitalInputPin_o_Receive( _Data );<br />}</p><p>} // PinCalls</p><p>namespace ComponentsHardware<br />{<br />void SystemUpdateHardware()<br />{<br />}<br />} // ComponentsHardware</p><p>//The setup function is called once at startup of the sketch<br />void setup()<br />{<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEModule1.SystemInit();<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEServer1.SystemInit();<br />&nbsp; BoardDeclarations::Instances::ArduinoDigitalChannel_14.SystemInit();<br />&nbsp; Declarations::Instances::TArduinoBluetoothUartService1.SystemInit();<br />&nbsp; BoardDeclarations::Instances::SerialPort0.SystemInit();<br />&nbsp; BoardDeclarations::Instances::ArduinoAnalogInputChannel_AsDigital_14.SystemInit();<br />&nbsp; BoardDeclarations::Instances::ArduinoDigitalChannel_14.SystemStart();<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEModule1.SystemStart();<br />&nbsp; BoardDeclarations::Instances::TArduinoESP32BluetoothLEServer1.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoBluetoothUartService1.SystemStart();<br />&nbsp; BoardDeclarations::Instances::ArduinoAnalogInputChannel_AsDigital_14.SystemStart();<br />&nbsp; Declarations::Instances::Packet1.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement1.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement2.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement3.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement4.SystemStart();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYProtocolSerial1.SystemStart();<br />&nbsp; Declarations::Instances::Or1.SystemStart();<br />&nbsp; Declarations::Instances::Or2.SystemStart();<br />&nbsp; Declarations::Instances::Or3.SystemStart();<br />}</p><p>// The loop function is called in an endless loop<br />void loop()<br />{<br />&nbsp; BoardDeclarations::Instances::ArduinoDigitalChannel_14.SystemLoopBegin();<br />&nbsp; Declarations::Instances::TArduinoBluetoothUartService1.SystemLoopBegin();<br />&nbsp; BoardDeclarations::Instances::SerialPort0.SystemLoopBegin();<br />&nbsp; BoardDeclarations::Instances::ArduinoAnalogInputChannel_AsDigital_14.SystemLoopBegin();<br />&nbsp; Declarations::Instances::TILT.SystemLoopBegin();<br />&nbsp; Declarations::Instances::Packet1.SystemLoopBegin();<br />&nbsp; Declarations::Instances::PAN.SystemLoopBegin();<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement1.SystemLoopBegin(::Declarations::RemoteXY_Declarations::_o_RemoteXY1::RemoteXY.switch_0);<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement2.SystemLoopBegin(::Declarations::RemoteXY_Declarations::_o_RemoteXY1::RemoteXY.switch_1);<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement3.SystemLoopBegin(::Declarations::RemoteXY_Declarations::_o_RemoteXY1::RemoteXY.switch_2);<br />&nbsp; Declarations::Instances::TArduinoRemoteXYButtonElement4.SystemLoopBegin(::Declarations::RemoteXY_Declarations::_o_RemoteXY1::RemoteXY.switch_3);<br />&nbsp; Declarations::Instances::TArduinoRemoteXYProtocolSerial1.SystemLoopBegin();<br />&nbsp; Declarations::Instances::Or1.SystemLoopEnd();<br />&nbsp; Declarations::Instances::Or2.SystemLoopEnd();<br />&nbsp; Declarations::Instances::Or3.SystemLoopEnd();<br />}</p>]]></description>
			<author><![CDATA[null@example.com (Frjlmkam56!)]]></author>
			<pubDate>Thu, 31 Mar 2022 21:54:23 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=4572#p4572</guid>
		</item>
		<item>
			<title><![CDATA[Read timeout error]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=4569#p4569</link>
			<description><![CDATA[<p>I am working on a stepper motor control program with RemoteXY using Visuino.&nbsp; If I use on (2) buttons I can connect to Bluetooth BLE on a ESP32 developer board.&nbsp; If I use (3) buttons I can still connect to my smartphone app.&nbsp; If I use (4) buttons I receive a Read timeout error when trying to connect Bluetooth BLE.&nbsp; My stepper program is written in Visuino, and was working.&nbsp; Just recently it has stopped working since the last Remotexy library update.&nbsp; Any help would be appreciated. </p><p>// RemoteXY select connection mode and include library <br />#define REMOTEXY_MODE__ESP32CORE_BLE<br />#include &lt;BLEDevice.h&gt;</p><p>#include &lt;RemoteXY.h&gt;</p><p>// RemoteXY connection settings <br />#define REMOTEXY_BLUETOOTH_NAME &quot;RemoteXY&quot;</p><br /><p>// RemoteXY configurate&nbsp; <br />#pragma pack(push, 1)<br />uint8_t RemoteXY_CONF[] =&nbsp; &nbsp;// 58 bytes<br />&nbsp; { 255,4,0,0,0,51,0,16,24,1,1,0,23,57,19,19,26,10,68,87,<br />&nbsp; 78,0,1,0,3,34,19,19,26,10,76,70,84,0,1,0,23,13,19,19,<br />&nbsp; 26,10,85,80,0,1,0,42,34,19,19,26,10,82,71,72,84,0 };<br />&nbsp; <br />// this structure defines all the variables and events of your control interface <br />struct {</p><p>&nbsp; &nbsp; // input variables<br />&nbsp; uint8_t UP_1; // =1 if button pressed, else =0 <br />&nbsp; uint8_t LFT_1; // =1 if button pressed, else =0 <br />&nbsp; uint8_t UP_1; // =1 if button pressed, else =0 <br />&nbsp; uint8_t UP_1; // =1 if button pressed, else =0 </p><p>&nbsp; &nbsp; // other variable<br />&nbsp; uint8_t connect_flag;&nbsp; // =1 if wire connected, else =0 </p><p>} RemoteXY;<br />#pragma pack(pop)</p><p>/////////////////////////////////////////////<br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //<br />/////////////////////////////////////////////</p><br /><br /><p>void setup() <br />{<br />&nbsp; RemoteXY_Init ();</p>]]></description>
			<author><![CDATA[null@example.com (Frjlmkam56!)]]></author>
			<pubDate>Mon, 28 Mar 2022 20:15:09 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=4569#p4569</guid>
		</item>
	</channel>
</rss>
