Big changes
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
<IviConfigStore xmlns:dt="urn:schemas-microsoft-com:datatypes">
|
||||
<Name>IVI Configuration Server</Name>
|
||||
<Description>The IVI Configuration Server allows access to and modification of an IVI configuration store</Description>
|
||||
<Vendor>IVI Foundation, Inc</Vendor>
|
||||
<Revision>1.3.1.0</Revision>
|
||||
<SpecificationMajorVersion>1</SpecificationMajorVersion>
|
||||
<SpecificationMinorVersion>0</SpecificationMinorVersion>
|
||||
<MasterLocation></MasterLocation>
|
||||
<ProcessDefaultLocation/>
|
||||
<ActualLocation></ActualLocation>
|
||||
<PublishedAPIs>
|
||||
<IviPublishedAPI id="p4">
|
||||
<Name>IviDriver</Name>
|
||||
<MajorVersion>1</MajorVersion>
|
||||
<MinorVersion>0</MinorVersion>
|
||||
<Type>IVI.NET</Type>
|
||||
</IviPublishedAPI>
|
||||
</PublishedAPIs>
|
||||
<SoftwareModules>
|
||||
<IviSoftwareModule id="p1">
|
||||
<Name>Raytheon.GuidedElectronicsUnit v1.2.5 Fx46</Name>
|
||||
<Description>IVI.NET Driver for GuidedElectronicsUnit</Description>
|
||||
<DataComponents>
|
||||
<IviStructure id="p2">
|
||||
<Name>Configurable Initial Settings</Name>
|
||||
<Description/>
|
||||
<ReadOnly>1</ReadOnly>
|
||||
<UsedInSession>Required</UsedInSession>
|
||||
<Type>Structure</Type>
|
||||
<HelpContextID>0</HelpContextID>
|
||||
<HelpFilePath/>
|
||||
<SoftwareModuleKey/>
|
||||
<DataComponents>
|
||||
<IviString id="p3">
|
||||
<Name>Model</Name>
|
||||
<Description>Default model used during simulation</Description>
|
||||
<ReadOnly>1</ReadOnly>
|
||||
<UsedInSession>Required</UsedInSession>
|
||||
<Type>String</Type>
|
||||
<HelpContextID>0</HelpContextID>
|
||||
<HelpFilePath/>
|
||||
<SoftwareModuleKey/>
|
||||
<Value>HSSub6020a, HSSub9010</Value>
|
||||
</IviString>
|
||||
</DataComponents>
|
||||
</IviStructure>
|
||||
</DataComponents>
|
||||
<ModulePath></ModulePath>
|
||||
<Prefix></Prefix>
|
||||
<ProgID></ProgID>
|
||||
<SupportedInstrumentModels>HSSub6020a, HSSub9010</SupportedInstrumentModels>
|
||||
<PhysicalNames>
|
||||
</PhysicalNames>
|
||||
<PublishedAPIs>
|
||||
<IviPublishedAPI idref="p4"/>
|
||||
</PublishedAPIs>
|
||||
<AssemblyQualifiedClassName>Raytheon.GuidedElectronicsUnit.GuidedElectronicsUnit, Raytheon.GuidedElectronicsUnit.Fx46, Version=1.2.5.0, Culture=neutral, PublicKeyToken=65cff6f5578f3c89</AssemblyQualifiedClassName>
|
||||
<ModulePath64></ModulePath64>
|
||||
</IviSoftwareModule>
|
||||
</SoftwareModules>
|
||||
<HardwareAssets>
|
||||
</HardwareAssets>
|
||||
<DriverSessions>
|
||||
</DriverSessions>
|
||||
<Sessions/>
|
||||
<LogicalNames>
|
||||
</LogicalNames>
|
||||
</IviConfigStore>
|
||||
@@ -0,0 +1,304 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
|
||||
{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
|
||||
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
|
||||
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
|
||||
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f294\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f295\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f297\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f298\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f299\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f300\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f301\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f302\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f304\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f305\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
|
||||
{\f307\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f308\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f309\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f310\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
|
||||
{\f311\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f312\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f314\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f315\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
|
||||
{\f317\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f318\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f319\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f320\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
|
||||
{\f321\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f322\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f634\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f635\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
|
||||
{\f637\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f638\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f641\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f642\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
|
||||
{\f664\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f665\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f667\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f668\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\f669\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f670\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f671\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f672\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
|
||||
{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}
|
||||
{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}
|
||||
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
|
||||
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
|
||||
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red230\green230\blue230;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
|
||||
\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{
|
||||
\s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
|
||||
\sbasedon0 \snext15 \ssemihidden \sunhideused \styrsid11281381 Normal (Web);}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \sunhideused \styrsid11281381 Hyperlink;}{\*\cs17 \additive \rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\cf15\chshdng0\chcfpat0\chcbpat19 \sbasedon10 \ssemihidden \sunhideused \styrsid1341921 Unresolved Mention;}}{\*\listtable{\list\listtemplateid-1{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
|
||||
{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}
|
||||
\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li2160
|
||||
\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel
|
||||
\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
|
||||
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
|
||||
\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
|
||||
\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0
|
||||
\fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid975601316}{\list\listtemplateid-1{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0
|
||||
\fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li1800\jclisttab\tx1800\lin1800 }
|
||||
{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li2520\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
|
||||
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li3240\jclisttab\tx3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
|
||||
\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li3960\jclisttab\tx3960\lin3960 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0
|
||||
{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li4680\jclisttab\tx4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}
|
||||
\f2\fs20\fbias0 \fi-360\li5400\jclisttab\tx5400\lin5400 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li6120
|
||||
\jclisttab\tx6120\lin6120 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li6840\jclisttab\tx6840\lin6840 }{\listname
|
||||
;}\listid1966303994}}{\*\listoverridetable{\listoverride\listid975601316\listoverridecount0\ls1}{\listoverride\listid1966303994\listoverridecount0\ls2}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid527649\rsid610856\rsid1068840
|
||||
\rsid1193474\rsid1341921\rsid1592073\rsid2053566\rsid2247458\rsid2299657\rsid2827723\rsid2886078\rsid3500732\rsid3955874\rsid4215438\rsid4264747\rsid4333579\rsid4391466\rsid4654620\rsid4739023\rsid4788022\rsid5509084\rsid5570663\rsid7020182\rsid7483015
|
||||
\rsid8015605\rsid8080083\rsid8153627\rsid9140596\rsid9455773\rsid10160764\rsid10487149\rsid10762515\rsid11141304\rsid11171846\rsid11281381\rsid11482326\rsid11550169\rsid11556053\rsid11759083\rsid12597103\rsid12660782\rsid12725604\rsid12849194\rsid13064890
|
||||
\rsid13400244\rsid13570917\rsid13637496\rsid14252017\rsid14431944\rsid14635889\rsid14690799\rsid14704508\rsid14973440\rsid15536999}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0
|
||||
\mnaryLim1}{\info{\author Kirk Fertitta}{\operator Mark Beene}{\creatim\yr2015\mo2\dy19\hr11\min47}{\revtim\yr2023\mo2\dy27\hr22\min42}{\version48}{\edmins123}{\nofpages1}{\nofwords328}{\nofchars1874}{\nofcharsws2198}{\vern61}}{\*\userprops {\propname MSI
|
||||
P_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_Enabled}\proptype30{\staticval true}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_SetDate}\proptype30{\staticval 2023-02-28T03:42:13Z}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_Meth
|
||||
od}\proptype30{\staticval Standard}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_Name}\proptype30{\staticval General}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_SiteId}\proptype30{\staticval d17c7130-59db-4f4c-9fa4-8b76b84d575
|
||||
5}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_ActionId}\proptype30{\staticval 3b2a0bab-af0a-481d-8319-efb160836b45}{\propname MSIP_Label_fe0a1f92-ac18-422f-8e1c-3f51ca75c21a_ContentBits}\proptype30{\staticval 0}}{\*\xmlnstbl {\xmlns1 http:/
|
||||
/schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
|
||||
\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
|
||||
\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
|
||||
\jexpand\viewkind1\viewscale130\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
|
||||
\asianbrkrule\rsidroot11281381\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
|
||||
{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8153627 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
|
||||
\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11482326 \chftnsep
|
||||
\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8153627 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11482326 \chftnsepc
|
||||
\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8153627 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11482326 \chftnsep
|
||||
\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8153627 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11482326 \chftnsepc
|
||||
\par }}\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang
|
||||
{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7
|
||||
\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar
|
||||
\ql \li540\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin540\itap0\pararsid10487149 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0
|
||||
\b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Driver Documentation}{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 driver files are installed }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149\charrsid11281381 in the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 following directory:
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 <}{\rtlch\fcs1 \ai\af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid11281381 Program Files}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 >\\
|
||||
IVI }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 Foundation\\IVI}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 \\Microsoft.NET\\Framework32\\v4.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid2053566 6}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 \\}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid14704508 Raytheon.GuidedElectronicsUnit 1.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid5509084 2}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid14704508 .}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid8153627 4}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 .}{
|
||||
\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 This directory will be referred to as the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid13637496 <DriverInstallDir>}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149 throughout the remainder of this document.
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Driver Documentation}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The readme.txt file can be found in the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid13637496 <DriverInstallDir>}{\rtlch\fcs1 \af0\afs20
|
||||
\ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 directory:
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 It contains notes about installation, known issues, and the driver\rquote s revision history.
|
||||
\par \~
|
||||
\par The }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid14704508 Raytheon_GuidedElectronicsUnit_Fx472}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 .chm file can be found in the }{\rtlch\fcs1
|
||||
\af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid13637496 <DriverInstallDir}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid14704508 >}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149\charrsid14704508 \\Help}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149 .}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149\charrsid11281381 It contains
|
||||
\par \~
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid10487149\charrsid11281381 \hich\af2\dbch\af0\loch\f2 o\tab}}\pard \ltrpar\ql \fi-360\li1080\ri0\widctlpar
|
||||
\jclisttab\tx720\wrapdefault\aspalpha\aspnum\facenter\ls1\adjustright\rin0\lin1080\itap0\pararsid10487149 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 General information about using the driver}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \f37\cf1\insrsid10487149\charrsid11281381
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid10487149\charrsid11281381 \hich\af2\dbch\af0\loch\f2 o\tab}}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 Reference i
|
||||
nformation for all methods and properties in the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 IVI.NET}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 driver}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\f37\cf1\insrsid10487149\charrsid11281381
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f2\fs20\cf1\insrsid10487149\charrsid11281381 \hich\af2\dbch\af0\loch\f2 o\tab}}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 IVI compliance information}{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \f37\cf1\insrsid10487149\charrsid11281381
|
||||
\par }\pard \ltrpar\ql \li1620\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1620\itap0\pararsid10487149 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 \~
|
||||
\par }\pard \ltrpar\ql \li540\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin540\itap0\pararsid10487149 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 \~
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Driver Source Code and Examples}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 IVI.NET}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
driver source code can be found in the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid13637496 <DriverInstallDir>}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid13637496 /Source}{\rtlch\fcs1
|
||||
\af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 directory. For instructions on rebuilding the driver, refer to the \'93Driver Source Code}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 \'94
|
||||
section of the Readme.txt file.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par \~
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Connecting to the Instrument}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The IVI resources page (}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
HYPERLINK "http://ivifoundation.org/resources/default.aspxhere" }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 {\*\datafield
|
||||
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8000000068007400740070003a002f002f0069007600690066006f0075006e0064006100740069006f006e002e006f00720067002f007200650073006f00750072006300650073002f00640065006600610075006c00
|
||||
74002e00610073007000780068006500720065000000795881f43b1d7f48af2c825dc485276300000000a5ab0000000000000000002233370022d70000003e00002e}}}{\fldrslt {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\ul\cf2\insrsid10487149\charrsid11281381
|
||||
http://ivifoundation.org/resources/default.aspxhere}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
) has documents and videos that explain how to get started with an }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 IVI }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
driver in different development environments}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 .}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par \~}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid12660782
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Configuring Instrument Settings}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid14704508 GuidedElectronicsUnit}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149\charrsid11281381 instrument driver application programming interface (API) includes methods an
|
||||
d properties for setting instrument state variables, as well as methods for controlling the instrument and reading results from the instrument. These are documented in the }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf1\insrsid10487149\charrsid14704508 GuidedElectronicsUnit}{\rtlch\fcs1 \ai\af0\afs20 \ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid11281381 > Reference}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
help topic.
|
||||
\par \~\~
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Configuring Driver Settings}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \f37\cf1\insrsid10487149\charrsid11281381 \~
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 {\*\bkmkstart _Hlk27715211}
|
||||
IVI instrument drivers implement inherent capabilities including properties that control driver behavior, utility methods, and identifying information.
|
||||
\par {\*\bkmkend _Hlk27715211}\~
|
||||
\par Properties that c}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149 ontrol driver behavior such as }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
simulation, range checking, and instrument status checking can be enabled/disabled when initializing the driver or by using configuration information in the IVI Configuration Store. For more information, refer to the }{\rtlch\fcs1 \ai\af0\afs20
|
||||
\ltrch\fcs0 \i\f0\fs20\cf1\insrsid10487149\charrsid11281381 Getting Started > Configuring the Driver}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 help topic.
|
||||
\par }{\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\cf1\insrsid10487149\charrsid11281381 Known Issues}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381 The readme.txt file contains information about known issues.
|
||||
\par }{\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\cf1\insrsid10487149\charrsid11281381 \~}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\cf1\insrsid10487149\charrsid11281381
|
||||
\par }\pard \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10487149 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid9455773\charrsid10487149
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb
|
||||
43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f
|
||||
f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44
|
||||
f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14
|
||||
7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7
|
||||
dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0
|
||||
2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12
|
||||
e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793
|
||||
c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99
|
||||
a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93
|
||||
9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1
|
||||
6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a
|
||||
6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c
|
||||
8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189
|
||||
4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f
|
||||
d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec
|
||||
ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09
|
||||
6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33
|
||||
bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d
|
||||
c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227
|
||||
0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059
|
||||
720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1
|
||||
080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625
|
||||
20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d
|
||||
f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb
|
||||
e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625
|
||||
572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9
|
||||
7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f
|
||||
7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be
|
||||
9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980
|
||||
ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b
|
||||
babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e
|
||||
745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f
|
||||
2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74
|
||||
68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865
|
||||
6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
|
||||
\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
|
||||
\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
|
||||
\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
|
||||
\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
|
||||
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
|
||||
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
|
||||
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
|
||||
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
|
||||
\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
|
||||
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
|
||||
\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
|
||||
\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
|
||||
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
|
||||
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
|
||||
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
|
||||
\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
|
||||
\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
|
||||
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
|
||||
\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
|
||||
\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
|
||||
\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
|
||||
\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
|
||||
\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
|
||||
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
|
||||
02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000070a9
|
||||
46ad264bd901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
||||
@@ -0,0 +1,10 @@
|
||||
Running this will install the fw and sw at the location below:
|
||||
C:\Program Files (x86)\IVI Foundation\IVI\Microsoft.NET\Framework32\v4.6\Raytheon.GuidedElectronicsUnit 1.2.5
|
||||
|
||||
The sw/source that gets installed has been relocated to ComposableTestSoftware\Source\Common\COTS\Teradyne_SDLC
|
||||
- Modifications to this source should be made through the ComposableTestSoftware ADS repo
|
||||
|
||||
Nimbus SDK:
|
||||
Then in VS under Tools/Options expand NuGet Package Manager and select Package Sources.
|
||||
Click the add button and enter that same path in the source box (or just browse to the file).
|
||||
You should be able to open the project after that.
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct AuroraStatus
|
||||
{
|
||||
|
||||
public bool SoftError { get; internal set; }
|
||||
|
||||
public bool HardError { get; internal set; }
|
||||
|
||||
public bool LinkUp { get; internal set; }
|
||||
|
||||
public bool ChannelUp { get; internal set; }
|
||||
|
||||
public int LaneUp { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<enum_translation_config source="Raytheon.GuidedElectronicsUnit" version="1.0">
|
||||
<map enum_id="ControlState">
|
||||
<entry name="Disabled" value="0" />
|
||||
<entry name="Enabled" value="1" />
|
||||
</map>
|
||||
<map enum_id="SdlcControlBits">
|
||||
<entry name="TxInhibit" value="0x1" />
|
||||
<entry name="TxAbort" value="2" />
|
||||
<entry name="TxEndFrame" value="4" />
|
||||
<entry name="RxInhibit" value="8" />
|
||||
<entry name="RxAbort" value="16" />
|
||||
<entry name="InternalLoopback" value="32" />
|
||||
<entry name="EchoLoopback" value="64" />
|
||||
<entry name="StationAddress" value="-16777216" />
|
||||
</map>
|
||||
<map enum_id="SdlcStatusBits">
|
||||
<entry name="TxActive" value="0x1" />
|
||||
<entry name="TxFifoFull" value="0x2" />
|
||||
<entry name="TxFifoEmpty" value="0x4" />
|
||||
<entry name="TxFifoOverflowed" value="0x8" />
|
||||
<entry name="RxActive" value="0x10" />
|
||||
<entry name="RxFifoEmpty" value="0x40" />
|
||||
<entry name="RxFifoFull" value="0x20" />
|
||||
<entry name="RxFifoOverflowed" value="0x80" />
|
||||
<entry name="RxMessageDone" value="0x200" />
|
||||
<entry name="RxMessageFcsError" value="0x400" />
|
||||
<entry name="RxMessageAborted" value="0x800" />
|
||||
<entry name="InternalLoopback" value="0x1000" />
|
||||
<entry name="EchoLoopback" value="0x2000" />
|
||||
<entry name="TxInhibited" value="0x4000" />
|
||||
<entry name="RxInhibited" value="0x8000" />
|
||||
<entry name="DrOverrunError" value="0x10000" />
|
||||
<entry name="RxBadAddressError" value="256" />
|
||||
</map>
|
||||
<map enum_id="ImuConfigure">
|
||||
<entry name="TxEnable" value="1" />
|
||||
<entry name="RxEnable" value="2" />
|
||||
<entry name="TxRxEnable" value="3" />
|
||||
<entry name="KwTestMode" value="4" />
|
||||
<entry name="TxEnableKwTestMode" value="5" />
|
||||
</map>
|
||||
<map enum_id="EdaConfigure">
|
||||
<entry name="EdaCVReady" value="8" />
|
||||
<entry name="EdaCVReadyValid" value="4" />
|
||||
<entry name="EdaPbitPass" value="2" />
|
||||
<entry name="EdaPbitValid" value="1" />
|
||||
<entry name="EdaCVClearPassFailValid" value="16" />
|
||||
<entry name="EdaCVClearPassFail" value="32" />
|
||||
<entry name="EdaNumCVClear" value="960" />
|
||||
<entry name="KwdlRFTemp" value="16711680" />
|
||||
<entry name="KwdlMbitPass" value="16777216" />
|
||||
<entry name="KwdlMbitComplete" value="33554432" />
|
||||
<entry name="KwdlPbitPass" value="67108864" />
|
||||
<entry name="KwdlState" value="939524096" />
|
||||
<entry name="KwdlLinkUp" value="1073741824" />
|
||||
</map>
|
||||
<map enum_id="ImuMessageWord">
|
||||
<entry name="VelocityDeltaX" value="0" />
|
||||
<entry name="VelocityDeltaY" value="1" />
|
||||
<entry name="VelocityDeltaZ" value="2" />
|
||||
<entry name="AngleDeltaX" value="3" />
|
||||
<entry name="AngleDeltaY" value="4" />
|
||||
<entry name="AngleDeltaZ" value="5" />
|
||||
<entry name="StatusSummaryWord" value="6" />
|
||||
<entry name="ModeMuxId" value="7" />
|
||||
<entry name="MuxDataWord" value="8" />
|
||||
<entry name="RawGyroCountX" value="9" />
|
||||
<entry name="RawGyroCountY" value="10" />
|
||||
<entry name="RawGyroCountZ" value="11" />
|
||||
</map>
|
||||
<map enum_id="PllState">
|
||||
<entry name="Unlocked" value="0" />
|
||||
<entry name="Locked" value="1" />
|
||||
</map>
|
||||
<map enum_id="ResetState">
|
||||
<entry name="Inactive" value="0" />
|
||||
<entry name="Active" value="1" />
|
||||
</map>
|
||||
<map enum_id="EdaDataBusMode">
|
||||
<entry name="MTD" value="1" />
|
||||
<entry name="KWDL" value="2" />
|
||||
<entry name="Invalid0" value="0" />
|
||||
<entry name="Invalid3" value="3" />
|
||||
</map>
|
||||
<map enum_id="EdaPowerMode">
|
||||
<entry name="Enabled" value="1" />
|
||||
<entry name="Disabled" value="2" />
|
||||
<entry name="Invalid3" value="3" />
|
||||
<entry name="Invalid0" value="0" />
|
||||
</map>
|
||||
<map enum_id="KwdlLocation">
|
||||
<entry name="KW" value="0" />
|
||||
<entry name="GS" value="1" />
|
||||
</map>
|
||||
<map enum_id="EdaBus">
|
||||
<entry name="CS" value="1" />
|
||||
<entry name="PT" value="0" />
|
||||
</map>
|
||||
<map enum_id="EdaChannel">
|
||||
<entry name="A" value="0" />
|
||||
<entry name="B" value="1" />
|
||||
</map>
|
||||
<map enum_id="KwdlState">
|
||||
<entry name="Standby" value="0" />
|
||||
<entry name="Tactical" value="1" />
|
||||
<entry name="Maintenance" value="2" />
|
||||
<entry name="Reprogram" value="3" />
|
||||
<entry name="KA" value="4" />
|
||||
<entry name="Invalid" value="7" />
|
||||
</map>
|
||||
<map enum_id="SignalState">
|
||||
<entry name="Low" value="0" />
|
||||
<entry name="High" value="1" />
|
||||
</map>
|
||||
<map enum_id="RegisterHalf">
|
||||
<entry name="Lower" value="0"/>
|
||||
<entry name="Upper" value="1"/>
|
||||
</map>
|
||||
</enum_translation_config>
|
||||
@@ -0,0 +1,256 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using FunctionCalls = Teradyne.Instruments.Logging.Adapters.FunctionCalls;
|
||||
using Messaging = Teradyne.Instruments.Logging.Adapters.Messaging;
|
||||
using Teradyne.Instruments.Logging.Client;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public class CallLoggingHelper : IDisposable
|
||||
{
|
||||
private static string s_source = " Raytheon.GuidedElectronicsUnit";
|
||||
private static CallLoggingHelper s_helper = null;
|
||||
private FunctionCalls.ProducerAdapter _callAdapter;
|
||||
private Messaging.ProducerAdapter _messageAdapter;
|
||||
|
||||
static CallLoggingHelper()
|
||||
{
|
||||
if (s_helper != null)
|
||||
return;
|
||||
|
||||
s_helper = new CallLoggingHelper();
|
||||
}
|
||||
|
||||
private CallLoggingHelper()
|
||||
{
|
||||
_callAdapter = new FunctionCalls.ProducerAdapter();
|
||||
_messageAdapter = new Messaging.ProducerAdapter();
|
||||
}
|
||||
|
||||
public static bool IsLoggingEnabled()
|
||||
{
|
||||
return
|
||||
s_helper._callAdapter.IsFunctionCallLoggingEnabled(s_source) ||
|
||||
s_helper._callAdapter.IsFunctionReturnLoggingEnabled(s_source) ||
|
||||
s_helper._messageAdapter.IsMessageLoggingEnabled(s_source);
|
||||
}
|
||||
|
||||
private bool _enumHandlerRegistered = false;
|
||||
private static void RegisterEnumHandler()
|
||||
{
|
||||
if (s_helper._enumHandlerRegistered)
|
||||
return;
|
||||
|
||||
var assembly = typeof(CallLoggingHelper).Assembly;
|
||||
//var resourceNames = assembly.GetManifestResourceNames();
|
||||
var stream = assembly.GetManifestResourceStream("Raytheon.GuidedElectronicsUnit.CallLoggingEnumMap.xml");
|
||||
var doc = new System.Xml.XmlDocument();
|
||||
try
|
||||
{
|
||||
if (stream != null)
|
||||
doc.Load(stream);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
var xml = doc.OuterXml;
|
||||
|
||||
LoggingTimestamp ts = new LoggingTimestamp();
|
||||
FunctionCalls.LoggingDataEnumTranslationConfiguration enumConfig =
|
||||
new FunctionCalls.LoggingDataEnumTranslationConfiguration(ts, xml);
|
||||
s_helper._callAdapter.ConfigureEnumTranslationForConsumers(enumConfig, s_source);
|
||||
|
||||
s_helper._enumHandlerRegistered = true;
|
||||
}
|
||||
|
||||
private static Tuple<FunctionCalls.LoggingDataParameterType, byte[], string, int> ConvertToLoggingData(object value)
|
||||
{
|
||||
FunctionCalls.LoggingDataParameterType loggingType = FunctionCalls.LoggingDataParameterType.None;
|
||||
byte[] loggingData;
|
||||
string enumName = string.Empty;
|
||||
int arrayLength = 0;
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
loggingData = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
Type t = value.GetType();
|
||||
|
||||
if (t.IsArray)
|
||||
{
|
||||
var arrayValue = value as Array;
|
||||
|
||||
//if (t.GetElementType() == typeof(Channel))
|
||||
//{
|
||||
// Channel[] channels = arrayValue as Channel[];
|
||||
// int[] channelIndexes = new int[channels.Length];
|
||||
// for (int c = 0; c < channels.Length; c++)
|
||||
// channelIndexes[c] = channels[c].IndexOnInstrument;
|
||||
|
||||
// loggingType = FunctionCalls.LoggingDataParameterType.ViInt32;
|
||||
// loggingData = new byte[arrayValue.Length * sizeof(int)];
|
||||
// Buffer.BlockCopy(channelIndexes, 0, loggingData, 0, loggingData.Length);
|
||||
//}
|
||||
//else
|
||||
{
|
||||
int sizeOfElement = sizeof(int);
|
||||
var elementType = t.GetElementType().UnderlyingSystemType;
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViInt32;
|
||||
|
||||
if (elementType == typeof(bool))
|
||||
{
|
||||
sizeOfElement = sizeof(short);
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViBoolean;
|
||||
}
|
||||
else if (elementType == typeof(double))
|
||||
{
|
||||
sizeOfElement = sizeof(double);
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViReal64;
|
||||
}
|
||||
|
||||
loggingData = new byte[arrayValue.Length * sizeOfElement];
|
||||
Buffer.BlockCopy(arrayValue, 0, loggingData, 0, loggingData.Length);
|
||||
arrayLength = arrayValue.Length;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//if (t == typeof(Channel))
|
||||
//{
|
||||
// loggingType = FunctionCalls.LoggingDataParameterType.ViInt32;
|
||||
// loggingData = BitConverter.GetBytes(((Channel)value).IndexOnInstrument);
|
||||
//}
|
||||
/*else*/ if (t.IsEnum)
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViInt32;
|
||||
loggingData = BitConverter.GetBytes((int)value);
|
||||
enumName = t.Name;
|
||||
}
|
||||
else if (t.UnderlyingSystemType == typeof(int))
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViInt32;
|
||||
loggingData = BitConverter.GetBytes((int)value);
|
||||
}
|
||||
else if (t.UnderlyingSystemType == typeof(bool))
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViBoolean;
|
||||
short booleanValue = (short)(((bool)value) ? 1 : 0);
|
||||
loggingData = BitConverter.GetBytes(booleanValue);
|
||||
}
|
||||
else if (t.UnderlyingSystemType == typeof(double))
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViReal64;
|
||||
loggingData = BitConverter.GetBytes((double)value);
|
||||
}
|
||||
else if (t.UnderlyingSystemType == typeof(string))
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViString;
|
||||
loggingData = Encoding.ASCII.GetBytes(value.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
loggingType = FunctionCalls.LoggingDataParameterType.ViString;
|
||||
loggingData = Encoding.ASCII.GetBytes(value.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new Tuple<FunctionCalls.LoggingDataParameterType, byte[], string, int>(loggingType, loggingData, enumName, arrayLength);
|
||||
}
|
||||
private static List<FunctionCalls.LoggingDataParameter> CreateParameteList(object[] args)
|
||||
{
|
||||
RegisterEnumHandler();
|
||||
|
||||
List<FunctionCalls.LoggingDataParameter> parameters = new List<FunctionCalls.LoggingDataParameter>();
|
||||
|
||||
for (int i = 0; i < args.Length; i += 2)
|
||||
{
|
||||
string name = args[i].ToString();
|
||||
object value = args[i + 1];
|
||||
|
||||
var loggingData = ConvertToLoggingData(value);
|
||||
if (value.GetType().IsArray)
|
||||
{
|
||||
var parameter = new FunctionCalls.LoggingDataArrayParameter(name,
|
||||
loggingData.Item1, loggingData.Item4, loggingData.Item2, loggingData.Item3);
|
||||
parameters.Add(parameter);
|
||||
}
|
||||
else
|
||||
{
|
||||
var parameter = new FunctionCalls.LoggingDataParameter(name,
|
||||
loggingData.Item1, loggingData.Item2, loggingData.Item3);
|
||||
parameters.Add(parameter);
|
||||
}
|
||||
}
|
||||
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public static void FunctionStart(Type t, string functionName, params object[] args)
|
||||
{
|
||||
if (!s_helper._callAdapter.IsFunctionCallLoggingEnabled(s_source))
|
||||
return;
|
||||
|
||||
LoggingTimestamp ts = new LoggingTimestamp();
|
||||
List<FunctionCalls.LoggingDataParameter> parameters = CreateParameteList(args);
|
||||
FunctionCalls.LoggingDataFunctionCall functionCall = new FunctionCalls.LoggingDataFunctionCall($"{t.FullName}.{functionName}", ts, parameters);
|
||||
s_helper._callAdapter.NotifyConsumers(functionCall, s_source);
|
||||
}
|
||||
|
||||
public static void FunctionEnd(Type t, string functionName, object returnValue, params object[] outOrRefArgs)
|
||||
{
|
||||
if (!s_helper._callAdapter.IsFunctionReturnLoggingEnabled(s_source))
|
||||
return;
|
||||
|
||||
LoggingTimestamp ts = new LoggingTimestamp();
|
||||
List<FunctionCalls.LoggingDataParameter> parameters = CreateParameteList(outOrRefArgs);
|
||||
var loggingReturnData = ConvertToLoggingData(returnValue);
|
||||
FunctionCalls.LoggingDataFunctionReturn functionReturn = new FunctionCalls.LoggingDataFunctionReturn($"{t.FullName}.{functionName}", ts,
|
||||
loggingReturnData.Item1, loggingReturnData.Item2, parameters, loggingReturnData.Item3);
|
||||
s_helper._callAdapter.NotifyConsumers(functionReturn, s_source);
|
||||
}
|
||||
|
||||
public static void Message(string message)
|
||||
{
|
||||
if (!s_helper._messageAdapter.IsMessageLoggingEnabled(s_source))
|
||||
return;
|
||||
|
||||
s_helper._messageAdapter.NotifyConsumers(message, s_source);
|
||||
}
|
||||
|
||||
private bool _disposedValue;
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!_disposedValue)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_callAdapter?.Shutdown();
|
||||
}
|
||||
|
||||
s_helper = null;
|
||||
_disposedValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
~CallLoggingHelper()
|
||||
{
|
||||
// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
|
||||
Dispose(disposing: false);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
|
||||
Dispose(disposing: true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
|
||||
// This file is used to customize how the driver installer registers the IVI.NET driver in the IVI Configuration Store.
|
||||
// Several attributes can be used to specify additional entires that should be placed in the end user's IVI Configuration Store
|
||||
// at driver installation time.
|
||||
|
||||
// Use the LogicalName attribute to have your driver installer create a LogicalName entry in the IVI Configuration Store.
|
||||
// This attribute can be applied multiple times to install multiple logical names.
|
||||
//
|
||||
// [assembly: LogicalName("TODO:LogicalName", "TODO:DriverSessionName")]
|
||||
//
|
||||
|
||||
// Use the DriverSession attribute to have your driver installer create a DriverSession entry in the IVI Configuration Store.
|
||||
// This attribute can be applied multiple times to install multiple driver sessions.
|
||||
//
|
||||
// [assembly: DriverSession("TODO:DriverSessionName",
|
||||
// Cache = false,
|
||||
// DriverSetup = "TODO",
|
||||
// HardwareAsset = "TODO:HardwareAssetName",
|
||||
// InterchangeCheck = false,
|
||||
// QueryInstrumentStatus = true,
|
||||
// RangeCheck = false,
|
||||
// RecordCoercions = false,
|
||||
// Simulate = false)]
|
||||
//
|
||||
|
||||
// Use the HardwareAsset attribute to have your driver installer create a HardwareAsset entry in the IVI Configuration Store.
|
||||
// This attribute can be applied multiple times to install multiple hardware assets.
|
||||
//
|
||||
// [assembly: HardwareAsset("TODO:HardwareAssetName", "TODO:ResourceDescriptor")]
|
||||
//
|
||||
|
||||
// Use the ConfigurableInitialSetting attribute to have your driver installer create a ConfigurableInitialSetting entry in the IVI Configuration Store.
|
||||
// This attribute can be applied multiple times to install multiple ConfigurableInitialSetting entries.
|
||||
//
|
||||
// [assembly: ConfigurableInitialSetting("TODO:KeyName", 0 /*TODO:Value*/, UsedInSession.Required, "TODO:Description")]
|
||||
//
|
||||
@@ -0,0 +1,68 @@
|
||||
<IviConfigStore xmlns:dt="urn:schemas-microsoft-com:datatypes">
|
||||
<Name>IVI Configuration Server</Name>
|
||||
<Description>The IVI Configuration Server allows access to and modification of an IVI configuration store</Description>
|
||||
<Vendor>IVI Foundation, Inc</Vendor>
|
||||
<Revision>1.3.1.0</Revision>
|
||||
<SpecificationMajorVersion>1</SpecificationMajorVersion>
|
||||
<SpecificationMinorVersion>0</SpecificationMinorVersion>
|
||||
<MasterLocation></MasterLocation>
|
||||
<ProcessDefaultLocation/>
|
||||
<ActualLocation></ActualLocation>
|
||||
<PublishedAPIs>
|
||||
<IviPublishedAPI id="p4">
|
||||
<Name>IviDriver</Name>
|
||||
<MajorVersion>1</MajorVersion>
|
||||
<MinorVersion>0</MinorVersion>
|
||||
<Type>IVI.NET</Type>
|
||||
</IviPublishedAPI>
|
||||
</PublishedAPIs>
|
||||
<SoftwareModules>
|
||||
<IviSoftwareModule id="p1">
|
||||
<Name>Raytheon.GuidedElectronicsUnit v1.2.5 Fx46</Name>
|
||||
<Description>IVI.NET Driver for GuidedElectronicsUnit</Description>
|
||||
<DataComponents>
|
||||
<IviStructure id="p2">
|
||||
<Name>Configurable Initial Settings</Name>
|
||||
<Description/>
|
||||
<ReadOnly>1</ReadOnly>
|
||||
<UsedInSession>Required</UsedInSession>
|
||||
<Type>Structure</Type>
|
||||
<HelpContextID>0</HelpContextID>
|
||||
<HelpFilePath/>
|
||||
<SoftwareModuleKey/>
|
||||
<DataComponents>
|
||||
<IviString id="p3">
|
||||
<Name>Model</Name>
|
||||
<Description>Default model used during simulation</Description>
|
||||
<ReadOnly>1</ReadOnly>
|
||||
<UsedInSession>Required</UsedInSession>
|
||||
<Type>String</Type>
|
||||
<HelpContextID>0</HelpContextID>
|
||||
<HelpFilePath/>
|
||||
<SoftwareModuleKey/>
|
||||
<Value>HSSub6020a, HSSub9010</Value>
|
||||
</IviString>
|
||||
</DataComponents>
|
||||
</IviStructure>
|
||||
</DataComponents>
|
||||
<ModulePath></ModulePath>
|
||||
<Prefix></Prefix>
|
||||
<ProgID></ProgID>
|
||||
<SupportedInstrumentModels>HSSub6020a, HSSub9010</SupportedInstrumentModels>
|
||||
<PhysicalNames>
|
||||
</PhysicalNames>
|
||||
<PublishedAPIs>
|
||||
<IviPublishedAPI idref="p4"/>
|
||||
</PublishedAPIs>
|
||||
<AssemblyQualifiedClassName>Raytheon.GuidedElectronicsUnit.GuidedElectronicsUnit, Raytheon.GuidedElectronicsUnit.Fx46, Version=1.2.5.0, Culture=neutral, PublicKeyToken=65cff6f5578f3c89</AssemblyQualifiedClassName>
|
||||
<ModulePath64></ModulePath64>
|
||||
</IviSoftwareModule>
|
||||
</SoftwareModules>
|
||||
<HardwareAssets>
|
||||
</HardwareAssets>
|
||||
<DriverSessions>
|
||||
</DriverSessions>
|
||||
<Sessions/>
|
||||
<LogicalNames>
|
||||
</LogicalNames>
|
||||
</IviConfigStore>
|
||||
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct CvcwData
|
||||
{
|
||||
|
||||
public CvcwData(uint regValue)
|
||||
{
|
||||
Size = (int)(regValue & (uint)BitMask.Size) >> (int)Bit.Size;
|
||||
Data3 = Convert.ToByte((regValue & (uint)BitMask.Data3) >> (int)Bit.Data3);
|
||||
Data2 = Convert.ToByte((regValue & (uint)BitMask.Data2) >> (int)Bit.Data2);
|
||||
Data1 = Convert.ToByte((regValue & (uint)BitMask.Data1) >> (int)Bit.Data1);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum Bit
|
||||
{
|
||||
Size = 24,
|
||||
Data3 = 16,
|
||||
Data2 = 8,
|
||||
Data1 = 0
|
||||
}
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
Size = 0x0F00_0000,
|
||||
Data3 = 0x00FF_0000,
|
||||
Data2 = 0x0000_FF00,
|
||||
Data1 = 0x0000_00FF
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public int Size { get; internal set; }
|
||||
|
||||
public byte Data1 { get; internal set; }
|
||||
|
||||
public byte Data2 { get; internal set; }
|
||||
|
||||
public byte Data3 { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct EdaConfig
|
||||
{
|
||||
public EdaConfig(uint status)
|
||||
{
|
||||
KwdlLinkUp = Convert.ToBoolean(status & (uint)EdaConfigure.KwdlLinkUp);
|
||||
KwdlState = (KwdlState)((status & (uint)EdaConfigure.KwdlState) >> (int)Bit.KwdlState);
|
||||
KwdlPbitPass = Convert.ToBoolean(status & (uint)EdaConfigure.KwdlPbitPass);
|
||||
KwdlMbitComplete = Convert.ToBoolean(status & (uint)EdaConfigure.KwdlMbitComplete);
|
||||
KwdlMbitPass = Convert.ToBoolean(status & (uint)EdaConfigure.KwdlMbitPass);
|
||||
KwdlRFTemp = Convert.ToInt32((status & (uint)EdaConfigure.KwdlRFTemp) >> (int)Bit.KwdlRFTemp);
|
||||
EdaNumCVClear = Convert.ToInt32((status & (uint)EdaConfigure.EdaNumCVClear) >> (int)Bit.EdaNumCVClear);
|
||||
EdaCVClearPassFail = Convert.ToBoolean(status & (uint)EdaConfigure.EdaCVClearPassFail);
|
||||
EdaCVClearPassFailValid = Convert.ToBoolean(status & (uint)EdaConfigure.EdaCVClearPassFailValid);
|
||||
EdaCVReady = Convert.ToBoolean(status & (uint)EdaConfigure.EdaCVReady);
|
||||
EdaCVReadyValid = Convert.ToBoolean(status & (uint)EdaConfigure.EdaCVReadyValid);
|
||||
EdaPbitPass = Convert.ToBoolean(status & (uint)EdaConfigure.EdaPbitPass);
|
||||
EdaPbitValid = Convert.ToBoolean(status & (uint)EdaConfigure.EdaPbitValid);
|
||||
}
|
||||
|
||||
#region Internal Members
|
||||
|
||||
internal enum Bit
|
||||
{
|
||||
EdaPbitValid = 0,
|
||||
EdaPbitPass = 1,
|
||||
EdaCVReadyValid = 2,
|
||||
EdaCVReady = 3,
|
||||
EdaCVClearPassFailValid = 4,
|
||||
EdaCVClearPassFail = 5,
|
||||
EdaNumCVClear = 6,
|
||||
KwdlRFTemp = 16,
|
||||
KwdlMbitPass = 24,
|
||||
KwdlMbitComplete = 25,
|
||||
KwdlPbitPass = 26,
|
||||
KwdlState = 27,
|
||||
KwdlLinkUp = 30
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public int KwdlRFTemp { get; set; }
|
||||
|
||||
public bool EdaPbitValid { get; set; }
|
||||
|
||||
public bool EdaCVReadyValid { get; set; }
|
||||
|
||||
public bool EdaPbitPass { get; set; }
|
||||
|
||||
public bool EdaCVReady { get; set; }
|
||||
|
||||
public bool EdaCVClearPassFailValid { get; set; }
|
||||
|
||||
public bool EdaCVClearPassFail { get; set; }
|
||||
|
||||
public int EdaNumCVClear { get; set; }
|
||||
|
||||
public bool KwdlMbitPass { get; set; }
|
||||
|
||||
public bool KwdlMbitComplete { get; set; }
|
||||
|
||||
public bool KwdlPbitPass { get; set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.KwdlState KwdlState { get; set; }
|
||||
|
||||
public bool KwdlLinkUp { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct EdaStatus
|
||||
{
|
||||
public EdaStatus(uint status)
|
||||
{
|
||||
CryptoGoValue = Convert.ToBoolean(status & (uint)BitMask.CryptoGoValue);
|
||||
XcvrPowerMode = (EdaPowerMode)((status & (uint)BitMask.XcvrPowerMode) >> (int)Bit.XcvrPowerMode);
|
||||
DataBusMode = (EdaDataBusMode)((status & (uint)BitMask.DataBusMode) >> (int)Bit.DataBusMode);
|
||||
LowPowerMode = (EdaPowerMode)((status & (uint)BitMask.LowPowerMode) >> (int)Bit.LowPowerMode);
|
||||
TerminalId = (int)((status & (uint)BitMask.TerminalId) >> (int)Bit.TerminalId);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
CryptoGoValue = 0x0000_0800,
|
||||
XcvrPowerMode = 0x0000_0300,
|
||||
DataBusMode = 0x0000_0030,
|
||||
LowPowerMode = 0x0000_0003,
|
||||
TerminalId = 0x0000_F000
|
||||
}
|
||||
|
||||
private enum Bit
|
||||
{
|
||||
LowPowerMode = 0,
|
||||
DataBusMode = 4,
|
||||
XcvrPowerMode = 8,
|
||||
TerminalId = 12
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public bool CryptoGoValue { get; internal set; }
|
||||
|
||||
public EdaPowerMode XcvrPowerMode { get; internal set; }
|
||||
|
||||
public EdaDataBusMode DataBusMode { get; internal set; }
|
||||
|
||||
public EdaPowerMode LowPowerMode { get; internal set; }
|
||||
|
||||
public int TerminalId { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct EmStatus
|
||||
{
|
||||
|
||||
public EmStatus(uint regValue)
|
||||
{
|
||||
GeuClock = (SignalState)((regValue & (uint)BitMask.GeuClock) >> (int)BitIdx.GeuClock);
|
||||
EmReset = (SignalState)((regValue & (uint)BitMask.EmReset) >> (int)BitIdx.EmReset);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum BitIdx
|
||||
{
|
||||
GeuClock = 0x1,
|
||||
EmReset = 0x0
|
||||
}
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
GeuClock = 0x2,
|
||||
EmReset = 0x1
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState GeuClock { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState EmReset { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Raytheon.GuidedElectronicsUnit;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public enum ControlState
|
||||
{
|
||||
Disabled = 0,
|
||||
Enabled = 1
|
||||
}
|
||||
|
||||
public enum SdlcControlBits
|
||||
{
|
||||
TxInhibit = 0x1,
|
||||
TxAbort = 2,
|
||||
TxEndFrame = 4,
|
||||
RxInhibit = 8,
|
||||
RxAbort = 16,
|
||||
InternalLoopback = 32,
|
||||
EchoLoopback = 64,
|
||||
StationAddress = -16777216
|
||||
}
|
||||
|
||||
public enum SdlcStatusBits
|
||||
{
|
||||
TxActive = 0x1,
|
||||
TxFifoFull = 0x2,
|
||||
TxFifoEmpty = 0x4,
|
||||
TxFifoOverflowed = 0x8,
|
||||
RxActive = 0x10,
|
||||
RxFifoEmpty = 0x40,
|
||||
RxFifoFull = 0x20,
|
||||
RxFifoOverflowed = 0x80,
|
||||
RxMessageDone = 0x200,
|
||||
RxMessageFcsError = 0x400,
|
||||
RxMessageAborted = 0x800,
|
||||
InternalLoopback = 0x1000,
|
||||
EchoLoopback = 0x2000,
|
||||
TxInhibited = 0x4000,
|
||||
RxInhibited = 0x8000,
|
||||
DrOverrunError = 0x10000,
|
||||
RxBadAddressError = 256
|
||||
}
|
||||
|
||||
public enum ImuConfigure
|
||||
{
|
||||
TxEnable = 1,
|
||||
RxEnable = 2,
|
||||
KwTestMode = 4
|
||||
}
|
||||
|
||||
public enum EdaConfigure
|
||||
{
|
||||
EdaCVReady = 8,
|
||||
EdaCVReadyValid = 4,
|
||||
EdaPbitPass = 2,
|
||||
EdaPbitValid = 1,
|
||||
EdaCVClearPassFailValid = 16,
|
||||
EdaCVClearPassFail = 32,
|
||||
EdaNumCVClear = 960,
|
||||
KwdlRFTemp = 16711680,
|
||||
KwdlMbitPass = 16777216,
|
||||
KwdlMbitComplete = 33554432,
|
||||
KwdlPbitPass = 67108864,
|
||||
KwdlState = 939524096,
|
||||
KwdlLinkUp = 1073741824
|
||||
}
|
||||
|
||||
public enum ImuMessageWord
|
||||
{
|
||||
VelocityDeltaX = 0,
|
||||
VelocityDeltaY = 1,
|
||||
VelocityDeltaZ = 2,
|
||||
AngleDeltaX = 3,
|
||||
AngleDeltaY = 4,
|
||||
AngleDeltaZ = 5,
|
||||
StatusSummaryWord = 6,
|
||||
ModeMuxId = 7,
|
||||
MuxDataWord = 8,
|
||||
RawGyroCountX = 9,
|
||||
RawGyroCountY = 10,
|
||||
RawGyroCountZ = 11
|
||||
}
|
||||
|
||||
public enum PllState
|
||||
{
|
||||
Unlocked = 0,
|
||||
Locked = 1
|
||||
}
|
||||
|
||||
public enum ResetState
|
||||
{
|
||||
Inactive = 0,
|
||||
Active = 1
|
||||
}
|
||||
|
||||
public enum EdaDataBusMode
|
||||
{
|
||||
MTD = 1,
|
||||
KWDL = 2,
|
||||
Invalid0 = 0,
|
||||
Invalid3 = 3
|
||||
}
|
||||
|
||||
public enum EdaPowerMode
|
||||
{
|
||||
Enabled = 1,
|
||||
Disabled = 2,
|
||||
Invalid3 = 3,
|
||||
Invalid0 = 0
|
||||
}
|
||||
|
||||
public enum KwdlLocation
|
||||
{
|
||||
KW = 0,
|
||||
GS = 1
|
||||
}
|
||||
|
||||
public enum EdaBus
|
||||
{
|
||||
CS = 1,
|
||||
PT = 0
|
||||
}
|
||||
|
||||
public enum EdaChannel
|
||||
{
|
||||
A = 0,
|
||||
B = 1
|
||||
}
|
||||
|
||||
public enum KwdlState
|
||||
{
|
||||
Standby = 0,
|
||||
Tactical = 1,
|
||||
Maintenance = 2,
|
||||
Reprogram = 3,
|
||||
KA = 4,
|
||||
Invalid = 7
|
||||
}
|
||||
|
||||
public enum SignalState
|
||||
{
|
||||
Low = 0,
|
||||
High = 1
|
||||
}
|
||||
|
||||
public enum AutoForwardBufferCapacity
|
||||
{
|
||||
HalfFull = 1,
|
||||
Full = 2,
|
||||
Empty = 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct FirmwareInformation
|
||||
{
|
||||
public ushort ApplicationId { get; internal set; }
|
||||
|
||||
public ushort CustomerId { get; internal set; }
|
||||
|
||||
public uint RevisionId { get; internal set; }
|
||||
|
||||
public ushort Constant { get; internal set; }
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,70 @@
|
||||
<Project>
|
||||
<PropertyGroup Label="Globals">
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<Platforms>x86</Platforms>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<NimbusVersion>5.1.5</NimbusVersion>
|
||||
<NimbusBuildToolsMinimumVersion>5.1.0</NimbusBuildToolsMinimumVersion>
|
||||
<NimbusProjectType>IviNetDriverProject</NimbusProjectType>
|
||||
<DriverName>GuidedElectronicsUnit</DriverName>
|
||||
<DriverVersion>1.2.5.0</DriverVersion>
|
||||
<Company>Raytheon</Company>
|
||||
<Description>IVI.NET Driver for GuidedElectronicsUnit</Description>
|
||||
<Copyright>Copyright 2021, Raytheon</Copyright>
|
||||
<IoProvider>None</IoProvider>
|
||||
<RootNamespace>Raytheon.GuidedElectronicsUnit</RootNamespace>
|
||||
<TargetFramework>net46</TargetFramework>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<Version>1.2.5.0</Version>
|
||||
<AssemblyVersion>1.2.5.0</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
|
||||
<DriverVersion>1.2.5.0</DriverVersion>
|
||||
<Copyright>Copyright 2021, Raytheon</Copyright>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
|
||||
<DriverVersion>1.2.5.0</DriverVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="Sdk.props" Sdk="MindWorks.Nimbus.BuildTools" />
|
||||
<ItemGroup>
|
||||
<None Remove="CallLoggingEnumMap.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="CallLoggingEnumMap.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\GuidedElectronicsUnit.design" Link="GuidedElectronicsUnit.design" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FunctionCallsLoggingAdapter.Common">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\FunctionCallsLoggingAdapter.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FunctionCallsLoggingAdapter.Producer">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\FunctionCallsLoggingAdapter.Producer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Ivi.Driver">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\IVI Foundation\IVI\Microsoft.NET\Framework32\v2.0.50727\IviFoundationSharedComponents 1.4.1\Ivi.Driver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MessagingLoggingAdapter.Common">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\MessagingLoggingAdapter.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MessagingLoggingAdapter.Producer">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\MessagingLoggingAdapter.Producer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Teradyne.Instruments.HighSpeed.SubsystemDriver">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\IVI Foundation\IVI\Drivers\terHsi\References\Teradyne.Instruments.HighSpeed.SubsystemDriver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Teradyne.Instruments.Logging.Client.Common">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\Teradyne.Instruments.Logging.Client.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Teradyne.Instruments.Logging.Client.Producer">
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\Program Files (x86)\Teradyne\Shared\Assemblies\Logging\Teradyne.Instruments.Logging.Client.Producer.dll</HintPath>
|
||||
</Reference>
|
||||
|
||||
</ItemGroup>
|
||||
<Import Project="Sdk.targets" Sdk="MindWorks.Nimbus.BuildTools" />
|
||||
</Project>
|
||||
@@ -0,0 +1,685 @@
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using Teradyne.Instruments.HighSpeed.SubsystemDriver;
|
||||
using Teradyne.Instruments.Logging.Client;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public abstract class HardwareSession
|
||||
{
|
||||
protected readonly object componentLock = new();
|
||||
|
||||
protected const int auroraBusClkLockedBitIndex = 18;
|
||||
protected const int localBusPllLockedBitIndex = 17;
|
||||
protected const int pxiePllLockedBitIndex = 16;
|
||||
protected const int pxiePllEnableBitIndex = 0;
|
||||
|
||||
internal terHsi TerHsiSession { get; set; }
|
||||
|
||||
internal bool IsSimulated { get; set; }
|
||||
|
||||
internal void InitSession()
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "InitSession");
|
||||
|
||||
try
|
||||
{
|
||||
uint registerValue = 0;
|
||||
bool needToReset = false;
|
||||
|
||||
// Check that the FPGA is the right type.
|
||||
try
|
||||
{
|
||||
registerValue = ReadRegister16(RegisterConstant, RegisterHalf.Upper);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Assume that if there's any error, we'll need to reset the instrument.
|
||||
needToReset = true;
|
||||
}
|
||||
if ((registerValue == 0) || (registerValue == 0xFACE))
|
||||
{
|
||||
// If the value of the register is one of these values (depending
|
||||
// on whether it's a core instrument or IOXI), then that means
|
||||
// we've got an unloaded TDF. We'll need a reset to get the FW
|
||||
// loaded.
|
||||
needToReset = true;
|
||||
}
|
||||
else if (registerValue != ApplicationConstant)
|
||||
{
|
||||
throw new InvalidOperationException("Invalid Target device.");
|
||||
}
|
||||
else
|
||||
{
|
||||
var customerAppId = ReadRegister(RegisterApplicationCustomerId);
|
||||
|
||||
var revisionId = ReadRegister(RegisterRevisionId);
|
||||
|
||||
needToReset = (
|
||||
((customerAppId & 0xFFFF) != ExpectedCustomerId) ||
|
||||
(((customerAppId >> 16) & 0xFFFF) != ExpectedApplicationId) ||
|
||||
(revisionId != ExpectedRevisionId));
|
||||
}
|
||||
|
||||
if (needToReset)
|
||||
{
|
||||
LoadFirmware();
|
||||
GetInitialDefaults();
|
||||
SetDefaults();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "InitSession", null);
|
||||
}
|
||||
}
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected string SerialNumber => TerHsiSession.AssemblySerial;
|
||||
protected int Slot => TerHsiSession.InstrumentInfo.SlotNumber;
|
||||
protected int Chassis => TerHsiSession.InstrumentInfo.ChassisNumber;
|
||||
protected string Descriptor => TerHsiSession.ResourceDescriptor;
|
||||
protected ushort ApplicationConstant { get; set; }
|
||||
protected string ApplicationPrefix { get; set; }
|
||||
protected uint ExpectedApplicationId { get; set; }
|
||||
protected uint ExpectedCustomerId { get; set; }
|
||||
protected uint ExpectedRevisionId { get; set; }
|
||||
protected uint RegisterConstant { get; set; }
|
||||
protected uint RegisterApplicationCustomerId { get; set; }
|
||||
protected uint RegisterRevisionId { get; set; }
|
||||
protected uint RegisterPllStatus { get; set; }
|
||||
protected uint RegisterVccIntDieTemp { get; set; }
|
||||
protected uint RegisterVccAux { get; set; }
|
||||
protected bool WordSwap { get; set; }
|
||||
protected string ChipId { get; set; }
|
||||
protected int AdcBitCount { get; set; }
|
||||
protected double DieTemp
|
||||
{
|
||||
get
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "DieTemp");
|
||||
|
||||
double temp = 0;
|
||||
uint regData = 0;
|
||||
var mask = 0x03FF0000;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
if (TerHsiSession.IsFioxi)
|
||||
{
|
||||
mask = 0x0FFF0000;
|
||||
}
|
||||
|
||||
lock (componentLock)
|
||||
{
|
||||
regData = ReadRegister(RegisterVccIntDieTemp);
|
||||
}
|
||||
|
||||
var data = (regData & mask) >> 16;
|
||||
temp = (data * 503.975 / Math.Pow(2, AdcBitCount)) - 269.15;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "DieTemp", temp);
|
||||
}
|
||||
return temp; // accounting for +-4 degrees accuracy.
|
||||
}
|
||||
}
|
||||
protected double VccInt
|
||||
{
|
||||
get
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "VccInt");
|
||||
|
||||
var mask = 0x03FF;
|
||||
double vccInt = 0;
|
||||
|
||||
try
|
||||
{
|
||||
if (TerHsiSession.IsFioxi)
|
||||
{
|
||||
mask = 0x0FFF;
|
||||
}
|
||||
|
||||
var regData = ReadRegister(RegisterVccIntDieTemp);
|
||||
var data = regData & mask;
|
||||
vccInt = data / Math.Pow(2, AdcBitCount) * 3;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "VccInt", vccInt);
|
||||
}
|
||||
return vccInt;
|
||||
}
|
||||
}
|
||||
protected double VccAux
|
||||
{
|
||||
get
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "VccAux");
|
||||
|
||||
var mask = 0x03FF0000;
|
||||
double vccAux = 0;
|
||||
|
||||
try
|
||||
{
|
||||
if (TerHsiSession.IsFioxi)
|
||||
{
|
||||
mask = 0x0FFF0000;
|
||||
}
|
||||
|
||||
var regData = ReadRegister(RegisterVccAux);
|
||||
var data = (regData & mask) >> 16;
|
||||
vccAux = data * 3 / Math.Pow(2, AdcBitCount);
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "VccAus", vccAux);
|
||||
}
|
||||
return vccAux;
|
||||
}
|
||||
}
|
||||
|
||||
protected const int gsTxFifoSize = 4096;
|
||||
|
||||
protected const int imuTxFifoSize = 4096;
|
||||
|
||||
protected const int edaAcsTxFifoSize = 4096;
|
||||
|
||||
protected const int edaAptTxFifoSize = 4096;
|
||||
|
||||
protected enum SdlcInterface
|
||||
{
|
||||
GSKW = 0,
|
||||
IMU = 1,
|
||||
EDACS = 2,
|
||||
EDAPT = 3
|
||||
}
|
||||
|
||||
protected uint TerScratch0 { get; set; }
|
||||
protected uint TerScratch1 { get; set; }
|
||||
protected uint TerScratch2 { get; set; }
|
||||
protected uint TerSoftRstVal { get; set; }
|
||||
protected uint CLversion { get; set; }
|
||||
protected uint Scratch { get; set; }
|
||||
protected uint SoftRstVal { get; set; }
|
||||
protected uint IIemVersion { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected virtual void Reset()
|
||||
{
|
||||
SetDefaults();
|
||||
}
|
||||
|
||||
protected virtual void GetInitialDefaults()
|
||||
{
|
||||
}
|
||||
|
||||
protected virtual void SetDefaults()
|
||||
{
|
||||
}
|
||||
|
||||
protected void LoadFirmware()
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "LoadFirmware");
|
||||
|
||||
try
|
||||
{
|
||||
string firmwareDirectory = string.Empty;
|
||||
string firmwareFile =
|
||||
$"{ChipId}_C{ExpectedCustomerId:X4}_A{ExpectedApplicationId:X4}_R{ExpectedRevisionId:X8}.tdf";
|
||||
|
||||
string firmwarePath = Path.Combine(@"SOFTWARE\Raytheon\SM3", ApplicationPrefix, "IVI.NET");
|
||||
object pathValue = string.Empty;
|
||||
RegistryKey hklm = null;
|
||||
try
|
||||
{
|
||||
hklm = Registry.LocalMachine;
|
||||
RegistryKey subKey = hklm.OpenSubKey(firmwarePath);
|
||||
pathValue = subKey.GetValue("DriverPath");
|
||||
}
|
||||
catch (NullReferenceException e)
|
||||
{
|
||||
throw new NullReferenceException(
|
||||
string.Format("{0} Registry Key {1}\\{2} missing.", e.Message, hklm.ToString(), firmwarePath));
|
||||
}
|
||||
|
||||
if (pathValue != null)
|
||||
{
|
||||
firmwareDirectory = Path.Combine(pathValue.ToString(), "Firmware");
|
||||
}
|
||||
|
||||
firmwarePath = Path.Combine(firmwareDirectory, firmwareFile);
|
||||
try
|
||||
{
|
||||
TerHsiSession.Firmware_Load(firmwarePath);
|
||||
}
|
||||
catch (terHsiException e)
|
||||
{
|
||||
throw new Exception(
|
||||
string.Format("Error: 0x{0:X8} - {1} Error trying to load TDF file {2}.", e.Status, e.Message, firmwarePath));
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "LoadFirmware", null);
|
||||
}
|
||||
}
|
||||
|
||||
protected FirmwareInformation GetFirmwareInfo()
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "GetPllStatus");
|
||||
|
||||
var fwInfo = new FirmwareInformation();
|
||||
|
||||
try
|
||||
{
|
||||
var registerValue = ReadRegister(RegisterApplicationCustomerId);
|
||||
fwInfo.CustomerId = (ushort)registerValue;
|
||||
fwInfo.ApplicationId = (ushort)(registerValue >> 16);
|
||||
fwInfo.RevisionId = ReadRegister(RegisterRevisionId);
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "GetPllStatus", fwInfo);
|
||||
}
|
||||
return fwInfo;
|
||||
}
|
||||
|
||||
protected TdfPllStatus GetPllStatus()
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "GetPllStatus");
|
||||
|
||||
var pllStatus = new TdfPllStatus();
|
||||
|
||||
try
|
||||
{
|
||||
var registerValue = ReadRegister(RegisterPllStatus);
|
||||
|
||||
pllStatus.AuroraBusClkLocked = (PllState)GetBitValue(registerValue, auroraBusClkLockedBitIndex);
|
||||
pllStatus.LocalBusPllLocked = (PllState)GetBitValue(registerValue, localBusPllLockedBitIndex);
|
||||
pllStatus.PxiePllEnable = (ControlState)GetBitValue(registerValue, pxiePllEnableBitIndex);
|
||||
pllStatus.PxiePllLocked = (PllState)GetBitValue(registerValue, pxiePllLockedBitIndex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "GetPllStatus", pllStatus);
|
||||
}
|
||||
|
||||
return pllStatus;
|
||||
}
|
||||
|
||||
internal bool IsBitSet(uint val, int bitIdx)
|
||||
{
|
||||
int mask = 0x1 << bitIdx;
|
||||
|
||||
if ((val & mask) == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
internal int GetBitValue(uint val, int bitIdx)
|
||||
{
|
||||
int mask = 0x1 << bitIdx;
|
||||
|
||||
if ((val & mask) == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
internal SignalState GetSignalState(uint val, int bitIdx)
|
||||
{
|
||||
SignalState state = Raytheon.GuidedElectronicsUnit.SignalState.Low;
|
||||
int mask = 0x1 << bitIdx;
|
||||
|
||||
if ((val & mask) != 0)
|
||||
state = Raytheon.GuidedElectronicsUnit.SignalState.High;
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
#region SDLC Methods
|
||||
|
||||
protected void SendMessage(SdlcInterface sdlc, uint[] data)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "SendMessage",
|
||||
nameof(sdlc), sdlc,
|
||||
nameof(data), data);
|
||||
|
||||
uint countRegister = 0;
|
||||
uint controlRegister = 0;
|
||||
uint txInfoRegister = 0;
|
||||
int txFifoSize = 0;
|
||||
|
||||
try
|
||||
{
|
||||
switch (sdlc)
|
||||
{
|
||||
case SdlcInterface.GSKW:
|
||||
countRegister = RegisterMapHSSub9100.GS_KW__FIFO_WR_CNT;
|
||||
controlRegister = RegisterMapHSSub9100.GS_KW__CONTROL;
|
||||
txInfoRegister = RegisterMapHSSub9100.GS_KW__TX_INFO;
|
||||
txFifoSize = gsTxFifoSize;
|
||||
break;
|
||||
case SdlcInterface.IMU:
|
||||
countRegister = RegisterMapHSSub9100.IMU__FIFO_WR_CNT;
|
||||
controlRegister = RegisterMapHSSub9100.IMU__CONTROL;
|
||||
txInfoRegister = RegisterMapHSSub9100.IMU__TX_INFO;
|
||||
txFifoSize = imuTxFifoSize;
|
||||
break;
|
||||
case SdlcInterface.EDACS:
|
||||
countRegister = RegisterMapHSSub9100.EDA_ACS__FIFO_WR_CNT;
|
||||
controlRegister = RegisterMapHSSub9100.EDA_ACS__CONTROL;
|
||||
txInfoRegister = RegisterMapHSSub9100.EDA_ACS__TX_INFO;
|
||||
txFifoSize = edaAcsTxFifoSize;
|
||||
break;
|
||||
case SdlcInterface.EDAPT:
|
||||
countRegister = RegisterMapHSSub9100.EDA_APT__FIFO_WR_CNT;
|
||||
controlRegister = RegisterMapHSSub9100.EDA_APT__CONTROL;
|
||||
txInfoRegister = RegisterMapHSSub9100.EDA_APT__TX_INFO;
|
||||
txFifoSize = edaAptTxFifoSize;
|
||||
break;
|
||||
}
|
||||
|
||||
var frequency = Stopwatch.Frequency;
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
//1) Read *__FIFO_WR_CNT register and verify TX FIFO can hold entire message
|
||||
var wrCnt = ReadRegister(countRegister) & 0x0000FFFF;
|
||||
if (data.Length > (txFifoSize - wrCnt))
|
||||
throw new InvalidOperationException("TX Message size too large for TxFIFO");
|
||||
|
||||
// Disable TX engine until all data has been loaded
|
||||
if (data.Length > 1)
|
||||
ReadModifyWrite(controlRegister, 0x1, 0x1);
|
||||
|
||||
//2) Write entire message to the *__TX_INFO register
|
||||
foreach (uint word in data)
|
||||
WriteRegister(txInfoRegister, word);
|
||||
|
||||
//3) Insert message End Frame(optional but recommended)
|
||||
// a.Set bit 2 of *__CONTROL_TX_END_SDLC_FRAME register
|
||||
ReadModifyWrite(controlRegister, 0x4, 0x4);
|
||||
// b.Write one data word to *__TX_INFO register(data does not matter)
|
||||
WriteRegister(txInfoRegister, 0x0);
|
||||
// c.Clear bit 2 of *__CONTROL_TX_END_SDLC_FRAME register, Clear TX Inhibit (0)
|
||||
ReadModifyWrite(controlRegister, 0x0, 0x5);
|
||||
double delta = (double)stopwatch.ElapsedTicks / (double)frequency;
|
||||
// TODO Log(string.Format("Time to Load/Start message: {0:f}mS", delta * 1000));
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "SendMessage", null);
|
||||
}
|
||||
}
|
||||
|
||||
protected RxSdlcMessage[] ReadAllMessages(SdlcInterface sdlc)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "ReadAllMessages",
|
||||
nameof(sdlc), sdlc);
|
||||
|
||||
Queue<RxSdlcMessage> messages = new Queue<RxSdlcMessage>();
|
||||
|
||||
try
|
||||
{
|
||||
bool messageFound;
|
||||
do
|
||||
{
|
||||
var message = ReadMessage(sdlc);
|
||||
messageFound = (message.MessageData != null) ? true : false;
|
||||
|
||||
if (messageFound)
|
||||
{
|
||||
messages.Enqueue(message);
|
||||
}
|
||||
|
||||
} while (messageFound);
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "ReadAllMessages", null);
|
||||
}
|
||||
return messages.ToArray();
|
||||
}
|
||||
|
||||
protected RxSdlcMessage ReadMessage(SdlcInterface sdlc)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "ReadMessage",
|
||||
nameof(sdlc), sdlc);
|
||||
|
||||
uint rxMsgCntRegister = 0;
|
||||
uint statusRegister = 0;
|
||||
uint rxDataRegister = 0;
|
||||
uint rxMessageCount = 0;
|
||||
|
||||
RxSdlcMessage sdlcMessage = new RxSdlcMessage();
|
||||
|
||||
try
|
||||
{
|
||||
switch (sdlc)
|
||||
{
|
||||
case SdlcInterface.GSKW:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.GS_KW__MSG_CNT;
|
||||
statusRegister = RegisterMapHSSub9100.GS_KW__STATUS;
|
||||
rxDataRegister = RegisterMapHSSub9100.GS_KW__RX_DATA;
|
||||
break;
|
||||
case SdlcInterface.IMU:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.IMU__MSG_CNT;
|
||||
statusRegister = RegisterMapHSSub9100.IMU__STATUS;
|
||||
rxDataRegister = RegisterMapHSSub9100.IMU__RX_DATA;
|
||||
break;
|
||||
case SdlcInterface.EDACS:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.EDA_ACS__MSG_CNT;
|
||||
statusRegister = RegisterMapHSSub9100.EDA_ACS__STATUS;
|
||||
rxDataRegister = RegisterMapHSSub9100.EDA_ACS__RX_DATA;
|
||||
break;
|
||||
case SdlcInterface.EDAPT:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.EDA_APT__MSG_CNT;
|
||||
statusRegister = RegisterMapHSSub9100.EDA_APT__STATUS;
|
||||
rxDataRegister = RegisterMapHSSub9100.EDA_APT__RX_DATA;
|
||||
break;
|
||||
}
|
||||
|
||||
rxMessageCount = ReadRegister(rxMsgCntRegister);
|
||||
|
||||
if (rxMessageCount != 0)
|
||||
{
|
||||
var message = new List<RxSdlcData>();
|
||||
uint status;
|
||||
// Read the message
|
||||
do
|
||||
{
|
||||
// Read *__STATUS register.
|
||||
status = ReadRegister(statusRegister);
|
||||
|
||||
// Read and store the *__RX_DATA register
|
||||
var data = ReadRegister(rxDataRegister);
|
||||
var sdlcData = new RxSdlcData
|
||||
{
|
||||
Data = data,
|
||||
Status = status
|
||||
};
|
||||
|
||||
message.Add(sdlcData);
|
||||
// Repeat until status register bit 9 indicates the end of the message.
|
||||
} while (!IsBitSet(status, 9));
|
||||
|
||||
sdlcMessage.MessageData = message.ToArray();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "ReadMessage", null);
|
||||
}
|
||||
return sdlcMessage;
|
||||
}
|
||||
|
||||
protected void WaitForMsg(SdlcInterface sdlc, ushort count, double timeout)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "WaitForMsg",
|
||||
nameof(sdlc), sdlc,
|
||||
nameof(count), count,
|
||||
nameof(timeout), timeout);
|
||||
|
||||
uint rxMsgCntRegister = 0;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
switch (sdlc)
|
||||
{
|
||||
case SdlcInterface.IMU:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.IMU__MSG_CNT;
|
||||
break;
|
||||
case SdlcInterface.EDACS:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.EDA_ACS__MSG_CNT;
|
||||
break;
|
||||
case SdlcInterface.EDAPT:
|
||||
rxMsgCntRegister = RegisterMapHSSub9100.EDA_APT__MSG_CNT;
|
||||
break;
|
||||
}
|
||||
rxMsgCntRegister += 2;
|
||||
|
||||
lock (componentLock)
|
||||
{
|
||||
TerHsiSession.LB_BusyBitWait16(rxMsgCntRegister, count, count, timeout);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "WaitForMsg", null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region Protected Register Access
|
||||
|
||||
protected uint ReadRegister(uint registerAddress)
|
||||
{
|
||||
uint registerValue = 0;
|
||||
|
||||
lock (componentLock)
|
||||
{
|
||||
registerValue = TerHsiSession.LB_Read32(registerAddress);
|
||||
}
|
||||
|
||||
return registerValue;
|
||||
}
|
||||
|
||||
protected void WriteRegister(uint registerAddress, uint data)
|
||||
{
|
||||
lock (componentLock)
|
||||
{
|
||||
TerHsiSession.LB_Write32(registerAddress, data);
|
||||
}
|
||||
}
|
||||
|
||||
protected void ReadModifyWrite(uint registerAddress, uint data, uint mask)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "ReadModifyWrite",
|
||||
nameof(registerAddress), registerAddress,
|
||||
nameof(data), data,
|
||||
nameof(mask), mask);
|
||||
|
||||
try
|
||||
{
|
||||
lock (componentLock)
|
||||
{
|
||||
var oldVal = ReadRegister(registerAddress);
|
||||
|
||||
// <new register value> = (data & mask) | (<old register value> & !mask)
|
||||
var newVal = (data & mask) | (oldVal & ~mask);
|
||||
|
||||
CallLoggingHelper.Message(string.Format("{0}.{1}", GetType(), "ReadModifyWrite"));
|
||||
CallLoggingHelper.Message(string.Format("New Value to write: 0x{0:X}", newVal));
|
||||
|
||||
WriteRegister(registerAddress, newVal);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "ReadModifyWrite", null);
|
||||
}
|
||||
}
|
||||
|
||||
internal enum RegisterHalf
|
||||
{
|
||||
Upper = 1,
|
||||
Lower = 0
|
||||
}
|
||||
|
||||
internal ushort ReadRegister16(uint registerAddress, RegisterHalf location)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "ReadModifyWrite",
|
||||
nameof(registerAddress), registerAddress,
|
||||
nameof(location), location);
|
||||
|
||||
ushort registerValue = 0;
|
||||
|
||||
try
|
||||
{
|
||||
if (location == RegisterHalf.Lower)
|
||||
{
|
||||
registerAddress += 2;
|
||||
}
|
||||
|
||||
CallLoggingHelper.Message(string.Format("{0}.{1}", GetType(), "ReadRegister16"));
|
||||
CallLoggingHelper.Message(string.Format("Actual Register Offset: 0x{0:X}", registerAddress));
|
||||
|
||||
lock (componentLock)
|
||||
{
|
||||
registerValue = TerHsiSession.LB_Read16(registerAddress);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "ReadRegister16", registerValue);
|
||||
}
|
||||
|
||||
return registerValue;
|
||||
}
|
||||
|
||||
internal void BusyBitWait16(uint registerAddress, RegisterHalf location, ushort data, ushort mask, double timeout)
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "ReadModifyWrite",
|
||||
nameof(registerAddress), registerAddress,
|
||||
nameof(location), location);
|
||||
|
||||
try
|
||||
{
|
||||
if (location == RegisterHalf.Lower)
|
||||
{
|
||||
registerAddress += 2;
|
||||
}
|
||||
|
||||
CallLoggingHelper.Message(string.Format("{0}.{1}", GetType(), "BusyBitWait16"));
|
||||
CallLoggingHelper.Message(string.Format("Actual Register Offset: 0x{0:X}", registerAddress));
|
||||
|
||||
lock (componentLock)
|
||||
{
|
||||
TerHsiSession.LB_BusyBitWait16(registerAddress, data, mask, timeout);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "ReadRegister16", null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
internal class HardwareSession6020a : HardwareSession
|
||||
, IGuidedElectronicsUnitLowLevelHSSub6020a
|
||||
, IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator
|
||||
{
|
||||
public HardwareSession6020a()
|
||||
{
|
||||
ApplicationConstant = 0x4C01;
|
||||
ApplicationPrefix = "GEU";
|
||||
ChipId = "L1";
|
||||
AdcBitCount = 10;
|
||||
|
||||
WordSwap = false;
|
||||
|
||||
ExpectedApplicationId = RegisterMapHSSub6020a.ExpectedAppID;
|
||||
ExpectedCustomerId = RegisterMapHSSub6020a.ExpectedCustID;
|
||||
ExpectedRevisionId = RegisterMapHSSub6020a.ExpectedRevID;
|
||||
|
||||
RegisterConstant = RegisterMapHSSub6020a.TER_LB__FPGA_CONST;
|
||||
RegisterApplicationCustomerId = RegisterMapHSSub6020a.TER_LB__APP_CUST_ID;
|
||||
RegisterRevisionId = RegisterMapHSSub6020a.TER_LB__REV_ID;
|
||||
RegisterPllStatus = RegisterMapHSSub6020a.TER_LB__PLL;
|
||||
RegisterVccIntDieTemp = RegisterMapHSSub6020a.TER_LB__VCCINT_DT;
|
||||
RegisterVccAux = RegisterMapHSSub6020a.TER_LB__VCCAUX;
|
||||
}
|
||||
|
||||
public IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator IdaEmulator => this;
|
||||
public IGuidedElectronicsUnitLowLevelHSSub6020a LowLevel => this;
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected override void GetInitialDefaults()
|
||||
{
|
||||
base.GetInitialDefaults();
|
||||
}
|
||||
|
||||
protected override void SetDefaults()
|
||||
{
|
||||
base.SetDefaults();
|
||||
|
||||
IdaEmulator.Control = ControlState.Disabled;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IdaEmulator
|
||||
|
||||
ControlState IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator.Control
|
||||
{
|
||||
get
|
||||
{
|
||||
return IsBitSet(ReadRegister(RegisterMapHSSub6020a.EM_CONTROL), 0) ? ControlState.Enabled : ControlState.Disabled;
|
||||
}
|
||||
set
|
||||
{
|
||||
ReadModifyWrite(RegisterMapHSSub6020a.EM_CONTROL, Convert.ToUInt32(value), 0x1);
|
||||
}
|
||||
}
|
||||
|
||||
IdaStatus IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator.Status
|
||||
{
|
||||
get
|
||||
{
|
||||
return new(ReadRegister(RegisterMapHSSub6020a.EM_STATUS));
|
||||
}
|
||||
}
|
||||
|
||||
uint IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator.Version
|
||||
{
|
||||
get
|
||||
{
|
||||
return ReadRegister(RegisterMapHSSub6020a.II_EM_VERSION);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region LowLevel
|
||||
|
||||
bool IGuidedElectronicsUnitLowLevelHSSub6020a.IsSimulated => IsSimulated;
|
||||
|
||||
int IGuidedElectronicsUnitLowLevelHSSub6020a.Chassis => Chassis;
|
||||
|
||||
string IGuidedElectronicsUnitLowLevelHSSub6020a.Descriptor => Descriptor;
|
||||
|
||||
string IGuidedElectronicsUnitLowLevelHSSub6020a.SerialNumber => SerialNumber;
|
||||
|
||||
int IGuidedElectronicsUnitLowLevelHSSub6020a.Slot => Slot;
|
||||
|
||||
void IGuidedElectronicsUnitLowLevelHSSub6020a.Reset() => Reset();
|
||||
|
||||
FirmwareInformation IGuidedElectronicsUnitLowLevelHSSub6020a.GetFirmwareInfo() => GetFirmwareInfo();
|
||||
|
||||
TdfPllStatus IGuidedElectronicsUnitLowLevelHSSub6020a.GetPllStatus() => GetPllStatus();
|
||||
|
||||
uint IGuidedElectronicsUnitLowLevelHSSub6020a.ReadRegister(uint address) =>
|
||||
ReadRegister(address);
|
||||
|
||||
void IGuidedElectronicsUnitLowLevelHSSub6020a.ReadModifyWrite(uint address, uint data, uint mask) =>
|
||||
ReadModifyWrite(address, data, mask);
|
||||
|
||||
void IGuidedElectronicsUnitLowLevelHSSub6020a.WriteRegister(uint address, uint data) =>
|
||||
WriteRegister(address, data);
|
||||
|
||||
double IGuidedElectronicsUnitLowLevelHSSub6020a.DieTemp => DieTemp;
|
||||
|
||||
double IGuidedElectronicsUnitLowLevelHSSub6020a.VccInt => VccInt;
|
||||
|
||||
double IGuidedElectronicsUnitLowLevelHSSub6020a.VccAux => VccAux;
|
||||
|
||||
|
||||
ControlState IGuidedElectronicsUnitLowLevelHSSub6020a.EnableIO
|
||||
{
|
||||
get
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "getEnableIO");
|
||||
|
||||
ControlState state = ControlState.Disabled;
|
||||
try
|
||||
{
|
||||
state = IsBitSet(ReadRegister(RegisterMapHSSub6020a.FP_IO_CTRL), 0) ? ControlState.Enabled : ControlState.Disabled;
|
||||
return state;
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "getEnableIO", state);
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
CallLoggingHelper.FunctionStart(GetType(), "setEnableIO", value);
|
||||
|
||||
try
|
||||
{
|
||||
WriteRegister(RegisterMapHSSub6020a.FP_IO_CTRL, (uint)(Convert.ToBoolean(value) ? 0 : 1));
|
||||
}
|
||||
finally
|
||||
{
|
||||
CallLoggingHelper.FunctionEnd(GetType(), "setEnableIO", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EmStatus IGuidedElectronicsUnitLowLevelHSSub6020a.EmStatus
|
||||
{
|
||||
get => new(ReadRegister(RegisterMapHSSub6020a.EM_STATUS));
|
||||
}
|
||||
|
||||
void IGuidedElectronicsUnitLowLevelHSSub6020a.ResetEmStatus()
|
||||
{
|
||||
WriteRegister(RegisterMapHSSub6020a.EM_STATUS, 0x0);
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,130 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Teradyne.Instruments.HighSpeed.SubsystemDriver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
internal static class HardwareSessionFactory
|
||||
{
|
||||
//private static readonly Dictionary<MindWorks.Nimbus.Driver, HardwareSession> _driverSessionToHardwareSession =
|
||||
// new();
|
||||
private static readonly Dictionary<string, HardwareSession> _resourceNameToHardwareSession = new();
|
||||
private static readonly Dictionary<HardwareSession, List<MindWorks.Nimbus.Driver>> _hardwareSessionToDriverSession = new();
|
||||
|
||||
private static readonly object _componentLock = new();
|
||||
|
||||
public static T NewHardwareSession<T>(
|
||||
MindWorks.Nimbus.Driver driverSession,
|
||||
string resourceName,
|
||||
bool simulated,
|
||||
bool reset) where T : HardwareSession, new()
|
||||
{
|
||||
lock (_componentLock)
|
||||
{
|
||||
HardwareSession foundHardwareSession = null;
|
||||
terHsi terHsiSession = null;
|
||||
|
||||
//if (_driverSessionToHardwareSession.ContainsKey(driverSession))
|
||||
// return _driverSessionToHardwareSession[driverSession] as T;
|
||||
if (_resourceNameToHardwareSession.ContainsKey(resourceName))
|
||||
return _resourceNameToHardwareSession[resourceName] as T;
|
||||
|
||||
if (simulated)
|
||||
{
|
||||
terHsiSession = terHsi.CreateSession(resourceName, reset, "simulate=true");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Call the driver's init function to get a session handle.
|
||||
terHsiSession = terHsi.CreateSession(resourceName, reset);
|
||||
driverSession.Session.InstrumentFirmwareRevision = terHsiSession.FirmwareRevision;
|
||||
driverSession.Session.InstrumentManufacturer = terHsiSession.Manufacturer;
|
||||
}
|
||||
|
||||
|
||||
// If the returned session handle is new, then create a wrapper for it.
|
||||
foreach (var entry in _hardwareSessionToDriverSession)
|
||||
{
|
||||
HardwareSession hardwareSession = entry.Key;
|
||||
if (hardwareSession.TerHsiSession == terHsiSession)
|
||||
{
|
||||
entry.Value.Add(driverSession);
|
||||
foundHardwareSession = hardwareSession;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (foundHardwareSession == null)
|
||||
{
|
||||
var driverSessionList = new List<MindWorks.Nimbus.Driver>();
|
||||
|
||||
// Create a hardware session and associate the driver session with it.
|
||||
foundHardwareSession = new T
|
||||
{
|
||||
TerHsiSession = terHsiSession,
|
||||
IsSimulated = simulated
|
||||
};
|
||||
driverSessionList.Add(driverSession);
|
||||
_hardwareSessionToDriverSession.Add(foundHardwareSession, driverSessionList);
|
||||
|
||||
foundHardwareSession.InitSession();
|
||||
}
|
||||
|
||||
// Record the hardware session associated with the driver session and
|
||||
// return the hardware session.
|
||||
//_driverSessionToHardwareSession.Add(driverSession, foundHardwareSession);
|
||||
_resourceNameToHardwareSession.Add(resourceName, foundHardwareSession);
|
||||
|
||||
return foundHardwareSession as T;
|
||||
}
|
||||
}
|
||||
|
||||
public static void EndHardwareSession(MindWorks.Nimbus.Driver driverSession, string resourceName)
|
||||
{
|
||||
lock (_componentLock)
|
||||
{
|
||||
// Locate the hardware session associated with the driver session.
|
||||
//if (!_driverSessionToHardwareSession.TryGetValue(driverSession, out HardwareSession hardwareSession))
|
||||
if (!_resourceNameToHardwareSession.TryGetValue(resourceName, out HardwareSession hardwareSession))
|
||||
{
|
||||
// Not found, nothing to do
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_hardwareSessionToDriverSession.TryGetValue(hardwareSession, out List<MindWorks.Nimbus.Driver> driverSessionList))
|
||||
{
|
||||
// Not found, nothing to do
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove the driver session from the list of driver sessions supported by the hardware session.
|
||||
if (!driverSessionList.Remove(driverSession))
|
||||
{
|
||||
// Nothing found, nothing to do
|
||||
return;
|
||||
}
|
||||
|
||||
// If there are no more sessions for this wrapper, then shutdown the wrapper
|
||||
// and delete it from our list.
|
||||
if (driverSessionList.Count == 0)
|
||||
{
|
||||
_hardwareSessionToDriverSession.Remove(hardwareSession);
|
||||
|
||||
// Close the hardware session too
|
||||
terHsi terHsiSession = hardwareSession.TerHsiSession;
|
||||
terHsiSession?.Reset();
|
||||
terHsiSession?.Dispose();
|
||||
|
||||
hardwareSession = null;
|
||||
}
|
||||
|
||||
// Remove the driver session entry in our list of driver sessions.
|
||||
//_driverSessionToHardwareSession.Remove(driverSession);
|
||||
_resourceNameToHardwareSession.Remove(resourceName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct IdaStatus
|
||||
{
|
||||
public IdaStatus(uint status)
|
||||
{
|
||||
GeuToII40MhzClockLocked = (PllState)(status & (uint)BitMask.GeuToII40MhzClockLocked);
|
||||
IIEmulatorReset = (ResetState)(status & (uint)BitMask.IIEmulatorReset);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
GeuToII40MhzClockLocked = 0x0000_0002,
|
||||
IIEmulatorReset = 0x0000_0001
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.PllState GeuToII40MhzClockLocked { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.ResetState IIEmulatorReset { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct ImuConfig
|
||||
{
|
||||
public ImuConfig(uint status)
|
||||
{
|
||||
KwTestMode = Convert.ToBoolean(status & (uint)ImuConfigure.KwTestMode);
|
||||
RxEnable = Convert.ToBoolean(status & (uint)ImuConfigure.RxEnable);
|
||||
TxEnable = Convert.ToBoolean(status & (uint)ImuConfigure.TxEnable);
|
||||
}
|
||||
|
||||
public bool KwTestMode { get; }
|
||||
|
||||
public bool RxEnable { get; }
|
||||
|
||||
public bool TxEnable { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct ImuDiscreteInput
|
||||
{
|
||||
public ImuDiscreteInput(uint status)
|
||||
{
|
||||
ExternalSync = Convert.ToBoolean(status & (uint)BitMask.ExternalSync) ? SignalState.High : SignalState.Low;
|
||||
PowerOnreset = Convert.ToBoolean(status & (uint)BitMask.PowerOnreset) ? SignalState.High : SignalState.Low;
|
||||
FastRestart = Convert.ToBoolean(status & (uint)BitMask.FastRestart) ? SignalState.High : SignalState.Low;
|
||||
NotCommandBit = Convert.ToBoolean(status & (uint)BitMask.NotCommandBit) ? SignalState.High : SignalState.Low;
|
||||
NotInhibitBit = Convert.ToBoolean(status & (uint)BitMask.NotInhibitBit) ? SignalState.High : SignalState.Low;
|
||||
InhibitPowerOnReset = Convert.ToBoolean(status & (uint)BitMask.InhibitPowerOnReset) ? SignalState.High : SignalState.Low;
|
||||
SimExternalSync = Convert.ToBoolean(status & (uint)BitMask.SimExternalSync) ? SignalState.High : SignalState.Low;
|
||||
SimPowerOnreset = Convert.ToBoolean(status & (uint)BitMask.SimPowerOnreset) ? SignalState.High : SignalState.Low;
|
||||
SimFastRestart = Convert.ToBoolean(status & (uint)BitMask.SimFastRestart) ? SignalState.High : SignalState.Low;
|
||||
SimNotCommandBit = Convert.ToBoolean(status & (uint)BitMask.SimNotCommandBit) ? SignalState.High : SignalState.Low;
|
||||
SimNotInhibitBit = Convert.ToBoolean(status & (uint)BitMask.SimNotInhibitBit) ? SignalState.High : SignalState.Low;
|
||||
}
|
||||
|
||||
#region Internal Members
|
||||
|
||||
internal enum BitMask
|
||||
{
|
||||
ExternalSync = 0x1,
|
||||
PowerOnreset = 0x2,
|
||||
FastRestart = 0x4,
|
||||
NotCommandBit = 0x8,
|
||||
NotInhibitBit = 0x10,
|
||||
InhibitPowerOnReset = 0x20,
|
||||
SimExternalSync = 0x100,
|
||||
SimPowerOnreset = 0x200,
|
||||
SimFastRestart = 0x400,
|
||||
SimNotCommandBit = 0x800,
|
||||
SimNotInhibitBit = 0x1000
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState SimNotInhibitBit { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState SimNotCommandBit { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState SimFastRestart { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState SimExternalSync { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState SimPowerOnreset { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState ExternalSync { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState FastRestart { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState NotCommandBit { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState NotInhibitBit { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState PowerOnreset { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.SignalState InhibitPowerOnReset { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct ImuMessage
|
||||
{
|
||||
public uint VelocityDeltaX { get; internal set; }
|
||||
|
||||
public uint VelocityDeltaY { get; internal set; }
|
||||
|
||||
public uint VelocityDeltaZ { get; internal set; }
|
||||
|
||||
public uint AngleDeltaX { get; internal set; }
|
||||
|
||||
public uint AngleDeltaY { get; internal set; }
|
||||
|
||||
public uint AngleDeltaZ { get; internal set; }
|
||||
|
||||
public uint StatusSummaryWord { get; internal set; }
|
||||
|
||||
public uint ModeMuxId { get; internal set; }
|
||||
|
||||
public uint MuxDataWord { get; internal set; }
|
||||
|
||||
public uint RawGyroCountX { get; internal set; }
|
||||
|
||||
public uint RawGyroCountY { get; internal set; }
|
||||
|
||||
public uint RawGyroCountZ { get; internal set; }
|
||||
|
||||
public uint Checksum { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public interface IGuidedElectronicsUnit
|
||||
{
|
||||
IGuidedElectronicsUnitDiscrete Discrete { get; }
|
||||
IGuidedElectronicsUnitInertialMeasurementUnitEmulator InertialMeasurementUnitEmulator { get; }
|
||||
IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulator EncryptorDecryptorAssemblyEmulator { get; }
|
||||
IGuidedElectronicsUnitLowLevel LowLevel { get; }
|
||||
IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator IntegratedDewarAssemblyInterfaceEmulator { get; }
|
||||
IGuidedElectronicsUnitGsKwSyncronousDataLinkControl GsKwSyncronousDataLinkControl { get; }
|
||||
IGuidedElectronicsUnitTestControl TestControl { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitDiscrete
|
||||
{
|
||||
Raytheon.GuidedElectronicsUnit.SignalState NcDacsKwOrdEn { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitInertialMeasurementUnitEmulator
|
||||
{
|
||||
SdlcStatus FetchStatus();
|
||||
void SetDataWord(Raytheon.GuidedElectronicsUnit.ImuMessageWord word, uint data);
|
||||
ImuMessage FetchMessageData();
|
||||
void Configure(Raytheon.GuidedElectronicsUnit.ImuConfigure control, Raytheon.GuidedElectronicsUnit.ControlState state);
|
||||
ImuConfig FetchConfiguration();
|
||||
double EODSampleWidth { get; set; }
|
||||
ImuDiscreteInput FetchDiscreteInput();
|
||||
void SdlcControl(Raytheon.GuidedElectronicsUnit.SdlcControlBits control, Raytheon.GuidedElectronicsUnit.ControlState state);
|
||||
SdlcFifoWrCount FifoWrCount { get; }
|
||||
RxSdlcMessage ReadMessage();
|
||||
RxSdlcMessage[] ReadAllMessages();
|
||||
void SendMessage(uint[] data);
|
||||
|
||||
Raytheon.GuidedElectronicsUnit.ControlState FrameEnable { get; set; }
|
||||
double FramePeriod { get; set; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulator
|
||||
{
|
||||
IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelA ChannelA { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitLowLevel
|
||||
{
|
||||
IGuidedElectronicsUnitLowLevelHSSub6020a HSSub6020a { get; }
|
||||
IGuidedElectronicsUnitLowLevelHSSub9100 HSSub9100 { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitLowLevelHSSub6020a
|
||||
{
|
||||
FirmwareInformation GetFirmwareInfo();
|
||||
TdfPllStatus GetPllStatus();
|
||||
uint ReadRegister(uint address);
|
||||
void WriteRegister(uint address, uint data);
|
||||
void Reset();
|
||||
void ReadModifyWrite(uint address, uint data, uint mask);
|
||||
int Chassis { get; }
|
||||
string Descriptor { get; }
|
||||
string SerialNumber { get; }
|
||||
int Slot { get; }
|
||||
double DieTemp { get; }
|
||||
double VccInt { get; }
|
||||
double VccAux { get; }
|
||||
bool IsSimulated { get; }
|
||||
Raytheon.GuidedElectronicsUnit.ControlState EnableIO { get; set; }
|
||||
void ResetEmStatus();
|
||||
EmStatus EmStatus { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitIntegratedDewarAssemblyInterfaceEmulator
|
||||
{
|
||||
Raytheon.GuidedElectronicsUnit.ControlState Control { get; set; }
|
||||
IdaStatus Status { get; }
|
||||
uint Version { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitLowLevelHSSub9100
|
||||
{
|
||||
FirmwareInformation GetFirmwareInfo();
|
||||
TdfPllStatus GetPllStatus();
|
||||
uint ReadRegister(uint address);
|
||||
void WriteRegister(uint address, uint data);
|
||||
void Reset();
|
||||
void ReadModifyWrite(uint address, uint data, uint mask);
|
||||
int Chassis { get; }
|
||||
string Descriptor { get; }
|
||||
string SerialNumber { get; }
|
||||
int Slot { get; }
|
||||
double DieTemp { get; }
|
||||
double VccInt { get; }
|
||||
double VccAux { get; }
|
||||
bool IsSimulated { get; }
|
||||
Raytheon.GuidedElectronicsUnit.ControlState EnableIO { get; set; }
|
||||
AuroraStatus GetAuroraStatus();
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitGsKwSyncronousDataLinkControl
|
||||
{
|
||||
void SdlcControl(SdlcControlBits control, ControlState state);
|
||||
SdlcStatus FetchStatus();
|
||||
void SendMessage(uint[] data);
|
||||
|
||||
event EventHandler<SdlcEventArgs> AutoForwardBufferCapacityWarning;
|
||||
SdlcFifoWrCount FifoWrCount { get; }
|
||||
bool Sync { get; set; }
|
||||
byte[] FetchMessageData();
|
||||
RxSdlcMessage ReadMessage();
|
||||
RxSdlcMessage[] ReadAllMessages();
|
||||
event EventHandler<SdlcEventArgs> AutoForwardProcessExited;
|
||||
|
||||
RxSdlcAutoForwardBuffer SdlcAutoForwardBuffer { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitTestControl
|
||||
{
|
||||
void WaitForMsg(ushort count);
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelA
|
||||
{
|
||||
IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelAPT PT { get; }
|
||||
IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelACS CS { get; }
|
||||
Scoreboard FetchScoreboard();
|
||||
KwdlStatus FetchKwdlStatus();
|
||||
byte[] FetchCVData();
|
||||
CvcwData FetchCVCWData();
|
||||
void Configure(EdaConfig configuration);
|
||||
EdaStatus FetchEdaStatus();
|
||||
EdaConfig FetchConfiguration();
|
||||
bool EdaPbitValid { get; set; }
|
||||
bool EdaPbitPass { get; set; }
|
||||
bool EdaCVReadyValid { get; set; }
|
||||
bool EdaCVReady { get; set; }
|
||||
bool EdaCVClearPassFailValid { get; set; }
|
||||
bool EdaCVClearPassFail { get; set; }
|
||||
short EdaNumCVClear { get; set; }
|
||||
short KwdlRFTemp { get; set; }
|
||||
bool KwdlMbitPass { get; set; }
|
||||
bool KwdlMbitComplete { get; set; }
|
||||
bool KwdlPbitPass { get; set; }
|
||||
Raytheon.GuidedElectronicsUnit.KwdlState KwdlState { get; set; }
|
||||
bool KwdlLinkUp { get; set; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelAPT
|
||||
{
|
||||
void SdlcControl(SdlcControlBits control, ControlState state);
|
||||
SdlcStatus FetchSdlcStatus();
|
||||
RxSdlcMessage[] ReadAllMessages();
|
||||
RxSdlcMessage ReadMessage();
|
||||
void SendMessage(uint[] data);
|
||||
SdlcFifoWrCount FifoWrCount { get; }
|
||||
}
|
||||
|
||||
public interface IGuidedElectronicsUnitEncryptorDecryptorAssemblyEmulatorChannelACS
|
||||
{
|
||||
SdlcStatus FetchSdlcStatus();
|
||||
void SdlcControl(SdlcControlBits control, ControlState state);
|
||||
RxSdlcMessage[] ReadAllMessages();
|
||||
RxSdlcMessage ReadMessage();
|
||||
void SendMessage(uint[] data);
|
||||
SdlcFifoWrCount FifoWrCount { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct KwdlStatus
|
||||
{
|
||||
|
||||
public KwdlStatus(uint status)
|
||||
{
|
||||
AntennaPort = (int)((status & (uint)BitMask.AntennaPort) >> (int)Bit.AntennaPort);
|
||||
Channel = (int)((status & (uint)BitMask.Channel) >> (int)Bit.Channel);
|
||||
DestinationId = (int)((status & (uint)BitMask.DestinationId) >> (int)Bit.DestinationId);
|
||||
Location = (KwdlLocation)((status & (uint)BitMask.Location) >> (int)Bit.Location);
|
||||
RFPower = (int)((status & (uint)BitMask.RFPower) >> (int)Bit.RFPower);
|
||||
SourceId = (int)((status & (uint)BitMask.SourceId) >> (int)Bit.SourceId);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
DestinationId = 0x0000_000F,
|
||||
SourceId = 0x0000_00F0,
|
||||
Channel = 0x0000_3F00,
|
||||
Location = 0x0001_0000,
|
||||
AntennaPort = 0x0030_0000,
|
||||
RFPower = 0x0300_0000
|
||||
}
|
||||
|
||||
private enum Bit
|
||||
{
|
||||
DestinationId = 0,
|
||||
SourceId = 4,
|
||||
Channel = 8,
|
||||
Location = 16,
|
||||
AntennaPort = 20,
|
||||
RFPower = 24
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public int RFPower { get; internal set; }
|
||||
|
||||
public int AntennaPort { get; internal set; }
|
||||
|
||||
public KwdlLocation Location { get; internal set; }
|
||||
|
||||
public int Channel { get; internal set; }
|
||||
|
||||
public int SourceId { get; internal set; }
|
||||
|
||||
public int DestinationId { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
|
||||
[InstrumentFamilies]
|
||||
internal static class Families
|
||||
{
|
||||
internal const string DefaultFamily = "DefaultFamily";
|
||||
|
||||
internal static readonly string[] DefaultFamilyMembers = new[] { Models.HSSub6020a__HSSub9010 };
|
||||
}
|
||||
|
||||
|
||||
|
||||
[InstrumentModels(Models.HSSub6020a__HSSub9010)]
|
||||
internal static class Models
|
||||
{
|
||||
internal const string Any = "";
|
||||
internal const string HSSub6020a__HSSub9010 = "HSSub6020a, HSSub9010";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
[Serializable]
|
||||
public class ReadMessageIncomplete : Exception
|
||||
{
|
||||
public ReadMessageIncomplete()
|
||||
{
|
||||
// Add any type-specific logic, and supply the default message.
|
||||
//
|
||||
}
|
||||
|
||||
public ReadMessageIncomplete(string message)
|
||||
: base(message)
|
||||
{
|
||||
// Add any type-specific logic.
|
||||
//
|
||||
}
|
||||
|
||||
public ReadMessageIncomplete(string message, Exception innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
// Add any type-specific logic for inner exceptions.
|
||||
//
|
||||
}
|
||||
|
||||
protected ReadMessageIncomplete(SerializationInfo info, StreamingContext context)
|
||||
: base(info, context)
|
||||
{
|
||||
// Implement type-specific serialization constructor logic.
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
[Serializable]
|
||||
public class ReadMessageTimeout : Exception
|
||||
{
|
||||
public ReadMessageTimeout()
|
||||
{
|
||||
// Add any type-specific logic, and supply the default message.
|
||||
//
|
||||
}
|
||||
|
||||
public ReadMessageTimeout(string message)
|
||||
: base(message)
|
||||
{
|
||||
// Add any type-specific logic.
|
||||
//
|
||||
}
|
||||
|
||||
public ReadMessageTimeout(string message, Exception innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
// Add any type-specific logic for inner exceptions.
|
||||
//
|
||||
}
|
||||
|
||||
protected ReadMessageTimeout(SerializationInfo info, StreamingContext context)
|
||||
: base(info, context)
|
||||
{
|
||||
// Implement type-specific serialization constructor logic.
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
class RegisterDefaults
|
||||
{
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
[Serializable]
|
||||
public class RxDataError : Exception
|
||||
{
|
||||
public RxDataError()
|
||||
{
|
||||
// Add any type-specific logic, and supply the default message.
|
||||
//
|
||||
}
|
||||
|
||||
public RxDataError(string message)
|
||||
: base(message)
|
||||
{
|
||||
// Add any type-specific logic.
|
||||
//
|
||||
}
|
||||
|
||||
public RxDataError(string message, Exception innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
// Add any type-specific logic for inner exceptions.
|
||||
//
|
||||
}
|
||||
|
||||
protected RxDataError(SerializationInfo info, StreamingContext context)
|
||||
: base(info, context)
|
||||
{
|
||||
// Implement type-specific serialization constructor logic.
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct RxSdlcAutoForwardBuffer
|
||||
{
|
||||
|
||||
public int InitialCapacity { get; internal set; }
|
||||
|
||||
public int CurrentCapacity { get; internal set; }
|
||||
|
||||
public int HighwaterLevel { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct RxSdlcData
|
||||
{
|
||||
public RxSdlcData(uint data, uint status)
|
||||
{
|
||||
Data = data;
|
||||
Status = status;
|
||||
}
|
||||
|
||||
public uint Data { get; internal set; }
|
||||
|
||||
public uint Status { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct RxSdlcMessage
|
||||
{
|
||||
public RxSdlcMessage(List<RxSdlcData> data) { MessageData = data.ToArray(); }
|
||||
|
||||
public RxSdlcData[] MessageData { get; internal set; }
|
||||
|
||||
public uint[] ToDataArray
|
||||
{
|
||||
get
|
||||
{
|
||||
List<uint> data = new List<uint>();
|
||||
|
||||
foreach (RxSdlcData val in MessageData)
|
||||
{
|
||||
data.Add(val.Data);
|
||||
}
|
||||
|
||||
return data.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public MessageEnumerator GetEnumerator()
|
||||
{
|
||||
return new MessageEnumerator(this);
|
||||
}
|
||||
|
||||
// Declare the enumerator class:
|
||||
public class MessageEnumerator
|
||||
{
|
||||
int nIndex;
|
||||
RxSdlcMessage message;
|
||||
public MessageEnumerator(RxSdlcMessage coll)
|
||||
{
|
||||
message = coll;
|
||||
nIndex = -1;
|
||||
}
|
||||
|
||||
public bool MoveNext()
|
||||
{
|
||||
nIndex++;
|
||||
return (nIndex < message.MessageData.Length);
|
||||
}
|
||||
|
||||
public RxSdlcData Current => message.MessageData[nIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct Scoreboard
|
||||
{
|
||||
public Scoreboard(uint status)
|
||||
{
|
||||
EdaCVClearControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaCVClearControlMessage);
|
||||
MtdCarrierEnableMessage = Convert.ToBoolean(status & (uint)BitMask.MtdCarrierEnableMessage);
|
||||
KwEchoMessage = Convert.ToBoolean(status & (uint)BitMask.KwEchoMessage);
|
||||
KwdlAntennaSelectMessage = Convert.ToBoolean(status & (uint)BitMask.KwdlAntennaSelectMessage);
|
||||
KwdlStateControlStatusRequestMessage = Convert.ToBoolean(status & (uint)BitMask.KwdlStateControlStatusRequestMessage);
|
||||
KwdlInitializeMessage = Convert.ToBoolean(status & (uint)BitMask.KwdlInitializeMessage);
|
||||
EdaCryptoGoControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaCryptoGoControlMessage);
|
||||
EdaTerminalIDControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaTerminalIDControlMessage);
|
||||
EdaGeneralStatusRequestMessage = Convert.ToBoolean(status & (uint)BitMask.EdaGeneralStatusRequestMessage);
|
||||
EdaCVControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaCVControlMessage);
|
||||
EdaCVCWControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaCVCWControlMessage);
|
||||
EdaTransceiverPowerControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaTransceiverPowerControlMessage);
|
||||
EdaDataBusModeControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaDataBusModeControlMessage);
|
||||
EdaLowPowerModeControlMessage = Convert.ToBoolean(status & (uint)BitMask.EdaLowPowerModeControlMessage);
|
||||
}
|
||||
|
||||
public bool EdaCVClearControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaCVControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaGeneralStatusRequestMessage { get; internal set; }
|
||||
|
||||
public bool EdaTerminalIDControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaCryptoGoControlMessage { get; internal set; }
|
||||
|
||||
public bool KwdlInitializeMessage { get; internal set; }
|
||||
|
||||
public bool KwdlStateControlStatusRequestMessage { get; internal set; }
|
||||
|
||||
public bool KwdlAntennaSelectMessage { get; internal set; }
|
||||
|
||||
public bool KwEchoMessage { get; internal set; }
|
||||
|
||||
public bool MtdCarrierEnableMessage { get; internal set; }
|
||||
|
||||
public bool EdaCVCWControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaTransceiverPowerControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaDataBusModeControlMessage { get; internal set; }
|
||||
|
||||
public bool EdaLowPowerModeControlMessage { get; internal set; }
|
||||
|
||||
internal enum BitMask
|
||||
{
|
||||
EdaCVClearControlMessage = 0x0000_2000,
|
||||
MtdCarrierEnableMessage = 0x0000_1000,
|
||||
KwEchoMessage = 0x0000_0800,
|
||||
KwdlAntennaSelectMessage = 0x0000_0400,
|
||||
KwdlStateControlStatusRequestMessage = 0x0000_0200,
|
||||
KwdlInitializeMessage = 0x0000_0100,
|
||||
EdaCryptoGoControlMessage = 0x0000_0080,
|
||||
EdaTerminalIDControlMessage = 0x0000_0040,
|
||||
EdaGeneralStatusRequestMessage = 0x0000_0020,
|
||||
EdaCVControlMessage = 0x0000_0010,
|
||||
EdaCVCWControlMessage = 0x0000_0008,
|
||||
EdaTransceiverPowerControlMessage = 0x0000_0004,
|
||||
EdaDataBusModeControlMessage = 0x0000_0002,
|
||||
EdaLowPowerModeControlMessage = 0x0000_0001
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public sealed class SdlcEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates a new instance of the MessageEventArgs class. For the <paramref name="node"/> parameter, pass in the "this" reference of the driver class
|
||||
/// that instantiated the MessageEventArgs class.
|
||||
/// </summary>
|
||||
/// <param name="node">The driver class that instantiated the MessageEventArgs class.</param>
|
||||
internal SdlcEventArgs()
|
||||
{
|
||||
Message = string.Empty;
|
||||
PrecentageFull = AutoForwardBufferCapacity.Empty;
|
||||
}
|
||||
|
||||
internal SdlcEventArgs(AutoForwardBufferCapacity level)
|
||||
{
|
||||
Message = level switch
|
||||
{
|
||||
AutoForwardBufferCapacity.HalfFull => "Buffer is at 50% capacity.",
|
||||
AutoForwardBufferCapacity.Full => "Buffer is full and no longer capturing data.",
|
||||
_ => "Buffer is less than half full or empty"
|
||||
};
|
||||
|
||||
PrecentageFull = level;
|
||||
}
|
||||
|
||||
public string Message { get; set; }
|
||||
|
||||
public AutoForwardBufferCapacity PrecentageFull { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct SdlcFifoWrCount
|
||||
{
|
||||
public SdlcFifoWrCount(uint count)
|
||||
{
|
||||
RxWrCount = (int)((count & 0xffff0000) >> 16);
|
||||
TxWrCount = (int)(count & 0xffff);
|
||||
}
|
||||
|
||||
public int RxWrCount { get; internal set; }
|
||||
|
||||
public int TxWrCount { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
//public struct SdlcStatus
|
||||
public struct SdlcStatus
|
||||
{
|
||||
public SdlcStatus(uint status)
|
||||
{
|
||||
DrOverrunError = Convert.ToBoolean(status & (uint)BitMask.DrError);
|
||||
RxInhibited = Convert.ToBoolean(status & (uint)BitMask.RxInhibit);
|
||||
TxInhibited = Convert.ToBoolean(status & (uint)BitMask.TxInhibit);
|
||||
EchoLoopback = Convert.ToBoolean(status & (uint)BitMask.Echo);
|
||||
InternalLoopback = Convert.ToBoolean(status & (uint)BitMask.InterruptLB);
|
||||
RxMessageAborted = Convert.ToBoolean(status & (uint)BitMask.RxAbort);
|
||||
RxMessageFcsError = Convert.ToBoolean(status & (uint)BitMask.RxFcs);
|
||||
RxMessageDone = Convert.ToBoolean(status & (uint)BitMask.RxDone);
|
||||
RxBadAddrError = Convert.ToBoolean(status & (uint)BitMask.Rba);
|
||||
RxFifoOverflowed = Convert.ToBoolean(status & (uint)BitMask.RxFifoOverflow);
|
||||
RxFifoEmpty = Convert.ToBoolean(status & (uint)BitMask.RxFifoEmpty);
|
||||
RxFifoFull = Convert.ToBoolean(status & (uint)BitMask.RxFifoFull);
|
||||
RxActive = Convert.ToBoolean(status & (uint)BitMask.RxActive);
|
||||
TxFifoOverflowed = Convert.ToBoolean(status & (uint)BitMask.TxFifoOverflow);
|
||||
TxFifoEmpty = Convert.ToBoolean(status & (uint)BitMask.TxFifoEmpty);
|
||||
TxFifoFull = Convert.ToBoolean(status & (uint)BitMask.TxFifoFull);
|
||||
TxActive = Convert.ToBoolean(status & (uint)BitMask.TxActive);
|
||||
}
|
||||
|
||||
#region Private Members
|
||||
|
||||
private enum BitMask
|
||||
{
|
||||
DrError = 0x00010000,
|
||||
RxInhibit = 0x00008000,
|
||||
TxInhibit = 0x00004000,
|
||||
Echo = 0x00002000,
|
||||
InterruptLB = 0x00001000,
|
||||
RxAbort = 0x00000800,
|
||||
RxFcs = 0x00000400,
|
||||
RxDone = 0x00000200,
|
||||
Rba = 0x00000100,
|
||||
RxFifoOverflow = 0x00000080,
|
||||
RxFifoEmpty = 0x00000040,
|
||||
RxFifoFull = 0x00000020,
|
||||
RxActive = 0x00000010,
|
||||
TxFifoOverflow = 0x00000008,
|
||||
TxFifoEmpty = 0x00000004,
|
||||
TxFifoFull = 0x00000002,
|
||||
TxActive = 0x0000001
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public bool DrOverrunError { get; internal set; }
|
||||
|
||||
public bool RxInhibited { get; internal set; }
|
||||
|
||||
public bool EchoLoopback { get; internal set; }
|
||||
|
||||
public bool InternalLoopback { get; internal set; }
|
||||
|
||||
public bool RxMessageAborted { get; internal set; }
|
||||
|
||||
public bool RxMessageFcsError { get; internal set; }
|
||||
|
||||
public bool RxMessageDone { get; internal set; }
|
||||
|
||||
public bool RxBadAddrError { get; internal set; }
|
||||
|
||||
public bool RxFifoOverflowed { get; internal set; }
|
||||
|
||||
public bool RxFifoEmpty { get; internal set; }
|
||||
|
||||
public bool TxInhibited { get; internal set; }
|
||||
|
||||
public bool RxFifoFull { get; internal set; }
|
||||
|
||||
public bool RxActive { get; internal set; }
|
||||
|
||||
public bool TxActive { get; internal set; }
|
||||
|
||||
public bool TxFifoOverflowed { get; internal set; }
|
||||
|
||||
public bool TxFifoEmpty { get; internal set; }
|
||||
|
||||
public bool TxFifoFull { get; internal set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Resources;
|
||||
using System.Text;
|
||||
using MindWorks.Nimbus;
|
||||
using Ivi.Driver;
|
||||
|
||||
namespace Raytheon.GuidedElectronicsUnit
|
||||
{
|
||||
public struct TdfPllStatus
|
||||
{
|
||||
public Raytheon.GuidedElectronicsUnit.PllState AuroraBusClkLocked { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.PllState LocalBusPllLocked { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.ControlState PxiePllEnable { get; internal set; }
|
||||
|
||||
public Raytheon.GuidedElectronicsUnit.PllState PxiePllLocked { get; internal set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"msbuild-sdks": {
|
||||
"MindWorks.Nimbus.BuildTools": "5.2.0"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user