IRDYn/GC_calibration/GC_calibration_slrt_rtw/html/xpcethercatpdotx_c.html

901 lines
76 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./js/coder_app.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./rtwreport_utils.js"></script>
<script type="text/javascript" src="./rtwannotate.js"></script>
<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/>
</head>
<body onload="srcFileOnload();">
<pre id="code">
<table class="code" id="codeTbl">
<tr name="1" id="1">
<td><a id="l1" class='ln'>1</a></td><td><span class="ct">/*</span></td></tr>
<tr name="2" id="2">
<td><a id="l2" class='ln'>2</a></td><td><span class="ct"> * xpcethercatpdotx.c - xPC Target Ethernet Receive</span></td></tr>
<tr name="3" id="3">
<td><a id="l3" class='ln'>3</a></td><td><span class="ct"> *</span></td></tr>
<tr name="4" id="4">
<td><a id="l4" class='ln'>4</a></td><td><span class="ct"> * Copyright 2008-2014 The MathWorks, Inc.</span></td></tr>
<tr name="5" id="5">
<td><a id="l5" class='ln'>5</a></td><td><span class="ct">*/</span></td></tr>
<tr name="6" id="6">
<td><a id="l6" class='ln'>6</a></td><td></td></tr>
<tr name="7" id="7">
<td><a id="l7" class='ln'>7</a></td><td></td></tr>
<tr name="8" id="8">
<td><a id="l8" class='ln'>8</a></td><td><span class="pp">#define</span> <a id="8c9" class="tk">S_FUNCTION_LEVEL</a> 2</td></tr>
<tr name="9" id="9">
<td><a id="l9" class='ln'>9</a></td><td><span class="pp">#undef</span> <a id="9c9" class="tk">S_FUNCTION_NAME</a></td></tr>
<tr name="10" id="10">
<td><a id="l10" class='ln'>10</a></td><td><span class="pp">#define</span> <a id="10c9" class="tk">S_FUNCTION_NAME</a> <a id="10c28" class="tk">xpcethercatpdotx</a></td></tr>
<tr name="11" id="11">
<td><a id="l11" class='ln'>11</a></td><td></td></tr>
<tr name="12" id="12">
<td><a id="l12" class='ln'>12</a></td><td><span class="pp">#define</span> <a id="12c9" class="tk">VERBOSE</a> 1</td></tr>
<tr name="13" id="13">
<td><a id="l13" class='ln'>13</a></td><td></td></tr>
<tr name="14" id="14">
<td><a id="l14" class='ln'>14</a></td><td><span class="pp">#include &lt;stddef.h&gt;</span></td></tr>
<tr name="15" id="15">
<td><a id="l15" class='ln'>15</a></td><td><span class="pp">#include &lt;stdlib.h&gt;</span></td></tr>
<tr name="16" id="16">
<td><a id="l16" class='ln'>16</a></td><td><span class="pp">#include "simstruc.h"</span></td></tr>
<tr name="17" id="17">
<td><a id="l17" class='ln'>17</a></td><td></td></tr>
<tr name="18" id="18">
<td><a id="l18" class='ln'>18</a></td><td><span class="pp">#ifndef</span> <a id="18c9" class="tk">MATLAB_MEX_FILE</a></td></tr>
<tr name="19" id="19">
<td><a id="l19" class='ln'>19</a></td><td><span class="pp">#include &lt;windows.h&gt;</span></td></tr>
<tr name="20" id="20">
<td><a id="l20" class='ln'>20</a></td><td><span class="pp">#include "xpctarget.h"</span></td></tr>
<tr name="21" id="21">
<td><a id="l21" class='ln'>21</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="22" id="22">
<td><a id="l22" class='ln'>22</a></td><td></td></tr>
<tr name="23" id="23">
<td><a id="l23" class='ln'>23</a></td><td><span class="pp">#ifdef</span> <a id="23c8" class="tk">MATLAB_MEX_FILE</a></td></tr>
<tr name="24" id="24">
<td><a id="l24" class='ln'>24</a></td><td><span class="pp">#include "mex.h"</span></td></tr>
<tr name="25" id="25">
<td><a id="l25" class='ln'>25</a></td><td><span class="pp">#else</span></td></tr>
<tr name="26" id="26">
<td><a id="l26" class='ln'>26</a></td><td><span class="pp">#include "xpcethercatutils.h"</span></td></tr>
<tr name="27" id="27">
<td><a id="l27" class='ln'>27</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="28" id="28">
<td><a id="l28" class='ln'>28</a></td><td></td></tr>
<tr name="29" id="29">
<td><a id="l29" class='ln'>29</a></td><td><span class="pp">#define</span> <a id="29c9" class="tk">BITS_PER_INT8</a> 8</td></tr>
<tr name="30" id="30">
<td><a id="l30" class='ln'>30</a></td><td><span class="pp">#define</span> <a id="30c9" class="tk">BITS_PER_UINT8</a> 8</td></tr>
<tr name="31" id="31">
<td><a id="l31" class='ln'>31</a></td><td><span class="pp">#define</span> <a id="31c9" class="tk">BITS_PER_INT16</a> 16</td></tr>
<tr name="32" id="32">
<td><a id="l32" class='ln'>32</a></td><td><span class="pp">#define</span> <a id="32c9" class="tk">BITS_PER_UINT16</a> 16</td></tr>
<tr name="33" id="33">
<td><a id="l33" class='ln'>33</a></td><td><span class="pp">#define</span> <a id="33c9" class="tk">BITS_PER_INT32</a> 32</td></tr>
<tr name="34" id="34">
<td><a id="l34" class='ln'>34</a></td><td><span class="pp">#define</span> <a id="34c9" class="tk">BITS_PER_UINT32</a> 32</td></tr>
<tr name="35" id="35">
<td><a id="l35" class='ln'>35</a></td><td><span class="pp">#define</span> <a id="35c9" class="tk">BITS_PER_REAL32</a> 32</td></tr>
<tr name="36" id="36">
<td><a id="l36" class='ln'>36</a></td><td><span class="pp">#define</span> <a id="36c9" class="tk">BITS_PER_REALT</a> 64</td></tr>
<tr name="37" id="37">
<td><a id="l37" class='ln'>37</a></td><td></td></tr>
<tr name="38" id="38">
<td><a id="l38" class='ln'>38</a></td><td></td></tr>
<tr name="39" id="39">
<td><a id="l39" class='ln'>39</a></td><td><span class="ct">// PARAMETERS</span></td></tr>
<tr name="40" id="40">
<td><a id="l40" class='ln'>40</a></td><td></td></tr>
<tr name="41" id="41">
<td><a id="l41" class='ln'>41</a></td><td><span class="kw">typedef</span> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="42" id="42">
<td><a id="l42" class='ln'>42</a></td><td> <a id="42c4" class="tk">S_PDO_NAME</a> = 0,</td></tr>
<tr name="43" id="43">
<td><a id="l43" class='ln'>43</a></td><td> <a id="43c4" class="tk">S_PDO_OFFSET</a>,</td></tr>
<tr name="44" id="44">
<td><a id="l44" class='ln'>44</a></td><td> <a id="44c4" class="tk">S_SIGNAL_TYPE</a>,</td></tr>
<tr name="45" id="45">
<td><a id="l45" class='ln'>45</a></td><td> <a id="45c4" class="tk">S_PDO_TYPE_BITSIZE</a>,</td></tr>
<tr name="46" id="46">
<td><a id="l46" class='ln'>46</a></td><td> <a id="46c4" class="tk">S_SIGNAL_DIM</a>,</td></tr>
<tr name="47" id="47">
<td><a id="l47" class='ln'>47</a></td><td> <a id="47c4" class="tk">S_DEVICE_ID</a>,</td></tr>
<tr name="48" id="48">
<td><a id="l48" class='ln'>48</a></td><td> <a id="48c4" class="tk">S_SAMPLE_TIME</a>,</td></tr>
<tr name="49" id="49">
<td><a id="l49" class='ln'>49</a></td><td> <a id="49c4" class="tk">NUM_S_PARAMS</a></td></tr>
<tr name="50" id="50">
<td><a id="l50" class='ln'>50</a></td><td><span class="br">}</span> <a id="50c3" class="tk">s_params</a>;</td></tr>
<tr name="51" id="51">
<td><a id="l51" class='ln'>51</a></td><td></td></tr>
<tr name="52" id="52">
<td><a id="l52" class='ln'>52</a></td><td><span class="pp">#if</span> 0</td></tr>
<tr name="53" id="53">
<td><a id="l53" class='ln'>53</a></td><td><span class="ct">// DEBUG, or used if we use the info lookup on the target</span></td></tr>
<tr name="54" id="54">
<td><a id="l54" class='ln'>54</a></td><td><span class="kw">typedef</span> <span class="kw">struct</span> <a id="54c16" class="tk">_EC_T_PROCESS_VAR_INFO</a></td></tr>
<tr name="55" id="55">
<td><a id="l55" class='ln'>55</a></td><td><span class="br">{</span></td></tr>
<tr name="56" id="56">
<td><a id="l56" class='ln'>56</a></td><td> <a id="56c5" class="tk">uint8_T</a> <a id="56c31" class="tk">szName</a>[72]; <span class="ct">/**&lt; [out] Name of the found process variable */</span></td></tr>
<tr name="57" id="57">
<td><a id="l57" class='ln'>57</a></td><td> <a id="57c5" class="tk">uint16_T</a> <a id="57c31" class="tk">wDataType</a>; <span class="ct">/**&lt; [out] Data type of the found process variable */</span></td></tr>
<tr name="58" id="58">
<td><a id="l58" class='ln'>58</a></td><td> <a id="58c5" class="tk">uint32_T</a> <a id="58c31" class="tk">nBitSize</a>; <span class="ct">/**&lt; [out] Size in bit of the found process variable */</span></td></tr>
<tr name="59" id="59">
<td><a id="l59" class='ln'>59</a></td><td> <a id="59c5" class="tk">uint32_T</a> <a id="59c31" class="tk">nBitOffs</a>; <span class="ct">/**&lt; [out] Bit offset in the process data image */</span></td></tr>
<tr name="60" id="60">
<td><a id="l60" class='ln'>60</a></td><td> <a id="60c5" class="tk">uint16_T</a> <a id="60c31" class="tk">wFixedAddr</a>; <span class="ct">/**&lt; [out] Fixed station address of the slave that is owner of this variable */</span></td></tr>
<tr name="61" id="61">
<td><a id="l61" class='ln'>61</a></td><td> <a id="61c5" class="tk">uint8_T</a> <a id="61c31" class="tk">bIsInputData</a>; <span class="ct">/**&lt; [out] Determines whether the found process variable is an input variable or an output variable */</span></td></tr>
<tr name="62" id="62">
<td><a id="l62" class='ln'>62</a></td><td> <a id="62c5" class="tk">uint32_T</a> <a id="62c15" class="tk">dummy</a>[4]; <span class="ct">// Extra to pad stack overwrite???</span></td></tr>
<tr name="63" id="63">
<td><a id="l63" class='ln'>63</a></td><td><span class="br">}</span> <a id="63c4" class="tk">EC_T_PROCESS_VAR_INFO</a>, <a id="63c27" class="tk">*</a><a id="63c28" class="tk">EC_PT_PROCESS_VAR_INFO</a>;</td></tr>
<tr name="64" id="64">
<td><a id="l64" class='ln'>64</a></td><td></td></tr>
<tr name="65" id="65">
<td><a id="l65" class='ln'>65</a></td><td><span class="ct">// end DEBUG</span></td></tr>
<tr name="66" id="66">
<td><a id="l66" class='ln'>66</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="67" id="67">
<td><a id="l67" class='ln'>67</a></td><td></td></tr>
<tr name="68" id="68">
<td><a id="l68" class='ln'>68</a></td><td><span class="pp">#define</span> <a id="68c9" class="tk">ETH_PDO_NAME</a> <a id="68c34" class="tk">ssGetSFcnParam</a>(<a id="68c49" class="tk">S</a>,<a id="68c51" class="tk">S_PDO_NAME</a>)</td></tr>
<tr name="69" id="69">
<td><a id="l69" class='ln'>69</a></td><td><span class="pp">#define</span> <a id="69c9" class="tk">ETH_PDO_OFFSET</a> <a id="69c34" class="tk">ssGetSFcnParam</a>(<a id="69c49" class="tk">S</a>,<a id="69c51" class="tk">S_PDO_OFFSET</a>)</td></tr>
<tr name="70" id="70">
<td><a id="l70" class='ln'>70</a></td><td><span class="pp">#define</span> <a id="70c9" class="tk">ETH_PDO_TYPE_BITSIZE</a> <a id="70c34" class="tk">ssGetSFcnParam</a>(<a id="70c49" class="tk">S</a>,<a id="70c51" class="tk">S_PDO_TYPE_BITSIZE</a>)</td></tr>
<tr name="71" id="71">
<td><a id="l71" class='ln'>71</a></td><td><span class="pp">#define</span> <a id="71c9" class="tk">ETH_PDO_SIGNAL_TYPE</a> <a id="71c34" class="tk">ssGetSFcnParam</a>(<a id="71c49" class="tk">S</a>,<a id="71c51" class="tk">S_SIGNAL_TYPE</a>)</td></tr>
<tr name="72" id="72">
<td><a id="l72" class='ln'>72</a></td><td><span class="pp">#define</span> <a id="72c9" class="tk">ETH_PDO_SIGNAL_DIM</a> <a id="72c34" class="tk">ssGetSFcnParam</a>(<a id="72c49" class="tk">S</a>,<a id="72c51" class="tk">S_SIGNAL_DIM</a>)</td></tr>
<tr name="73" id="73">
<td><a id="l73" class='ln'>73</a></td><td><span class="pp">#define</span> <a id="73c9" class="tk">ETH_DEVICE_ID</a> <a id="73c34" class="tk">ssGetSFcnParam</a>(<a id="73c49" class="tk">S</a>,<a id="73c51" class="tk">S_DEVICE_ID</a>)</td></tr>
<tr name="74" id="74">
<td><a id="l74" class='ln'>74</a></td><td><span class="pp">#define</span> <a id="74c9" class="tk">ETH_PDO_SAMPLE_TIME</a> <a id="74c34" class="tk">ssGetSFcnParam</a>(<a id="74c49" class="tk">S</a>,<a id="74c51" class="tk">S_SAMPLE_TIME</a>)</td></tr>
<tr name="75" id="75">
<td><a id="l75" class='ln'>75</a></td><td></td></tr>
<tr name="76" id="76">
<td><a id="l76" class='ln'>76</a></td><td><span class="kw">typedef</span> <span class="kw">enum</span> <span class="br">{</span></td></tr>
<tr name="77" id="77">
<td><a id="l77" class='ln'>77</a></td><td> <a id="77c4" class="tk">I_DEVICE_ID</a> = 0,</td></tr>
<tr name="78" id="78">
<td><a id="l78" class='ln'>78</a></td><td> <a id="78c4" class="tk">I_PDO_SIZE</a>,</td></tr>
<tr name="79" id="79">
<td><a id="l79" class='ln'>79</a></td><td> <a id="79c4" class="tk">I_PDO_TYPE</a>,</td></tr>
<tr name="80" id="80">
<td><a id="l80" class='ln'>80</a></td><td> <a id="80c4" class="tk">I_PDO_OFFSET</a>,</td></tr>
<tr name="81" id="81">
<td><a id="l81" class='ln'>81</a></td><td> <a id="81c4" class="tk">I_PDO_TYPE_BIT_SIZE</a>,</td></tr>
<tr name="82" id="82">
<td><a id="l82" class='ln'>82</a></td><td> <a id="82c4" class="tk">I_SIG_TYPE_BIT_SIZE</a>,</td></tr>
<tr name="83" id="83">
<td><a id="l83" class='ln'>83</a></td><td> <a id="83c4" class="tk">I_SIG_WIDTH</a>,</td></tr>
<tr name="84" id="84">
<td><a id="l84" class='ln'>84</a></td><td> <a id="84c4" class="tk">NUM_I_WORKS</a></td></tr>
<tr name="85" id="85">
<td><a id="l85" class='ln'>85</a></td><td><span class="br">}</span> <a id="85c4" class="tk">i_works</a>;</td></tr>
<tr name="86" id="86">
<td><a id="l86" class='ln'>86</a></td><td></td></tr>
<tr name="87" id="87">
<td><a id="l87" class='ln'>87</a></td><td><span class="kw">static</span> <a id="87c8" class="tk">char_T</a> <a id="87c20" class="tk">msg</a>[256];</td></tr>
<tr name="88" id="88">
<td><a id="l88" class='ln'>88</a></td><td></td></tr>
<tr name="89" id="89">
<td><a id="l89" class='ln'>89</a></td><td><span class="ct">/*** Simulation Code</span></td></tr>
<tr name="90" id="90">
<td><a id="l90" class='ln'>90</a></td><td><span class="ct">#ifdef MATLAB_MEX_FILE</span></td></tr>
<tr name="91" id="91">
<td><a id="l91" class='ln'>91</a></td><td><span class="ct"></span></td></tr>
<tr name="92" id="92">
<td><a id="l92" class='ln'>92</a></td><td><span class="ct">#endif</span></td></tr>
<tr name="93" id="93">
<td><a id="l93" class='ln'>93</a></td><td><span class="ct">*******************/</span></td></tr>
<tr name="94" id="94">
<td><a id="l94" class='ln'>94</a></td><td></td></tr>
<tr name="95" id="95">
<td><a id="l95" class='ln'>95</a></td><td></td></tr>
<tr name="96" id="96">
<td><a id="l96" class='ln'>96</a></td><td><span class="kw">static</span> <a id="96c8" class="tk">int_T</a> <a id="96c14" class="tk">getDataTypeSize</a>(<a id="96c30" class="tk">SimStruct</a> <a id="96c40" class="tk">*</a><a id="96c41" class="tk">S</a>,<a id="96c43" class="tk">DTypeId</a> <a id="96c51" class="tk">dtype</a>)</td></tr>
<tr name="97" id="97">
<td><a id="l97" class='ln'>97</a></td><td><span class="br">{</span></td></tr>
<tr name="98" id="98">
<td><a id="l98" class='ln'>98</a></td><td> <span class="kw">switch</span> (<a id="98c13" class="tk">dtype</a>) <span class="br">{</span></td></tr>
<tr name="99" id="99">
<td><a id="l99" class='ln'>99</a></td><td> <span class="kw">case</span> <a id="99c14" class="tk">SS_DOUBLE</a><a id="99c23" class="tk">:</a></td></tr>
<tr name="100" id="100">
<td><a id="l100" class='ln'>100</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span>(<a id="100c27" class="tk">real_T</a>);</td></tr>
<tr name="101" id="101">
<td><a id="l101" class='ln'>101</a></td><td> <span class="kw">case</span> <a id="101c14" class="tk">SS_SINGLE</a><a id="101c23" class="tk">:</a></td></tr>
<tr name="102" id="102">
<td><a id="l102" class='ln'>102</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span>(<a id="102c27" class="tk">real32_T</a>);</td></tr>
<tr name="103" id="103">
<td><a id="l103" class='ln'>103</a></td><td> <span class="kw">case</span> <a id="103c14" class="tk">SS_BOOLEAN</a><a id="103c24" class="tk">:</a></td></tr>
<tr name="104" id="104">
<td><a id="l104" class='ln'>104</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span>(<a id="104c27" class="tk">boolean_T</a>);</td></tr>
<tr name="105" id="105">
<td><a id="l105" class='ln'>105</a></td><td> <span class="kw">case</span> <a id="105c14" class="tk">SS_INT8</a><a id="105c21" class="tk">:</a></td></tr>
<tr name="106" id="106">
<td><a id="l106" class='ln'>106</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span> (<a id="106c28" class="tk">int8_T</a>);</td></tr>
<tr name="107" id="107">
<td><a id="l107" class='ln'>107</a></td><td> <span class="kw">case</span> <a id="107c14" class="tk">SS_UINT8</a><a id="107c22" class="tk">:</a></td></tr>
<tr name="108" id="108">
<td><a id="l108" class='ln'>108</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span> (<a id="108c28" class="tk">uint8_T</a>);</td></tr>
<tr name="109" id="109">
<td><a id="l109" class='ln'>109</a></td><td> <span class="kw">case</span> <a id="109c14" class="tk">SS_INT16</a><a id="109c22" class="tk">:</a></td></tr>
<tr name="110" id="110">
<td><a id="l110" class='ln'>110</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span> (<a id="110c28" class="tk">int16_T</a>);</td></tr>
<tr name="111" id="111">
<td><a id="l111" class='ln'>111</a></td><td> <span class="kw">case</span> <a id="111c14" class="tk">SS_UINT16</a><a id="111c23" class="tk">:</a></td></tr>
<tr name="112" id="112">
<td><a id="l112" class='ln'>112</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span> (<a id="112c28" class="tk">uint16_T</a>);</td></tr>
<tr name="113" id="113">
<td><a id="l113" class='ln'>113</a></td><td> <span class="kw">case</span> <a id="113c14" class="tk">SS_INT32</a><a id="113c22" class="tk">:</a></td></tr>
<tr name="114" id="114">
<td><a id="l114" class='ln'>114</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span> (<a id="114c28" class="tk">int32_T</a>);</td></tr>
<tr name="115" id="115">
<td><a id="l115" class='ln'>115</a></td><td> <span class="kw">case</span> <a id="115c14" class="tk">SS_UINT32</a><a id="115c23" class="tk">:</a></td></tr>
<tr name="116" id="116">
<td><a id="l116" class='ln'>116</a></td><td> <span class="kw">return</span> <span class="kw">sizeof</span>(<a id="116c27" class="tk">uint32_T</a>);</td></tr>
<tr name="117" id="117">
<td><a id="l117" class='ln'>117</a></td><td> <span class="kw">default</span><a id="117c16" class="tk">:</a></td></tr>
<tr name="118" id="118">
<td><a id="l118" class='ln'>118</a></td><td> <a id="118c13" class="tk">ssSetErrorStatus</a>(<a id="118c30" class="tk">S</a>, "Unsupported data type specified for xpcethercat_tx_var");</td></tr>
<tr name="119" id="119">
<td><a id="l119" class='ln'>119</a></td><td> <span class="kw">return</span> 0;</td></tr>
<tr name="120" id="120">
<td><a id="l120" class='ln'>120</a></td><td> <span class="br">}</span></td></tr>
<tr name="121" id="121">
<td><a id="l121" class='ln'>121</a></td><td> <span class="kw">return</span> 0;</td></tr>
<tr name="122" id="122">
<td><a id="l122" class='ln'>122</a></td><td><span class="br">}</span></td></tr>
<tr name="123" id="123">
<td><a id="l123" class='ln'>123</a></td><td></td></tr>
<tr name="124" id="124">
<td><a id="l124" class='ln'>124</a></td><td><span class="ct">/***************************************************************************************</span></td></tr>
<tr name="125" id="125">
<td><a id="l125" class='ln'>125</a></td><td><span class="ct"> * Function Name: bitCopy</span></td></tr>
<tr name="126" id="126">
<td><a id="l126" class='ln'>126</a></td><td><span class="ct"> * Purpose: This function copies the specified integer value into the bit array "bitPtr".</span></td></tr>
<tr name="127" id="127">
<td><a id="l127" class='ln'>127</a></td><td><span class="ct"> *</span></td></tr>
<tr name="128" id="128">
<td><a id="l128" class='ln'>128</a></td><td><span class="ct"> ****************************************************************************************/</span></td></tr>
<tr name="129" id="129">
<td><a id="l129" class='ln'>129</a></td><td></td></tr>
<tr name="130" id="130">
<td><a id="l130" class='ln'>130</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="130c13" class="tk">bitCopy</a>(<span class="kw">unsigned</span> <span class="kw">char</span> <a id="130c35" class="tk">*</a><a id="130c36" class="tk">bitPtr</a>, <span class="kw">int</span> <a id="130c48" class="tk">bitoff</a>, <span class="kw">int</span> <a id="130c60" class="tk">numBits</a>, <span class="kw">unsigned</span> <span class="kw">int</span> <a id="130c82" class="tk">val</a>)</td></tr>
<tr name="131" id="131">
<td><a id="l131" class='ln'>131</a></td><td><span class="br">{</span></td></tr>
<tr name="132" id="132">
<td><a id="l132" class='ln'>132</a></td><td> <span class="kw">int</span> <a id="132c11" class="tk">sByte</a>;</td></tr>
<tr name="133" id="133">
<td><a id="l133" class='ln'>133</a></td><td> <span class="kw">int</span> <a id="133c15" class="tk">sbit</a>;</td></tr>
<tr name="134" id="134">
<td><a id="l134" class='ln'>134</a></td><td> <span class="kw">int</span> <a id="134c15" class="tk">ebit</a>;</td></tr>
<tr name="135" id="135">
<td><a id="l135" class='ln'>135</a></td><td> <span class="kw">int</span> <a id="135c15" class="tk">i</a>;</td></tr>
<tr name="136" id="136">
<td><a id="l136" class='ln'>136</a></td><td> <span class="kw">unsigned</span> <span class="kw">char</span> <a id="136c25" class="tk">bitVal</a>;</td></tr>
<tr name="137" id="137">
<td><a id="l137" class='ln'>137</a></td><td> <span class="kw">int</span> <a id="137c25" class="tk">srcBitNum</a>;</td></tr>
<tr name="138" id="138">
<td><a id="l138" class='ln'>138</a></td><td> <span class="kw">int</span> <a id="138c25" class="tk">tgtBitNum</a>;</td></tr>
<tr name="139" id="139">
<td><a id="l139" class='ln'>139</a></td><td> <span class="kw">unsigned</span> <span class="kw">char</span> <a id="139c25" class="tk">*</a><a id="139c26" class="tk">cValPtr</a>;</td></tr>
<tr name="140" id="140">
<td><a id="l140" class='ln'>140</a></td><td> <span class="kw">int</span> <a id="140c15" class="tk">tgtByte</a>;</td></tr>
<tr name="141" id="141">
<td><a id="l141" class='ln'>141</a></td><td></td></tr>
<tr name="142" id="142">
<td><a id="l142" class='ln'>142</a></td><td> <a id="142c9" class="tk">sbit</a> = <a id="142c19" class="tk">bitoff</a><a id="142c25" class="tk">%</a>8;</td></tr>
<tr name="143" id="143">
<td><a id="l143" class='ln'>143</a></td><td> <a id="143c9" class="tk">sByte</a> = <a id="143c19" class="tk">bitoff</a><a id="143c25" class="tk">/</a>8;</td></tr>
<tr name="144" id="144">
<td><a id="l144" class='ln'>144</a></td><td> <a id="144c9" class="tk">ebit</a> = <a id="144c19" class="tk">sbit</a> <a id="144c24" class="tk">+</a> <a id="144c26" class="tk">numBits</a> <a id="144c34" class="tk">-</a> 1;</td></tr>
<tr name="145" id="145">
<td><a id="l145" class='ln'>145</a></td><td></td></tr>
<tr name="146" id="146">
<td><a id="l146" class='ln'>146</a></td><td></td></tr>
<tr name="147" id="147">
<td><a id="l147" class='ln'>147</a></td><td> <a id="147c9" class="tk">cValPtr</a> = (<span class="kw">unsigned</span> <span class="kw">char</span> <a id="147c34" class="tk">*</a>) <a id="147c37" class="tk">&amp;</a><a id="147c38" class="tk">val</a>;</td></tr>
<tr name="148" id="148">
<td><a id="l148" class='ln'>148</a></td><td> <span class="kw">for</span> (<a id="148c14" class="tk">i</a>=0;<a id="148c18" class="tk">i</a><a id="148c19" class="tk">&lt;</a><a id="148c20" class="tk">numBits</a>;<a id="148c28" class="tk">i</a><a id="148c29" class="tk">++</a>) <span class="br">{</span></td></tr>
<tr name="149" id="149">
<td><a id="l149" class='ln'>149</a></td><td> <span class="ct">// Get the bit value of the next bit to be copied.</span></td></tr>
<tr name="150" id="150">
<td><a id="l150" class='ln'>150</a></td><td> <a id="150c17" class="tk">srcBitNum</a> = <a id="150c29" class="tk">i</a><a id="150c30" class="tk">%</a>8;</td></tr>
<tr name="151" id="151">
<td><a id="l151" class='ln'>151</a></td><td> <a id="151c13" class="tk">bitVal</a> = <a id="151c22" class="tk">cValPtr</a>[<a id="151c30" class="tk">i</a><a id="151c31" class="tk">/</a>8];</td></tr>
<tr name="152" id="152">
<td><a id="l152" class='ln'>152</a></td><td> <a id="152c17" class="tk">bitVal</a> = <a id="152c26" class="tk">bitVal</a> <a id="152c33" class="tk">&lt;&lt;</a> (7<a id="152c38" class="tk">-</a><a id="152c39" class="tk">srcBitNum</a>);</td></tr>
<tr name="153" id="153">
<td><a id="l153" class='ln'>153</a></td><td> <a id="153c17" class="tk">bitVal</a> = <a id="153c26" class="tk">bitVal</a><a id="153c32" class="tk">&gt;&gt;</a>7;</td></tr>
<tr name="154" id="154">
<td><a id="l154" class='ln'>154</a></td><td> <span class="ct">// Set the value of the bit in the target bit location in the bit array.</span></td></tr>
<tr name="155" id="155">
<td><a id="l155" class='ln'>155</a></td><td> <a id="155c17" class="tk">tgtBitNum</a> = (<a id="155c30" class="tk">sbit</a> <a id="155c35" class="tk">+</a> <a id="155c37" class="tk">i</a>)<a id="155c39" class="tk">%</a>8;</td></tr>
<tr name="156" id="156">
<td><a id="l156" class='ln'>156</a></td><td> <a id="156c17" class="tk">tgtByte</a> = <a id="156c27" class="tk">sByte</a><a id="156c32" class="tk">+</a>(<a id="156c34" class="tk">sbit</a><a id="156c38" class="tk">+</a><a id="156c39" class="tk">i</a>)<a id="156c41" class="tk">/</a>8;</td></tr>
<tr name="157" id="157">
<td><a id="l157" class='ln'>157</a></td><td> <a id="157c9" class="tk">bitPtr</a>[<a id="157c16" class="tk">tgtByte</a>] <a id="157c25" class="tk">&amp;=</a> <a id="157c28" class="tk">~</a>(1<a id="157c31" class="tk">&lt;&lt;</a>(<a id="157c34" class="tk">tgtBitNum</a>)); <span class="ct">/* Clear the bit in the target */</span></td></tr>
<tr name="158" id="158">
<td><a id="l158" class='ln'>158</a></td><td> <a id="158c17" class="tk">bitPtr</a>[<a id="158c24" class="tk">tgtByte</a>] <a id="158c33" class="tk">|=</a> (<a id="158c37" class="tk">bitVal</a>)<a id="158c44" class="tk">&lt;&lt;</a><a id="158c46" class="tk">tgtBitNum</a>; <span class="ct">/* Set the bit in the target */</span></td></tr>
<tr name="159" id="159">
<td><a id="l159" class='ln'>159</a></td><td> <span class="br">}</span></td></tr>
<tr name="160" id="160">
<td><a id="l160" class='ln'>160</a></td><td></td></tr>
<tr name="161" id="161">
<td><a id="l161" class='ln'>161</a></td><td><span class="br">}</span></td></tr>
<tr name="162" id="162">
<td><a id="l162" class='ln'>162</a></td><td></td></tr>
<tr name="163" id="163">
<td><a id="l163" class='ln'>163</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="163c13" class="tk">mdlInitializeSizes</a>(<a id="163c32" class="tk">SimStruct</a> <a id="163c42" class="tk">*</a><a id="163c43" class="tk">S</a>)</td></tr>
<tr name="164" id="164">
<td><a id="l164" class='ln'>164</a></td><td><span class="br">{</span></td></tr>
<tr name="165" id="165">
<td><a id="l165" class='ln'>165</a></td><td> <a id="165c4" class="tk">int_T</a> <a id="165c25" class="tk">num_params</a>;</td></tr>
<tr name="166" id="166">
<td><a id="l166" class='ln'>166</a></td><td> <a id="166c4" class="tk">int_T</a> <a id="166c25" class="tk">portIndex</a>;</td></tr>
<tr name="167" id="167">
<td><a id="l167" class='ln'>167</a></td><td> <a id="167c4" class="tk">int_T</a> <a id="167c25" class="tk">sigWidth</a>;</td></tr>
<tr name="168" id="168">
<td><a id="l168" class='ln'>168</a></td><td> <a id="168c4" class="tk">DTypeId</a> <a id="168c25" class="tk">sigType</a>;</td></tr>
<tr name="169" id="169">
<td><a id="l169" class='ln'>169</a></td><td> <a id="169c4" class="tk">int_T</a> <a id="169c25" class="tk">j</a>;</td></tr>
<tr name="170" id="170">
<td><a id="l170" class='ln'>170</a></td><td></td></tr>
<tr name="171" id="171">
<td><a id="l171" class='ln'>171</a></td><td></td></tr>
<tr name="172" id="172">
<td><a id="l172" class='ln'>172</a></td><td> <a id="172c4" class="tk">ssSetNumSFcnParams</a>(<a id="172c23" class="tk">S</a>, <a id="172c26" class="tk">NUM_S_PARAMS</a>);</td></tr>
<tr name="173" id="173">
<td><a id="l173" class='ln'>173</a></td><td> <span class="kw">if</span> (<a id="173c8" class="tk">ssGetNumSFcnParams</a>(<a id="173c27" class="tk">S</a>) <a id="173c30" class="tk">!=</a> <a id="173c33" class="tk">ssGetSFcnParamsCount</a>(<a id="173c54" class="tk">S</a>)) <span class="br">{</span></td></tr>
<tr name="174" id="174">
<td><a id="l174" class='ln'>174</a></td><td> <a id="174c7" class="tk">sprintf</a>(<a id="174c15" class="tk">msg</a>, "%d input args expected, %d passed", <a id="174c57" class="tk">NUM_S_PARAMS</a>, <a id="174c71" class="tk">ssGetSFcnParamsCount</a>(<a id="174c92" class="tk">S</a>));</td></tr>
<tr name="175" id="175">
<td><a id="l175" class='ln'>175</a></td><td> <a id="175c7" class="tk">ssSetErrorStatus</a>(<a id="175c24" class="tk">S</a>, <a id="175c27" class="tk">msg</a>);</td></tr>
<tr name="176" id="176">
<td><a id="l176" class='ln'>176</a></td><td> <span class="kw">return</span>;</td></tr>
<tr name="177" id="177">
<td><a id="l177" class='ln'>177</a></td><td> <span class="br">}</span></td></tr>
<tr name="178" id="178">
<td><a id="l178" class='ln'>178</a></td><td></td></tr>
<tr name="179" id="179">
<td><a id="l179" class='ln'>179</a></td><td> <a id="179c4" class="tk">ssSetNumContStates</a>(<a id="179c23" class="tk">S</a>, 0);</td></tr>
<tr name="180" id="180">
<td><a id="l180" class='ln'>180</a></td><td> <a id="180c4" class="tk">ssSetNumDiscStates</a>(<a id="180c23" class="tk">S</a>, 0);</td></tr>
<tr name="181" id="181">
<td><a id="l181" class='ln'>181</a></td><td> <span class="kw">if</span> ( <a id="181c9" class="tk">!</a><a id="181c10" class="tk">ssSetNumOutputPorts</a>(<a id="181c30" class="tk">S</a>,0) ) <span class="kw">return</span>;</td></tr>
<tr name="182" id="182">
<td><a id="l182" class='ln'>182</a></td><td> <span class="kw">if</span> ( <a id="182c9" class="tk">!</a><a id="182c10" class="tk">ssSetNumInputPorts</a>(<a id="182c29" class="tk">S</a>, 1) ) <span class="kw">return</span>;</td></tr>
<tr name="183" id="183">
<td><a id="l183" class='ln'>183</a></td><td> <a id="183c4" class="tk">ssSetInputPortRequiredContiguous</a>(<a id="183c37" class="tk">S</a>,0,1);</td></tr>
<tr name="184" id="184">
<td><a id="l184" class='ln'>184</a></td><td> <a id="184c4" class="tk">portIndex</a> = 0;</td></tr>
<tr name="185" id="185">
<td><a id="l185" class='ln'>185</a></td><td></td></tr>
<tr name="186" id="186">
<td><a id="l186" class='ln'>186</a></td><td> <a id="186c4" class="tk">sigWidth</a> = (<a id="186c16" class="tk">int_T</a>)<a id="186c22" class="tk">mxGetPr</a>(<a id="186c30" class="tk">ETH_PDO_SIGNAL_DIM</a>)[0];</td></tr>
<tr name="187" id="187">
<td><a id="l187" class='ln'>187</a></td><td></td></tr>
<tr name="188" id="188">
<td><a id="l188" class='ln'>188</a></td><td> <span class="ct">// The PDO parameter S_NUM_SIGNALS specifies the number of outputs.</span></td></tr>
<tr name="189" id="189">
<td><a id="l189" class='ln'>189</a></td><td></td></tr>
<tr name="190" id="190">
<td><a id="l190" class='ln'>190</a></td><td> <a id="190c5" class="tk">num_params</a> = (<a id="190c19" class="tk">int32_T</a>)<a id="190c27" class="tk">ssGetSFcnParamsCount</a>(<a id="190c48" class="tk">S</a>);</td></tr>
<tr name="191" id="191">
<td><a id="l191" class='ln'>191</a></td><td></td></tr>
<tr name="192" id="192">
<td><a id="l192" class='ln'>192</a></td><td> <span class="ct">// Get signal data type</span></td></tr>
<tr name="193" id="193">
<td><a id="l193" class='ln'>193</a></td><td></td></tr>
<tr name="194" id="194">
<td><a id="l194" class='ln'>194</a></td><td> <a id="194c5" class="tk">sigType</a> = (<a id="194c16" class="tk">DTypeId</a>)((<a id="194c26" class="tk">int_T</a>)(<a id="194c33" class="tk">mxGetPr</a>(<a id="194c41" class="tk">ETH_PDO_SIGNAL_TYPE</a>)[0])<a id="194c65" class="tk">-</a>1);</td></tr>
<tr name="195" id="195">
<td><a id="l195" class='ln'>195</a></td><td></td></tr>
<tr name="196" id="196">
<td><a id="l196" class='ln'>196</a></td><td> <span class="ct">// Get the number of cells in DataTypeArray</span></td></tr>
<tr name="197" id="197">
<td><a id="l197" class='ln'>197</a></td><td></td></tr>
<tr name="198" id="198">
<td><a id="l198" class='ln'>198</a></td><td></td></tr>
<tr name="199" id="199">
<td><a id="l199" class='ln'>199</a></td><td><span class="pp">#ifdef</span> <a id="199c8" class="tk">MATLAB_MEX_FILE</a></td></tr>
<tr name="200" id="200">
<td><a id="l200" class='ln'>200</a></td><td></td></tr>
<tr name="201" id="201">
<td><a id="l201" class='ln'>201</a></td><td> <a id="201c5" class="tk">ssSetInputPortDirectFeedThrough</a>(<a id="201c37" class="tk">S</a>,<a id="201c39" class="tk">portIndex</a>,1);</td></tr>
<tr name="202" id="202">
<td><a id="l202" class='ln'>202</a></td><td> <a id="202c9" class="tk">ssSetInputPortDataType</a>(<a id="202c32" class="tk">S</a>, <a id="202c35" class="tk">portIndex</a>, <a id="202c46" class="tk">sigType</a>);</td></tr>
<tr name="203" id="203">
<td><a id="l203" class='ln'>203</a></td><td> <a id="203c9" class="tk">ssSetInputPortWidth</a>(<a id="203c29" class="tk">S</a>, <a id="203c32" class="tk">portIndex</a>,<a id="203c42" class="tk">sigWidth</a>);</td></tr>
<tr name="204" id="204">
<td><a id="l204" class='ln'>204</a></td><td></td></tr>
<tr name="205" id="205">
<td><a id="l205" class='ln'>205</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="206" id="206">
<td><a id="l206" class='ln'>206</a></td><td> <a id="206c4" class="tk">ssSetNumSampleTimes</a>(<a id="206c24" class="tk">S</a>, 1);</td></tr>
<tr name="207" id="207">
<td><a id="l207" class='ln'>207</a></td><td> <a id="207c4" class="tk">ssSetModelReferenceSampleTimeInheritanceRule</a>(<a id="207c49" class="tk">S</a>, <a id="207c52" class="tk">USE_DEFAULT_FOR_DISCRETE_INHERITANCE</a> );</td></tr>
<tr name="208" id="208">
<td><a id="l208" class='ln'>208</a></td><td> <a id="208c4" class="tk">ssSetNumIWork</a>(<a id="208c18" class="tk">S</a>, <a id="208c21" class="tk">NUM_I_WORKS</a>);</td></tr>
<tr name="209" id="209">
<td><a id="l209" class='ln'>209</a></td><td> <a id="209c4" class="tk">ssSetNumRWork</a>(<a id="209c18" class="tk">S</a>, 0);</td></tr>
<tr name="210" id="210">
<td><a id="l210" class='ln'>210</a></td><td> <a id="210c4" class="tk">ssSetNumPWork</a>(<a id="210c18" class="tk">S</a>, 0);</td></tr>
<tr name="211" id="211">
<td><a id="l211" class='ln'>211</a></td><td> <a id="211c4" class="tk">ssSetNumModes</a>(<a id="211c18" class="tk">S</a>, 0);</td></tr>
<tr name="212" id="212">
<td><a id="l212" class='ln'>212</a></td><td> <a id="212c4" class="tk">ssSetNumNonsampledZCs</a>(<a id="212c26" class="tk">S</a>, 0);</td></tr>
<tr name="213" id="213">
<td><a id="l213" class='ln'>213</a></td><td></td></tr>
<tr name="214" id="214">
<td><a id="l214" class='ln'>214</a></td><td> <a id="214c4" class="tk">ssSetSimStateCompliance</a>(<a id="214c28" class="tk">S</a>, <a id="214c31" class="tk">HAS_NO_SIM_STATE</a>);</td></tr>
<tr name="215" id="215">
<td><a id="l215" class='ln'>215</a></td><td></td></tr>
<tr name="216" id="216">
<td><a id="l216" class='ln'>216</a></td><td> <span class="kw">for</span> ( <a id="216c10" class="tk">j</a> = 0 ; <a id="216c18" class="tk">j</a> <a id="216c20" class="tk">&lt;</a> <a id="216c22" class="tk">NUM_S_PARAMS</a> ; <a id="216c37" class="tk">j</a><a id="216c38" class="tk">++</a> ) <span class="br">{</span></td></tr>
<tr name="217" id="217">
<td><a id="l217" class='ln'>217</a></td><td> <a id="217c7" class="tk">ssSetSFcnParamTunable</a>(<a id="217c29" class="tk">S</a>, <a id="217c32" class="tk">j</a>, <a id="217c35" class="tk">SS_PRM_NOT_TUNABLE</a>);</td></tr>
<tr name="218" id="218">
<td><a id="l218" class='ln'>218</a></td><td> <span class="br">}</span></td></tr>
<tr name="219" id="219">
<td><a id="l219" class='ln'>219</a></td><td> <a id="219c4" class="tk">ssSetOptions</a>(<a id="219c17" class="tk">S</a>, <a id="219c20" class="tk">SS_OPTION_RUNTIME_EXCEPTION_FREE_CODE</a><a id="219c57" class="tk">|</a></td></tr>
<tr name="220" id="220">
<td><a id="l220" class='ln'>220</a></td><td> <a id="220c20" class="tk">SS_OPTION_DISALLOW_CONSTANT_SAMPLE_TIME</a>);</td></tr>
<tr name="221" id="221">
<td><a id="l221" class='ln'>221</a></td><td><span class="br">}</span></td></tr>
<tr name="222" id="222">
<td><a id="l222" class='ln'>222</a></td><td></td></tr>
<tr name="223" id="223">
<td><a id="l223" class='ln'>223</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="223c13" class="tk">mdlInitializeSampleTimes</a>(<a id="223c38" class="tk">SimStruct</a> <a id="223c48" class="tk">*</a><a id="223c49" class="tk">S</a>)</td></tr>
<tr name="224" id="224">
<td><a id="l224" class='ln'>224</a></td><td><span class="br">{</span></td></tr>
<tr name="225" id="225">
<td><a id="l225" class='ln'>225</a></td><td> <a id="225c4" class="tk">real_T</a> <a id="225c11" class="tk">sampleTime</a>;</td></tr>
<tr name="226" id="226">
<td><a id="l226" class='ln'>226</a></td><td></td></tr>
<tr name="227" id="227">
<td><a id="l227" class='ln'>227</a></td><td> <a id="227c4" class="tk">sampleTime</a> = <a id="227c17" class="tk">mxGetPr</a>(<a id="227c25" class="tk">ETH_PDO_SAMPLE_TIME</a>)[0];</td></tr>
<tr name="228" id="228">
<td><a id="l228" class='ln'>228</a></td><td></td></tr>
<tr name="229" id="229">
<td><a id="l229" class='ln'>229</a></td><td> <span class="ct">// Since the sampletime comes from the config file, we should never inherit!</span></td></tr>
<tr name="230" id="230">
<td><a id="l230" class='ln'>230</a></td><td> <span class="kw">if</span> ( <a id="230c9" class="tk">sampleTime</a> <a id="230c20" class="tk">==</a> <a id="230c23" class="tk">-</a>1.0 ) <span class="br">{</span></td></tr>
<tr name="231" id="231">
<td><a id="l231" class='ln'>231</a></td><td> <span class="ct">// We should never see this error message!</span></td></tr>
<tr name="232" id="232">
<td><a id="l232" class='ln'>232</a></td><td> <a id="232c9" class="tk">sprintf</a>( <a id="232c18" class="tk">msg</a>, "%s\n", "No sampletime is set for the EtherCAT PDO read block");</td></tr>
<tr name="233" id="233">
<td><a id="l233" class='ln'>233</a></td><td> <a id="233c9" class="tk">ssSetErrorStatus</a>(<a id="233c26" class="tk">S</a>, <a id="233c29" class="tk">msg</a>);</td></tr>
<tr name="234" id="234">
<td><a id="l234" class='ln'>234</a></td><td> <span class="kw">return</span>;</td></tr>
<tr name="235" id="235">
<td><a id="l235" class='ln'>235</a></td><td> <span class="br">}</span> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="236" id="236">
<td><a id="l236" class='ln'>236</a></td><td> <a id="236c7" class="tk">ssSetSampleTime</a>(<a id="236c23" class="tk">S</a>, 0, <a id="236c29" class="tk">sampleTime</a>);</td></tr>
<tr name="237" id="237">
<td><a id="l237" class='ln'>237</a></td><td> <a id="237c7" class="tk">ssSetOffsetTime</a>(<a id="237c23" class="tk">S</a>, 0, 0.0);</td></tr>
<tr name="238" id="238">
<td><a id="l238" class='ln'>238</a></td><td> <span class="br">}</span></td></tr>
<tr name="239" id="239">
<td><a id="l239" class='ln'>239</a></td><td><span class="br">}</span></td></tr>
<tr name="240" id="240">
<td><a id="l240" class='ln'>240</a></td><td></td></tr>
<tr name="241" id="241">
<td><a id="l241" class='ln'>241</a></td><td><span class="pp">#define</span> <a id="241c9" class="tk">MDL_START</a></td></tr>
<tr name="242" id="242">
<td><a id="l242" class='ln'>242</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="242c13" class="tk">mdlStart</a>(<a id="242c22" class="tk">SimStruct</a> <a id="242c32" class="tk">*</a><a id="242c33" class="tk">S</a>)</td></tr>
<tr name="243" id="243">
<td><a id="l243" class='ln'>243</a></td><td><span class="br">{</span></td></tr>
<tr name="244" id="244">
<td><a id="l244" class='ln'>244</a></td><td> <a id="244c4" class="tk">int_T</a> <a id="244c27" class="tk">deviceIndex</a>;</td></tr>
<tr name="245" id="245">
<td><a id="l245" class='ln'>245</a></td><td> <a id="245c4" class="tk">DTypeId</a> <a id="245c27" class="tk">sigType</a>;</td></tr>
<tr name="246" id="246">
<td><a id="l246" class='ln'>246</a></td><td> <a id="246c4" class="tk">int_T</a> <a id="246c27" class="tk">pdoTypeBitSize</a>;</td></tr>
<tr name="247" id="247">
<td><a id="l247" class='ln'>247</a></td><td> <a id="247c4" class="tk">int_T</a> <a id="247c27" class="tk">sigWidth</a>;</td></tr>
<tr name="248" id="248">
<td><a id="l248" class='ln'>248</a></td><td> <a id="248c4" class="tk">int_T</a> <a id="248c27" class="tk">pdoOffset</a>;</td></tr>
<tr name="249" id="249">
<td><a id="l249" class='ln'>249</a></td><td> <a id="249c4" class="tk">int_T</a> <a id="249c27" class="tk">sigTypeSize</a>;</td></tr>
<tr name="250" id="250">
<td><a id="l250" class='ln'>250</a></td><td></td></tr>
<tr name="251" id="251">
<td><a id="l251" class='ln'>251</a></td><td> <a id="251c4" class="tk">deviceIndex</a> = (<a id="251c20" class="tk">int_T</a>)<a id="251c26" class="tk">mxGetPr</a>(<a id="251c34" class="tk">ETH_DEVICE_ID</a>)[0];</td></tr>
<tr name="252" id="252">
<td><a id="l252" class='ln'>252</a></td><td> <a id="252c4" class="tk">deviceIndex</a>=<a id="252c16" class="tk">deviceIndex</a>;</td></tr>
<tr name="253" id="253">
<td><a id="l253" class='ln'>253</a></td><td></td></tr>
<tr name="254" id="254">
<td><a id="l254" class='ln'>254</a></td><td><span class="pp">#if</span> 0</td></tr>
<tr name="255" id="255">
<td><a id="l255" class='ln'>255</a></td><td> <span class="br">{</span> <span class="ct">// DEBUG</span></td></tr>
<tr name="256" id="256">
<td><a id="l256" class='ln'>256</a></td><td> <span class="kw">char</span> <a id="256c14" class="tk">*</a><a id="256c15" class="tk">name</a> = <a id="256c22" class="tk">malloc</a>(72); <span class="ct">// arbitrary</span></td></tr>
<tr name="257" id="257">
<td><a id="l257" class='ln'>257</a></td><td> <a id="257c9" class="tk">int_T</a> <a id="257c15" class="tk">length</a> = <a id="257c24" class="tk">mxGetN</a>(<a id="257c31" class="tk">ETH_PDO_NAME</a>);</td></tr>
<tr name="258" id="258">
<td><a id="l258" class='ln'>258</a></td><td> <a id="258c9" class="tk">int_T</a> <a id="258c15" class="tk">rtn</a> = <a id="258c21" class="tk">mxGetString</a>(<a id="258c33" class="tk">ETH_PDO_NAME</a>, <a id="258c47" class="tk">name</a>, 255 );</td></tr>
<tr name="259" id="259">
<td><a id="l259" class='ln'>259</a></td><td> <a id="259c9" class="tk">EC_T_PROCESS_VAR_INFO</a> <a id="259c31" class="tk">InfoEntry</a>;</td></tr>
<tr name="260" id="260">
<td><a id="l260" class='ln'>260</a></td><td> <span class="kw">int</span> <a id="260c15" class="tk">ret</a>;</td></tr>
<tr name="261" id="261">
<td><a id="l261" class='ln'>261</a></td><td> </td></tr>
<tr name="262" id="262">
<td><a id="l262" class='ln'>262</a></td><td> <a id="262c9" class="tk">printf</a>("rtn %d, lth %d\n", <a id="262c36" class="tk">rtn</a>, <a id="262c41" class="tk">length</a> );</td></tr>
<tr name="263" id="263">
<td><a id="l263" class='ln'>263</a></td><td> <a id="263c9" class="tk">printf</a>("name: %s\n", <a id="263c30" class="tk">name</a> );</td></tr>
<tr name="264" id="264">
<td><a id="l264" class='ln'>264</a></td><td> </td></tr>
<tr name="265" id="265">
<td><a id="l265" class='ln'>265</a></td><td> <a id="265c9" class="tk">ret</a> = <a id="265c15" class="tk">emFindOutpVarByName</a>( <a id="265c36" class="tk">deviceIndex</a>, <a id="265c49" class="tk">name</a>, <a id="265c55" class="tk">&amp;</a><a id="265c56" class="tk">InfoEntry</a> );</td></tr>
<tr name="266" id="266">
<td><a id="l266" class='ln'>266</a></td><td> <span class="kw">if</span>( <a id="266c13" class="tk">ret</a> <a id="266c17" class="tk">==</a> 0 )</td></tr>
<tr name="267" id="267">
<td><a id="l267" class='ln'>267</a></td><td> <span class="br">{</span></td></tr>
<tr name="268" id="268">
<td><a id="l268" class='ln'>268</a></td><td> <a id="268c9" class="tk">printf</a>("fname: %s\n", <a id="268c31" class="tk">InfoEntry</a>.<a id="268c41" class="tk">szName</a> );</td></tr>
<tr name="269" id="269">
<td><a id="l269" class='ln'>269</a></td><td> <a id="269c9" class="tk">printf</a>("From lookup:\n");</td></tr>
<tr name="270" id="270">
<td><a id="l270" class='ln'>270</a></td><td> <a id="270c9" class="tk">printf</a>("type %d, bitsize %d, bitoffs %d\n",</td></tr>
<tr name="271" id="271">
<td><a id="l271" class='ln'>271</a></td><td> <a id="271c17" class="tk">InfoEntry</a>.<a id="271c27" class="tk">wDataType</a>,</td></tr>
<tr name="272" id="272">
<td><a id="l272" class='ln'>272</a></td><td> <a id="272c17" class="tk">InfoEntry</a>.<a id="272c27" class="tk">nBitSize</a>,</td></tr>
<tr name="273" id="273">
<td><a id="l273" class='ln'>273</a></td><td> <a id="273c17" class="tk">InfoEntry</a>.<a id="273c27" class="tk">nBitOffs</a> );</td></tr>
<tr name="274" id="274">
<td><a id="l274" class='ln'>274</a></td><td> <a id="274c9" class="tk">printf</a>("fixedaddr %d, isinput %d\n",</td></tr>
<tr name="275" id="275">
<td><a id="l275" class='ln'>275</a></td><td> <a id="275c17" class="tk">InfoEntry</a>.<a id="275c27" class="tk">wFixedAddr</a>,</td></tr>
<tr name="276" id="276">
<td><a id="l276" class='ln'>276</a></td><td> <a id="276c17" class="tk">InfoEntry</a>.<a id="276c27" class="tk">bIsInputData</a> );</td></tr>
<tr name="277" id="277">
<td><a id="l277" class='ln'>277</a></td><td> <span class="br">}</span></td></tr>
<tr name="278" id="278">
<td><a id="l278" class='ln'>278</a></td><td> <span class="kw">else</span></td></tr>
<tr name="279" id="279">
<td><a id="l279" class='ln'>279</a></td><td> <a id="279c13" class="tk">printf</a>("ret = %d\n", <a id="279c34" class="tk">ret</a> );</td></tr>
<tr name="280" id="280">
<td><a id="l280" class='ln'>280</a></td><td> <span class="br">}</span></td></tr>
<tr name="281" id="281">
<td><a id="l281" class='ln'>281</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="282" id="282">
<td><a id="l282" class='ln'>282</a></td><td></td></tr>
<tr name="283" id="283">
<td><a id="l283" class='ln'>283</a></td><td> <a id="283c4" class="tk">sigType</a> = (<a id="283c15" class="tk">DTypeId</a>)((<a id="283c25" class="tk">int_T</a>)(<a id="283c32" class="tk">mxGetPr</a>(<a id="283c40" class="tk">ETH_PDO_SIGNAL_TYPE</a>)[0])<a id="283c64" class="tk">-</a>1);</td></tr>
<tr name="284" id="284">
<td><a id="l284" class='ln'>284</a></td><td> <a id="284c4" class="tk">pdoOffset</a> = (<a id="284c17" class="tk">int_T</a>)<a id="284c23" class="tk">mxGetPr</a>(<a id="284c31" class="tk">ETH_PDO_OFFSET</a>)[0];</td></tr>
<tr name="285" id="285">
<td><a id="l285" class='ln'>285</a></td><td> <a id="285c4" class="tk">pdoTypeBitSize</a> = (<a id="285c22" class="tk">int_T</a>)<a id="285c28" class="tk">mxGetPr</a>(<a id="285c36" class="tk">ETH_PDO_TYPE_BITSIZE</a> )[0];</td></tr>
<tr name="286" id="286">
<td><a id="l286" class='ln'>286</a></td><td> <a id="286c4" class="tk">sigTypeSize</a> = <a id="286c18" class="tk">getDataTypeSize</a>(<a id="286c34" class="tk">S</a>,<a id="286c36" class="tk">sigType</a>);</td></tr>
<tr name="287" id="287">
<td><a id="l287" class='ln'>287</a></td><td> <a id="287c4" class="tk">sigWidth</a> = (<a id="287c16" class="tk">int_T</a>)<a id="287c22" class="tk">mxGetPr</a>(<a id="287c30" class="tk">ETH_PDO_SIGNAL_DIM</a>)[0];</td></tr>
<tr name="288" id="288">
<td><a id="l288" class='ln'>288</a></td><td></td></tr>
<tr name="289" id="289">
<td><a id="l289" class='ln'>289</a></td><td> <a id="289c4" class="tk">ssSetIWorkValue</a> (<a id="289c21" class="tk">S</a>, <a id="289c24" class="tk">I_DEVICE_ID</a>, (<a id="289c38" class="tk">uint32_T</a>)<a id="289c47" class="tk">deviceIndex</a>);</td></tr>
<tr name="290" id="290">
<td><a id="l290" class='ln'>290</a></td><td> <a id="290c4" class="tk">ssSetIWorkValue</a> (<a id="290c21" class="tk">S</a>, <a id="290c24" class="tk">I_PDO_TYPE</a>, (<a id="290c37" class="tk">uint32_T</a>)<a id="290c46" class="tk">sigType</a>);</td></tr>
<tr name="291" id="291">
<td><a id="l291" class='ln'>291</a></td><td> <a id="291c4" class="tk">ssSetIWorkValue</a> (<a id="291c21" class="tk">S</a>, <a id="291c24" class="tk">I_PDO_OFFSET</a>, (<a id="291c39" class="tk">uint32_T</a>)<a id="291c48" class="tk">pdoOffset</a>);</td></tr>
<tr name="292" id="292">
<td><a id="l292" class='ln'>292</a></td><td> <a id="292c4" class="tk">ssSetIWorkValue</a> (<a id="292c21" class="tk">S</a>, <a id="292c24" class="tk">I_PDO_TYPE_BIT_SIZE</a>, (<a id="292c46" class="tk">uint32_T</a>)<a id="292c55" class="tk">pdoTypeBitSize</a>);</td></tr>
<tr name="293" id="293">
<td><a id="l293" class='ln'>293</a></td><td> <a id="293c4" class="tk">ssSetIWorkValue</a> (<a id="293c21" class="tk">S</a>, <a id="293c24" class="tk">I_SIG_TYPE_BIT_SIZE</a>, (<a id="293c46" class="tk">uint32_T</a>)<a id="293c55" class="tk">sigTypeSize</a>);</td></tr>
<tr name="294" id="294">
<td><a id="l294" class='ln'>294</a></td><td> <a id="294c4" class="tk">ssSetIWorkValue</a> (<a id="294c21" class="tk">S</a>, <a id="294c24" class="tk">I_SIG_WIDTH</a>, <a id="294c37" class="tk">sigWidth</a>);</td></tr>
<tr name="295" id="295">
<td><a id="l295" class='ln'>295</a></td><td><span class="br">}</span></td></tr>
<tr name="296" id="296">
<td><a id="l296" class='ln'>296</a></td><td></td></tr>
<tr name="297" id="297">
<td><a id="l297" class='ln'>297</a></td><td><span class="kw">double</span> <a id="297c8" class="tk">txMaxTime</a>=0.0;</td></tr>
<tr name="298" id="298">
<td><a id="l298" class='ln'>298</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="298c13" class="tk">mdlOutputs</a>(<a id="298c24" class="tk">SimStruct</a> <a id="298c34" class="tk">*</a><a id="298c35" class="tk">S</a>, <a id="298c38" class="tk">int_T</a> <a id="298c44" class="tk">tid</a>)</td></tr>
<tr name="299" id="299">
<td><a id="l299" class='ln'>299</a></td><td><span class="br">{</span></td></tr>
<tr name="300" id="300">
<td><a id="l300" class='ln'>300</a></td><td></td></tr>
<tr name="301" id="301">
<td><a id="l301" class='ln'>301</a></td><td><span class="pp">#ifndef</span> <a id="301c9" class="tk">MATLAB_MEX_FILE</a></td></tr>
<tr name="302" id="302">
<td><a id="l302" class='ln'>302</a></td><td> <a id="302c5" class="tk">int8_T</a> <a id="302c15" class="tk">*</a><a id="302c16" class="tk">sigInputPtr</a>;</td></tr>
<tr name="303" id="303">
<td><a id="l303" class='ln'>303</a></td><td> <a id="303c5" class="tk">int8_T</a> <a id="303c15" class="tk">*</a><a id="303c16" class="tk">ecatTxBufPtr</a>;</td></tr>
<tr name="304" id="304">
<td><a id="l304" class='ln'>304</a></td><td> <a id="304c5" class="tk">int_T</a> <a id="304c15" class="tk">deviceIndex</a>;</td></tr>
<tr name="305" id="305">
<td><a id="l305" class='ln'>305</a></td><td> <span class="kw">static</span> <span class="kw">int</span> <a id="305c19" class="tk">counter</a>=0;</td></tr>
<tr name="306" id="306">
<td><a id="l306" class='ln'>306</a></td><td> <a id="306c5" class="tk">int_T</a> <a id="306c15" class="tk">sigTypeSize</a>;</td></tr>
<tr name="307" id="307">
<td><a id="l307" class='ln'>307</a></td><td> <a id="307c5" class="tk">int_T</a> <a id="307c15" class="tk">pdoTypeBitSize</a>;</td></tr>
<tr name="308" id="308">
<td><a id="l308" class='ln'>308</a></td><td> <a id="308c5" class="tk">int_T</a> <a id="308c15" class="tk">pdoOffset</a>;</td></tr>
<tr name="309" id="309">
<td><a id="l309" class='ln'>309</a></td><td> <a id="309c5" class="tk">int_T</a> <a id="309c15" class="tk">sigWidth</a>;</td></tr>
<tr name="310" id="310">
<td><a id="l310" class='ln'>310</a></td><td> <a id="310c5" class="tk">int_T</a> <a id="310c15" class="tk">i</a>;</td></tr>
<tr name="311" id="311">
<td><a id="l311" class='ln'>311</a></td><td> <a id="311c5" class="tk">DTypeId</a> <a id="311c15" class="tk">sigType</a>;</td></tr>
<tr name="312" id="312">
<td><a id="l312" class='ln'>312</a></td><td> <a id="312c5" class="tk">int_T</a> <a id="312c15" class="tk">bitOffset</a>;</td></tr>
<tr name="313" id="313">
<td><a id="l313" class='ln'>313</a></td><td></td></tr>
<tr name="314" id="314">
<td><a id="l314" class='ln'>314</a></td><td> <a id="314c5" class="tk">pdoOffset</a> = <a id="314c17" class="tk">ssGetIWorkValue</a> (<a id="314c34" class="tk">S</a>,<a id="314c36" class="tk">I_PDO_OFFSET</a>);</td></tr>
<tr name="315" id="315">
<td><a id="l315" class='ln'>315</a></td><td> <a id="315c5" class="tk">pdoTypeBitSize</a> =<a id="315c21" class="tk">ssGetIWorkValue</a> (<a id="315c38" class="tk">S</a>, <a id="315c41" class="tk">I_PDO_TYPE_BIT_SIZE</a>);</td></tr>
<tr name="316" id="316">
<td><a id="l316" class='ln'>316</a></td><td> <a id="316c5" class="tk">deviceIndex</a> = <a id="316c19" class="tk">ssGetIWorkValue</a> (<a id="316c36" class="tk">S</a>, <a id="316c39" class="tk">I_DEVICE_ID</a>);</td></tr>
<tr name="317" id="317">
<td><a id="l317" class='ln'>317</a></td><td> <a id="317c5" class="tk">sigInputPtr</a> = (<a id="317c20" class="tk">int8_T</a> <a id="317c27" class="tk">*</a>)<a id="317c29" class="tk">ssGetInputPortSignal</a>(<a id="317c50" class="tk">S</a>,0);</td></tr>
<tr name="318" id="318">
<td><a id="l318" class='ln'>318</a></td><td> <a id="318c5" class="tk">sigTypeSize</a> = <a id="318c19" class="tk">ssGetIWorkValue</a>(<a id="318c35" class="tk">S</a>, <a id="318c38" class="tk">I_SIG_TYPE_BIT_SIZE</a>);</td></tr>
<tr name="319" id="319">
<td><a id="l319" class='ln'>319</a></td><td> <a id="319c5" class="tk">sigType</a> = <a id="319c15" class="tk">ssGetIWorkValue</a>(<a id="319c31" class="tk">S</a>, <a id="319c34" class="tk">I_PDO_TYPE</a>);</td></tr>
<tr name="320" id="320">
<td><a id="l320" class='ln'>320</a></td><td></td></tr>
<tr name="321" id="321">
<td><a id="l321" class='ln'>321</a></td><td> <a id="321c5" class="tk">ecatTxBufPtr</a> = <a id="321c20" class="tk">xpcEtherCATgetPDout</a>(<a id="321c40" class="tk">deviceIndex</a>);</td></tr>
<tr name="322" id="322">
<td><a id="l322" class='ln'>322</a></td><td> </td></tr>
<tr name="323" id="323">
<td><a id="l323" class='ln'>323</a></td><td> <a id="323c5" class="tk">sigWidth</a> = <a id="323c16" class="tk">ssGetIWorkValue</a> (<a id="323c33" class="tk">S</a>, <a id="323c36" class="tk">I_SIG_WIDTH</a>);</td></tr>
<tr name="324" id="324">
<td><a id="l324" class='ln'>324</a></td><td></td></tr>
<tr name="325" id="325">
<td><a id="l325" class='ln'>325</a></td><td> <a id="325c5" class="tk">bitOffset</a> = <a id="325c17" class="tk">pdoOffset</a>;</td></tr>
<tr name="326" id="326">
<td><a id="l326" class='ln'>326</a></td><td> <span class="kw">for</span> (<a id="326c10" class="tk">i</a>=0; <a id="326c15" class="tk">i</a><a id="326c16" class="tk">&lt;</a><a id="326c17" class="tk">sigWidth</a>; <a id="326c27" class="tk">i</a><a id="326c28" class="tk">++</a>) <span class="br">{</span></td></tr>
<tr name="327" id="327">
<td><a id="l327" class='ln'>327</a></td><td> <span class="kw">switch</span> (<a id="327c16" class="tk">sigType</a>)<span class="br">{</span></td></tr>
<tr name="328" id="328">
<td><a id="l328" class='ln'>328</a></td><td> <span class="kw">case</span> <a id="328c18" class="tk">SS_DOUBLE</a><a id="328c27" class="tk">:</a></td></tr>
<tr name="329" id="329">
<td><a id="l329" class='ln'>329</a></td><td> <a id="329c15" class="tk">*</a>((<a id="329c18" class="tk">real_T</a> <a id="329c25" class="tk">*</a>)(<a id="329c28" class="tk">ecatTxBufPtr</a><a id="329c40" class="tk">+</a><a id="329c41" class="tk">bitOffset</a><a id="329c50" class="tk">/</a><a id="329c51" class="tk">BITS_PER_INT8</a>)) = ((<a id="329c71" class="tk">real_T</a> <a id="329c78" class="tk">*</a>)<a id="329c80" class="tk">sigInputPtr</a>)[<a id="329c93" class="tk">i</a>];</td></tr>
<tr name="330" id="330">
<td><a id="l330" class='ln'>330</a></td><td></td></tr>
<tr name="331" id="331">
<td><a id="l331" class='ln'>331</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="332" id="332">
<td><a id="l332" class='ln'>332</a></td><td></td></tr>
<tr name="333" id="333">
<td><a id="l333" class='ln'>333</a></td><td> <span class="kw">case</span> <a id="333c18" class="tk">SS_SINGLE</a><a id="333c27" class="tk">:</a></td></tr>
<tr name="334" id="334">
<td><a id="l334" class='ln'>334</a></td><td> <a id="334c16" class="tk">*</a>((<a id="334c19" class="tk">real32_T</a> <a id="334c28" class="tk">*</a>)(<a id="334c31" class="tk">ecatTxBufPtr</a><a id="334c43" class="tk">+</a><a id="334c44" class="tk">bitOffset</a><a id="334c53" class="tk">/</a><a id="334c54" class="tk">BITS_PER_INT8</a>)) = ((<a id="334c74" class="tk">real32_T</a> <a id="334c83" class="tk">*</a>)<a id="334c85" class="tk">sigInputPtr</a>)[<a id="334c98" class="tk">i</a>];</td></tr>
<tr name="335" id="335">
<td><a id="l335" class='ln'>335</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="336" id="336">
<td><a id="l336" class='ln'>336</a></td><td></td></tr>
<tr name="337" id="337">
<td><a id="l337" class='ln'>337</a></td><td> <span class="kw">case</span> <a id="337c17" class="tk">SS_INT8</a><a id="337c24" class="tk">:</a></td></tr>
<tr name="338" id="338">
<td><a id="l338" class='ln'>338</a></td><td></td></tr>
<tr name="339" id="339">
<td><a id="l339" class='ln'>339</a></td><td> <span class="kw">if</span> ((<a id="339c21" class="tk">pdoTypeBitSize</a> <a id="339c36" class="tk">==</a> <a id="339c39" class="tk">BITS_PER_INT8</a>) <a id="339c54" class="tk">&amp;&amp;</a> (<a id="339c58" class="tk">bitOffset</a><a id="339c67" class="tk">%</a><a id="339c68" class="tk">BITS_PER_INT8</a> <a id="339c82" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="340" id="340">
<td><a id="l340" class='ln'>340</a></td><td> <a id="340c19" class="tk">*</a>((<a id="340c22" class="tk">int8_T</a> <a id="340c29" class="tk">*</a>)(<a id="340c32" class="tk">ecatTxBufPtr</a><a id="340c44" class="tk">+</a><a id="340c45" class="tk">bitOffset</a><a id="340c54" class="tk">/</a><a id="340c55" class="tk">BITS_PER_INT8</a>)) = ((<a id="340c75" class="tk">int8_T</a> <a id="340c82" class="tk">*</a>)<a id="340c84" class="tk">sigInputPtr</a>)[<a id="340c97" class="tk">i</a>];</td></tr>
<tr name="341" id="341">
<td><a id="l341" class='ln'>341</a></td><td> <span class="br">}</span></td></tr>
<tr name="342" id="342">
<td><a id="l342" class='ln'>342</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="343" id="343">
<td><a id="l343" class='ln'>343</a></td><td></td></tr>
<tr name="344" id="344">
<td><a id="l344" class='ln'>344</a></td><td> <a id="344c20" class="tk">bitCopy</a>((<a id="344c29" class="tk">uint8_T</a> <a id="344c37" class="tk">*</a>)<a id="344c39" class="tk">ecatTxBufPtr</a>, <a id="344c53" class="tk">bitOffset</a>, <a id="344c64" class="tk">pdoTypeBitSize</a>, (<a id="344c81" class="tk">uint32_T</a>)(<a id="344c91" class="tk">*</a>((<a id="344c94" class="tk">int8_T</a> <a id="344c101" class="tk">*</a>)<a id="344c103" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="345" id="345">
<td><a id="l345" class='ln'>345</a></td><td> <span class="br">}</span></td></tr>
<tr name="346" id="346">
<td><a id="l346" class='ln'>346</a></td><td></td></tr>
<tr name="347" id="347">
<td><a id="l347" class='ln'>347</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="348" id="348">
<td><a id="l348" class='ln'>348</a></td><td></td></tr>
<tr name="349" id="349">
<td><a id="l349" class='ln'>349</a></td><td> <span class="kw">case</span> <a id="349c17" class="tk">SS_UINT8</a><a id="349c25" class="tk">:</a></td></tr>
<tr name="350" id="350">
<td><a id="l350" class='ln'>350</a></td><td> <span class="kw">if</span> ((<a id="350c21" class="tk">pdoTypeBitSize</a> <a id="350c36" class="tk">==</a> <a id="350c39" class="tk">BITS_PER_UINT8</a>) <a id="350c55" class="tk">&amp;&amp;</a> (<a id="350c59" class="tk">bitOffset</a><a id="350c68" class="tk">%</a><a id="350c69" class="tk">BITS_PER_UINT8</a> <a id="350c84" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="351" id="351">
<td><a id="l351" class='ln'>351</a></td><td> <a id="351c20" class="tk">*</a>((<a id="351c23" class="tk">uint8_T</a> <a id="351c31" class="tk">*</a>)(<a id="351c34" class="tk">ecatTxBufPtr</a><a id="351c46" class="tk">+</a><a id="351c47" class="tk">bitOffset</a><a id="351c56" class="tk">/</a><a id="351c57" class="tk">BITS_PER_INT8</a>)) = ((<a id="351c77" class="tk">uint8_T</a> <a id="351c85" class="tk">*</a>)<a id="351c87" class="tk">sigInputPtr</a>)[<a id="351c100" class="tk">i</a>];</td></tr>
<tr name="352" id="352">
<td><a id="l352" class='ln'>352</a></td><td> <span class="br">}</span></td></tr>
<tr name="353" id="353">
<td><a id="l353" class='ln'>353</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="354" id="354">
<td><a id="l354" class='ln'>354</a></td><td> <a id="354c19" class="tk">bitCopy</a>((<a id="354c28" class="tk">uint8_T</a> <a id="354c36" class="tk">*</a>)<a id="354c38" class="tk">ecatTxBufPtr</a>, <a id="354c52" class="tk">bitOffset</a>, <a id="354c63" class="tk">pdoTypeBitSize</a>, (<a id="354c80" class="tk">uint32_T</a>)(<a id="354c90" class="tk">*</a>((<a id="354c93" class="tk">uint8_T</a> <a id="354c101" class="tk">*</a>)<a id="354c103" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="355" id="355">
<td><a id="l355" class='ln'>355</a></td><td> <span class="br">}</span></td></tr>
<tr name="356" id="356">
<td><a id="l356" class='ln'>356</a></td><td></td></tr>
<tr name="357" id="357">
<td><a id="l357" class='ln'>357</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="358" id="358">
<td><a id="l358" class='ln'>358</a></td><td></td></tr>
<tr name="359" id="359">
<td><a id="l359" class='ln'>359</a></td><td> <span class="kw">case</span> <a id="359c17" class="tk">SS_BOOLEAN</a><a id="359c27" class="tk">:</a></td></tr>
<tr name="360" id="360">
<td><a id="l360" class='ln'>360</a></td><td> <span class="kw">if</span> ((<a id="360c21" class="tk">pdoTypeBitSize</a> <a id="360c36" class="tk">==</a> <a id="360c39" class="tk">BITS_PER_INT8</a>) <a id="360c54" class="tk">&amp;&amp;</a> (<a id="360c58" class="tk">bitOffset</a><a id="360c67" class="tk">%</a><a id="360c68" class="tk">BITS_PER_INT8</a> <a id="360c82" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="361" id="361">
<td><a id="l361" class='ln'>361</a></td><td> <a id="361c19" class="tk">*</a>((<a id="361c22" class="tk">int8_T</a> <a id="361c29" class="tk">*</a>)(<a id="361c32" class="tk">ecatTxBufPtr</a><a id="361c44" class="tk">+</a><a id="361c45" class="tk">bitOffset</a><a id="361c54" class="tk">/</a><a id="361c55" class="tk">BITS_PER_INT8</a>)) = ((<a id="361c75" class="tk">int8_T</a> <a id="361c82" class="tk">*</a>)<a id="361c84" class="tk">sigInputPtr</a>)[<a id="361c97" class="tk">i</a>];</td></tr>
<tr name="362" id="362">
<td><a id="l362" class='ln'>362</a></td><td> <span class="br">}</span></td></tr>
<tr name="363" id="363">
<td><a id="l363" class='ln'>363</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="364" id="364">
<td><a id="l364" class='ln'>364</a></td><td> <a id="364c19" class="tk">bitCopy</a>((<a id="364c28" class="tk">uint8_T</a> <a id="364c36" class="tk">*</a>)<a id="364c38" class="tk">ecatTxBufPtr</a>, <a id="364c52" class="tk">bitOffset</a>, <a id="364c63" class="tk">pdoTypeBitSize</a>, (<a id="364c80" class="tk">uint32_T</a>)(<a id="364c90" class="tk">*</a>((<a id="364c93" class="tk">int8_T</a> <a id="364c100" class="tk">*</a>)<a id="364c102" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="365" id="365">
<td><a id="l365" class='ln'>365</a></td><td> <span class="br">}</span></td></tr>
<tr name="366" id="366">
<td><a id="l366" class='ln'>366</a></td><td></td></tr>
<tr name="367" id="367">
<td><a id="l367" class='ln'>367</a></td><td></td></tr>
<tr name="368" id="368">
<td><a id="l368" class='ln'>368</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="369" id="369">
<td><a id="l369" class='ln'>369</a></td><td></td></tr>
<tr name="370" id="370">
<td><a id="l370" class='ln'>370</a></td><td> <span class="kw">case</span> <a id="370c17" class="tk">SS_INT16</a><a id="370c25" class="tk">:</a></td></tr>
<tr name="371" id="371">
<td><a id="l371" class='ln'>371</a></td><td></td></tr>
<tr name="372" id="372">
<td><a id="l372" class='ln'>372</a></td><td> <span class="kw">if</span> ((<a id="372c21" class="tk">pdoTypeBitSize</a> <a id="372c36" class="tk">==</a> <a id="372c39" class="tk">BITS_PER_INT16</a>) <a id="372c55" class="tk">&amp;&amp;</a> (<a id="372c59" class="tk">bitOffset</a><a id="372c68" class="tk">%</a><a id="372c69" class="tk">BITS_PER_INT16</a> <a id="372c84" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="373" id="373">
<td><a id="l373" class='ln'>373</a></td><td> <a id="373c19" class="tk">*</a>((<a id="373c22" class="tk">int16_T</a> <a id="373c30" class="tk">*</a>)(<a id="373c33" class="tk">ecatTxBufPtr</a><a id="373c45" class="tk">+</a><a id="373c46" class="tk">bitOffset</a><a id="373c55" class="tk">/</a><a id="373c56" class="tk">BITS_PER_INT8</a>)) = ((<a id="373c76" class="tk">int16_T</a> <a id="373c84" class="tk">*</a>)<a id="373c86" class="tk">sigInputPtr</a>)[<a id="373c99" class="tk">i</a>];</td></tr>
<tr name="374" id="374">
<td><a id="l374" class='ln'>374</a></td><td></td></tr>
<tr name="375" id="375">
<td><a id="l375" class='ln'>375</a></td><td> <span class="br">}</span></td></tr>
<tr name="376" id="376">
<td><a id="l376" class='ln'>376</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="377" id="377">
<td><a id="l377" class='ln'>377</a></td><td> <a id="377c20" class="tk">bitCopy</a>((<a id="377c29" class="tk">uint8_T</a> <a id="377c37" class="tk">*</a>)<a id="377c39" class="tk">ecatTxBufPtr</a>, <a id="377c53" class="tk">bitOffset</a>, <a id="377c64" class="tk">pdoTypeBitSize</a>, (<a id="377c81" class="tk">uint32_T</a>)(<a id="377c91" class="tk">*</a>((<a id="377c94" class="tk">int16_T</a> <a id="377c102" class="tk">*</a>)<a id="377c104" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="378" id="378">
<td><a id="l378" class='ln'>378</a></td><td> <span class="br">}</span></td></tr>
<tr name="379" id="379">
<td><a id="l379" class='ln'>379</a></td><td></td></tr>
<tr name="380" id="380">
<td><a id="l380" class='ln'>380</a></td><td></td></tr>
<tr name="381" id="381">
<td><a id="l381" class='ln'>381</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="382" id="382">
<td><a id="l382" class='ln'>382</a></td><td></td></tr>
<tr name="383" id="383">
<td><a id="l383" class='ln'>383</a></td><td> <span class="kw">case</span> <a id="383c17" class="tk">SS_UINT16</a><a id="383c26" class="tk">:</a></td></tr>
<tr name="384" id="384">
<td><a id="l384" class='ln'>384</a></td><td> <span class="kw">if</span> ((<a id="384c21" class="tk">pdoTypeBitSize</a> <a id="384c36" class="tk">==</a> <a id="384c39" class="tk">BITS_PER_UINT16</a>) <a id="384c56" class="tk">&amp;&amp;</a> (<a id="384c60" class="tk">bitOffset</a><a id="384c69" class="tk">%</a><a id="384c70" class="tk">BITS_PER_UINT16</a> <a id="384c86" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="385" id="385">
<td><a id="l385" class='ln'>385</a></td><td> <a id="385c20" class="tk">*</a>((<a id="385c23" class="tk">uint16_T</a> <a id="385c32" class="tk">*</a>)(<a id="385c35" class="tk">ecatTxBufPtr</a><a id="385c47" class="tk">+</a><a id="385c48" class="tk">bitOffset</a><a id="385c57" class="tk">/</a><a id="385c58" class="tk">BITS_PER_INT8</a>)) =((<a id="385c77" class="tk">uint16_T</a> <a id="385c86" class="tk">*</a>)<a id="385c88" class="tk">sigInputPtr</a>)[<a id="385c101" class="tk">i</a>];</td></tr>
<tr name="386" id="386">
<td><a id="l386" class='ln'>386</a></td><td> <span class="br">}</span></td></tr>
<tr name="387" id="387">
<td><a id="l387" class='ln'>387</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="388" id="388">
<td><a id="l388" class='ln'>388</a></td><td> <a id="388c21" class="tk">bitCopy</a>((<a id="388c30" class="tk">uint8_T</a> <a id="388c38" class="tk">*</a>)<a id="388c40" class="tk">ecatTxBufPtr</a>, <a id="388c54" class="tk">bitOffset</a>, <a id="388c65" class="tk">pdoTypeBitSize</a>, (<a id="388c82" class="tk">uint32_T</a>)(<a id="388c92" class="tk">*</a>((<a id="388c95" class="tk">uint16_T</a> <a id="388c104" class="tk">*</a>)<a id="388c106" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="389" id="389">
<td><a id="l389" class='ln'>389</a></td><td> <span class="br">}</span></td></tr>
<tr name="390" id="390">
<td><a id="l390" class='ln'>390</a></td><td></td></tr>
<tr name="391" id="391">
<td><a id="l391" class='ln'>391</a></td><td></td></tr>
<tr name="392" id="392">
<td><a id="l392" class='ln'>392</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="393" id="393">
<td><a id="l393" class='ln'>393</a></td><td></td></tr>
<tr name="394" id="394">
<td><a id="l394" class='ln'>394</a></td><td> <span class="kw">case</span> <a id="394c17" class="tk">SS_INT32</a><a id="394c25" class="tk">:</a></td></tr>
<tr name="395" id="395">
<td><a id="l395" class='ln'>395</a></td><td> <span class="kw">if</span> ((<a id="395c21" class="tk">pdoTypeBitSize</a> <a id="395c36" class="tk">==</a> <a id="395c39" class="tk">BITS_PER_INT32</a>) <a id="395c55" class="tk">&amp;&amp;</a> (<a id="395c59" class="tk">bitOffset</a><a id="395c68" class="tk">%</a><a id="395c69" class="tk">BITS_PER_INT32</a> <a id="395c84" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="396" id="396">
<td><a id="l396" class='ln'>396</a></td><td> <a id="396c20" class="tk">*</a>((<a id="396c23" class="tk">int32_T</a> <a id="396c31" class="tk">*</a>)(<a id="396c34" class="tk">ecatTxBufPtr</a><a id="396c46" class="tk">+</a><a id="396c47" class="tk">bitOffset</a><a id="396c56" class="tk">/</a><a id="396c57" class="tk">BITS_PER_INT8</a>)) = ((<a id="396c77" class="tk">int32_T</a> <a id="396c85" class="tk">*</a>)<a id="396c87" class="tk">sigInputPtr</a>)[<a id="396c100" class="tk">i</a>];</td></tr>
<tr name="397" id="397">
<td><a id="l397" class='ln'>397</a></td><td> <span class="br">}</span></td></tr>
<tr name="398" id="398">
<td><a id="l398" class='ln'>398</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="399" id="399">
<td><a id="l399" class='ln'>399</a></td><td> <a id="399c21" class="tk">bitCopy</a>((<a id="399c30" class="tk">uint8_T</a> <a id="399c38" class="tk">*</a>)<a id="399c40" class="tk">ecatTxBufPtr</a>, <a id="399c54" class="tk">bitOffset</a>, <a id="399c65" class="tk">pdoTypeBitSize</a>, (<a id="399c82" class="tk">uint32_T</a>)(<a id="399c92" class="tk">*</a>((<a id="399c95" class="tk">int32_T</a> <a id="399c103" class="tk">*</a>)<a id="399c105" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="400" id="400">
<td><a id="l400" class='ln'>400</a></td><td> <span class="br">}</span></td></tr>
<tr name="401" id="401">
<td><a id="l401" class='ln'>401</a></td><td></td></tr>
<tr name="402" id="402">
<td><a id="l402" class='ln'>402</a></td><td></td></tr>
<tr name="403" id="403">
<td><a id="l403" class='ln'>403</a></td><td></td></tr>
<tr name="404" id="404">
<td><a id="l404" class='ln'>404</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="405" id="405">
<td><a id="l405" class='ln'>405</a></td><td></td></tr>
<tr name="406" id="406">
<td><a id="l406" class='ln'>406</a></td><td> <span class="kw">case</span> <a id="406c17" class="tk">SS_UINT32</a><a id="406c26" class="tk">:</a></td></tr>
<tr name="407" id="407">
<td><a id="l407" class='ln'>407</a></td><td> <span class="kw">if</span> ((<a id="407c21" class="tk">pdoTypeBitSize</a> <a id="407c36" class="tk">==</a> <a id="407c39" class="tk">BITS_PER_UINT32</a>) <a id="407c56" class="tk">&amp;&amp;</a> (<a id="407c60" class="tk">bitOffset</a><a id="407c69" class="tk">%</a><a id="407c70" class="tk">BITS_PER_UINT32</a> <a id="407c86" class="tk">==</a> 0)) <span class="br">{</span></td></tr>
<tr name="408" id="408">
<td><a id="l408" class='ln'>408</a></td><td> <a id="408c20" class="tk">*</a>((<a id="408c23" class="tk">uint32_T</a> <a id="408c32" class="tk">*</a>)(<a id="408c35" class="tk">ecatTxBufPtr</a><a id="408c47" class="tk">+</a><a id="408c48" class="tk">bitOffset</a><a id="408c57" class="tk">/</a><a id="408c58" class="tk">BITS_PER_INT8</a>)) = ((<a id="408c78" class="tk">uint32_T</a> <a id="408c87" class="tk">*</a>)<a id="408c89" class="tk">sigInputPtr</a>)[<a id="408c102" class="tk">i</a>];</td></tr>
<tr name="409" id="409">
<td><a id="l409" class='ln'>409</a></td><td> <span class="br">}</span></td></tr>
<tr name="410" id="410">
<td><a id="l410" class='ln'>410</a></td><td> <span class="kw">else</span> <span class="br">{</span></td></tr>
<tr name="411" id="411">
<td><a id="l411" class='ln'>411</a></td><td> <a id="411c21" class="tk">bitCopy</a>((<a id="411c30" class="tk">uint8_T</a> <a id="411c38" class="tk">*</a>)<a id="411c40" class="tk">ecatTxBufPtr</a>, <a id="411c54" class="tk">bitOffset</a>, <a id="411c65" class="tk">pdoTypeBitSize</a>, (<a id="411c82" class="tk">uint32_T</a>)(<a id="411c92" class="tk">*</a>((<a id="411c95" class="tk">uint32_T</a> <a id="411c104" class="tk">*</a>)<a id="411c106" class="tk">sigInputPtr</a>)));</td></tr>
<tr name="412" id="412">
<td><a id="l412" class='ln'>412</a></td><td> <span class="br">}</span></td></tr>
<tr name="413" id="413">
<td><a id="l413" class='ln'>413</a></td><td></td></tr>
<tr name="414" id="414">
<td><a id="l414" class='ln'>414</a></td><td></td></tr>
<tr name="415" id="415">
<td><a id="l415" class='ln'>415</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="416" id="416">
<td><a id="l416" class='ln'>416</a></td><td> <span class="kw">default</span><a id="416c19" class="tk">:</a></td></tr>
<tr name="417" id="417">
<td><a id="l417" class='ln'>417</a></td><td> <span class="ct">/* Fatal error. Should never happen as this is checked in mdlStart. */</span></td></tr>
<tr name="418" id="418">
<td><a id="l418" class='ln'>418</a></td><td></td></tr>
<tr name="419" id="419">
<td><a id="l419" class='ln'>419</a></td><td> <span class="kw">break</span>;</td></tr>
<tr name="420" id="420">
<td><a id="l420" class='ln'>420</a></td><td> <span class="br">}</span></td></tr>
<tr name="421" id="421">
<td><a id="l421" class='ln'>421</a></td><td></td></tr>
<tr name="422" id="422">
<td><a id="l422" class='ln'>422</a></td><td> <a id="422c10" class="tk">bitOffset</a> <a id="422c20" class="tk">+=</a> <a id="422c23" class="tk">pdoTypeBitSize</a>;</td></tr>
<tr name="423" id="423">
<td><a id="l423" class='ln'>423</a></td><td> <span class="br">}</span></td></tr>
<tr name="424" id="424">
<td><a id="l424" class='ln'>424</a></td><td> <span class="pp">#else</span></td></tr>
<tr name="425" id="425">
<td><a id="l425" class='ln'>425</a></td><td> <span class="pp">#endif</span></td></tr>
<tr name="426" id="426">
<td><a id="l426" class='ln'>426</a></td><td></td></tr>
<tr name="427" id="427">
<td><a id="l427" class='ln'>427</a></td><td><span class="br">}</span></td></tr>
<tr name="428" id="428">
<td><a id="l428" class='ln'>428</a></td><td></td></tr>
<tr name="429" id="429">
<td><a id="l429" class='ln'>429</a></td><td><span class="kw">static</span> <span class="kw">void</span> <a id="429c13" class="tk">mdlTerminate</a>(<a id="429c26" class="tk">SimStruct</a> <a id="429c36" class="tk">*</a><a id="429c37" class="tk">S</a>)</td></tr>
<tr name="430" id="430">
<td><a id="l430" class='ln'>430</a></td><td><span class="br">{</span></td></tr>
<tr name="431" id="431">
<td><a id="l431" class='ln'>431</a></td><td></td></tr>
<tr name="432" id="432">
<td><a id="l432" class='ln'>432</a></td><td><span class="br">}</span></td></tr>
<tr name="433" id="433">
<td><a id="l433" class='ln'>433</a></td><td></td></tr>
<tr name="434" id="434">
<td><a id="l434" class='ln'>434</a></td><td></td></tr>
<tr name="435" id="435">
<td><a id="l435" class='ln'>435</a></td><td></td></tr>
<tr name="436" id="436">
<td><a id="l436" class='ln'>436</a></td><td></td></tr>
<tr name="437" id="437">
<td><a id="l437" class='ln'>437</a></td><td><span class="pp">#ifdef</span> <a id="437c8" class="tk">MATLAB_MEX_FILE</a></td></tr>
<tr name="438" id="438">
<td><a id="l438" class='ln'>438</a></td><td><span class="pp">#include "simulink.c"</span></td></tr>
<tr name="439" id="439">
<td><a id="l439" class='ln'>439</a></td><td><span class="pp">#else</span></td></tr>
<tr name="440" id="440">
<td><a id="l440" class='ln'>440</a></td><td><span class="pp">#include "cg_sfun.h"</span></td></tr>
<tr name="441" id="441">
<td><a id="l441" class='ln'>441</a></td><td><span class="pp">#endif</span></td></tr>
<tr name="442" id="442">
<td><a id="l442" class='ln'>442</a></td><td></td></tr>
</table>
</pre>
</body>
</html>