C++ runtime: add eRPC server, minimal CLI and Makefile. WIP.
<?xml version='1.0' encoding='utf-8'?>
<project xmlns:ns1="http://www.plcopen.org/xml/tc6.xsd" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.plcopen.org/xml/tc6_0201">
<fileHeader companyName="Unknown" productName="Unnamed" productVersion="1" creationDateTime="2022-05-06T11:12:02"/>
<contentHeader name="Unnamed" modificationDateTime="2022-05-09T09:09:01">
<coordinateInfo>
<fbd>
<scaling x="5" y="5"/>
</fbd>
<ld>
<scaling x="0" y="0"/>
</ld>
<sfc>
<scaling x="0" y="0"/>
</sfc>
</coordinateInfo>
</contentHeader>
<types>
<dataTypes/>
<pous>
<pou name="program0" pouType="program">
<interface>
<localVars>
<variable name="trendval0">
<type>
<derived name="HMI_REAL"/>
</type>
</variable>
<variable name="trendval1">
<type>
<derived name="HMI_REAL"/>
</type>
</variable>
<variable name="counter">
<type>
<INT/>
</type>
</variable>
</localVars>
</interface>
<body>
<FBD>
<outVariable localId="2" executionOrderId="0" height="25" width="95" negated="false">
<position x="910" y="195"/>
<connectionPointIn>
<relPosition x="0" y="10"/>
<connection refLocalId="10" formalParameter="OUT">
<position x="910" y="205"/>
<position x="885" y="205"/>
</connection>
</connectionPointIn>
<expression>trendval0</expression>
</outVariable>
<outVariable localId="3" executionOrderId="0" height="25" width="95" negated="false">
<position x="910" y="255"/>
<connectionPointIn>
<relPosition x="0" y="10"/>
<connection refLocalId="12" formalParameter="OUT">
<position x="910" y="265"/>
<position x="885" y="265"/>
</connection>
</connectionPointIn>
<expression>trendval1</expression>
</outVariable>
<block localId="4" typeName="ADD" executionOrderId="0" height="75" width="63">
<position x="210" y="190"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="35"/>
<connection refLocalId="1">
<position x="210" y="225"/>
<position x="140" y="225"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="60"/>
<connection refLocalId="7">
<position x="210" y="250"/>
<position x="170" y="250"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="63" y="35"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="5" typeName="SEL" executionOrderId="0" height="80" width="65">
<position x="485" y="175"/>
<inputVariables>
<variable formalParameter="G">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="6" formalParameter="OUT">
<position x="485" y="205"/>
<position x="460" y="205"/>
<position x="460" y="185"/>
<position x="435" y="185"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN0">
<connectionPointIn>
<relPosition x="0" y="50"/>
<connection refLocalId="4" formalParameter="OUT">
<position x="485" y="225"/>
<position x="273" y="225"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="70"/>
<connection refLocalId="8">
<position x="485" y="245"/>
<position x="445" y="245"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="65" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="6" typeName="GE" executionOrderId="0" height="60" width="65">
<position x="370" y="155"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="4" formalParameter="OUT">
<position x="370" y="185"/>
<position x="306" y="185"/>
<position x="306" y="225"/>
<position x="273" y="225"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="50"/>
<connection refLocalId="9">
<position x="370" y="205"/>
<position x="350" y="205"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="65" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="7" executionOrderId="0" height="25" width="20" negated="false">
<position x="150" y="240"/>
<connectionPointOut>
<relPosition x="20" y="10"/>
</connectionPointOut>
<expression>1</expression>
</inVariable>
<inVariable localId="8" executionOrderId="0" height="25" width="20" negated="false">
<position x="425" y="235"/>
<connectionPointOut>
<relPosition x="20" y="10"/>
</connectionPointOut>
<expression>0</expression>
</inVariable>
<inVariable localId="9" executionOrderId="0" height="25" width="35" negated="false">
<position x="315" y="195"/>
<connectionPointOut>
<relPosition x="35" y="10"/>
</connectionPointOut>
<expression>360</expression>
</inVariable>
<block localId="10" typeName="COS" executionOrderId="0" height="40" width="60">
<position x="825" y="175"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="14" formalParameter="OUT">
<position x="825" y="205"/>
<position x="785" y="205"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="60" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="11" typeName="INT_TO_REAL" executionOrderId="0" height="40" width="100">
<position x="585" y="175"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="5" formalParameter="OUT">
<position x="585" y="205"/>
<position x="550" y="205"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="100" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<block localId="12" typeName="SIN" executionOrderId="0" height="40" width="60">
<position x="825" y="235"/>
<inputVariables>
<variable formalParameter="IN">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="14" formalParameter="OUT">
<position x="825" y="265"/>
<position x="805" y="265"/>
<position x="805" y="205"/>
<position x="785" y="205"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="60" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inOutVariable localId="1" executionOrderId="0" height="25" width="70" negatedOut="false" negatedIn="false">
<position x="70" y="215"/>
<connectionPointIn>
<relPosition x="0" y="10"/>
<connection refLocalId="5" formalParameter="OUT">
<position x="70" y="225"/>
<position x="60" y="225"/>
<position x="60" y="285"/>
<position x="560" y="285"/>
<position x="560" y="205"/>
<position x="550" y="205"/>
</connection>
</connectionPointIn>
<connectionPointOut>
<relPosition x="70" y="10"/>
</connectionPointOut>
<expression>counter</expression>
</inOutVariable>
<comment localId="13" height="110" width="285">
<position x="40" y="25"/>
<content>
<xhtml:p><![CDATA[Generate values for curves]]></xhtml:p>
</content>
</comment>
<block localId="14" typeName="DIV" executionOrderId="0" height="60" width="65">
<position x="720" y="175"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="11" formalParameter="OUT">
<position x="720" y="205"/>
<position x="685" y="205"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="50"/>
<connection refLocalId="15">
<position x="720" y="225"/>
<position x="685" y="225"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="65" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="15" executionOrderId="0" height="25" width="70" negated="false">
<position x="615" y="215"/>
<connectionPointOut>
<relPosition x="70" y="10"/>
</connectionPointOut>
<expression>57.2958</expression>
</inVariable>
</FBD>
</body>
</pou>
</pous>
</types>
<instances>
<configurations>
<configuration name="config">
<resource name="resource1">
<task name="task0" priority="0" interval="T#20ms">
<pouInstance name="instance0" typeName="program0"/>
</task>
</resource>
</configuration>
</configurations>
</instances>
</project>