Compare commits
34 Commits
Author | SHA1 | Date | |
---|---|---|---|
ef797b23df | |||
0e645d20e2 | |||
78b2f5ac24 | |||
103f8273eb | |||
c4438e8a8a | |||
900e5d80b3 | |||
be22ea0673 | |||
76f9ce8a79 | |||
6ba90bf7e5 | |||
25f8be5f24 | |||
cffb8a180b | |||
52eaaaac79 | |||
39236f43b4 | |||
13b9e3ab64 | |||
438ffd4c1a | |||
31509018c7 | |||
3388cc761c | |||
066c0187f2 | |||
a2fef8a2a4 | |||
b5a51ad633 | |||
e433588449 | |||
7459a60074 | |||
c27ae16867 | |||
72c7ef702a | |||
d699af66bb | |||
4f4ff1a25a | |||
2ea459b400 | |||
f9fcb14e47 | |||
0250037f11 | |||
c633df4ff3 | |||
d7f0d6eb18 | |||
b95cb0f504 | |||
7691014c41 | |||
79a10434d8 |
Binary file not shown.
@ -17,9 +17,7 @@
|
|||||||
%SYSTEMDRIVE% - The drive letter of %IIS_BIN%
|
%SYSTEMDRIVE% - The drive letter of %IIS_BIN%
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<configuration>
|
<configuration>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
The <configSections> section controls the registration of sections.
|
The <configSections> section controls the registration of sections.
|
||||||
@ -58,7 +56,6 @@
|
|||||||
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
<section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
<section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
|
|
||||||
<sectionGroup name="system.webServer">
|
<sectionGroup name="system.webServer">
|
||||||
<section name="asp" overrideModeDefault="Deny" />
|
<section name="asp" overrideModeDefault="Deny" />
|
||||||
<section name="caching" overrideModeDefault="Allow" />
|
<section name="caching" overrideModeDefault="Allow" />
|
||||||
@ -118,9 +115,9 @@
|
|||||||
<section name="rewriteMaps" overrideModeDefault="Allow" />
|
<section name="rewriteMaps" overrideModeDefault="Allow" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
<section name="webSocket" overrideModeDefault="Deny" />
|
<section name="webSocket" overrideModeDefault="Deny" />
|
||||||
|
<section name="aspNetCore" overrideModeDefault="Allow" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
|
|
||||||
<configProtectedData>
|
<configProtectedData>
|
||||||
<providers>
|
<providers>
|
||||||
<add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
|
<add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
|
||||||
@ -128,20 +125,18 @@
|
|||||||
<add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
|
<add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
|
||||||
</providers>
|
</providers>
|
||||||
</configProtectedData>
|
</configProtectedData>
|
||||||
|
|
||||||
<system.applicationHost>
|
<system.applicationHost>
|
||||||
|
|
||||||
<applicationPools>
|
<applicationPools>
|
||||||
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
|
||||||
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
|
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
|
||||||
|
<add name="WebApplication1 AppPool" managedRuntimeVersion="" />
|
||||||
<applicationPoolDefaults managedRuntimeVersion="v4.0">
|
<applicationPoolDefaults managedRuntimeVersion="v4.0">
|
||||||
<processModel loadUserProfile="true" setProfileEnvironment="false" />
|
<processModel loadUserProfile="true" setProfileEnvironment="false" />
|
||||||
</applicationPoolDefaults>
|
</applicationPoolDefaults>
|
||||||
</applicationPools>
|
</applicationPools>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
The <listenerAdapters> section defines the protocols with which the
|
The <listenerAdapters> section defines the protocols with which the
|
||||||
@ -151,7 +146,6 @@
|
|||||||
<listenerAdapters>
|
<listenerAdapters>
|
||||||
<add name="http" />
|
<add name="http" />
|
||||||
</listenerAdapters>
|
</listenerAdapters>
|
||||||
|
|
||||||
<sites>
|
<sites>
|
||||||
<site name="WebSite1" id="1" serverAutoStart="true">
|
<site name="WebSite1" id="1" serverAutoStart="true">
|
||||||
<application path="/">
|
<application path="/">
|
||||||
@ -169,6 +163,22 @@
|
|||||||
<binding protocol="http" bindingInformation="*:56414:localhost" />
|
<binding protocol="http" bindingInformation="*:56414:localhost" />
|
||||||
</bindings>
|
</bindings>
|
||||||
</site>
|
</site>
|
||||||
|
<site name="WebApplication1" id="3">
|
||||||
|
<application path="/" applicationPool="WebApplication1 AppPool">
|
||||||
|
<virtualDirectory path="/" physicalPath="D:\GIT\ASCKU_PC\WebApplication1" />
|
||||||
|
</application>
|
||||||
|
<bindings>
|
||||||
|
<binding protocol="http" bindingInformation="*:16979:localhost" />
|
||||||
|
</bindings>
|
||||||
|
</site>
|
||||||
|
<site name="Site" id="4">
|
||||||
|
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
||||||
|
<virtualDirectory path="/" physicalPath="F:\GIT\ASCKU_PC\Site" />
|
||||||
|
</application>
|
||||||
|
<bindings>
|
||||||
|
<binding protocol="http" bindingInformation="*:52028:localhost" />
|
||||||
|
</bindings>
|
||||||
|
</site>
|
||||||
<siteDefaults>
|
<siteDefaults>
|
||||||
<!-- To enable logging, please change the below attribute "enabled" to "true" -->
|
<!-- To enable logging, please change the below attribute "enabled" to "true" -->
|
||||||
<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
|
<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
|
||||||
@ -177,25 +187,16 @@
|
|||||||
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
|
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
|
||||||
<virtualDirectoryDefaults allowSubDirConfig="true" />
|
<virtualDirectoryDefaults allowSubDirConfig="true" />
|
||||||
</sites>
|
</sites>
|
||||||
|
|
||||||
<webLimits />
|
<webLimits />
|
||||||
|
|
||||||
</system.applicationHost>
|
</system.applicationHost>
|
||||||
|
|
||||||
<system.webServer>
|
<system.webServer>
|
||||||
|
|
||||||
<serverRuntime />
|
<serverRuntime />
|
||||||
|
|
||||||
<asp scriptErrorSentToBrowser="true">
|
<asp scriptErrorSentToBrowser="true">
|
||||||
<cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
|
<cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
|
||||||
<limits />
|
<limits />
|
||||||
</asp>
|
</asp>
|
||||||
|
<caching enabled="true" enableKernelCache="true"></caching>
|
||||||
<caching enabled="true" enableKernelCache="true">
|
|
||||||
</caching>
|
|
||||||
|
|
||||||
<cgi />
|
<cgi />
|
||||||
|
|
||||||
<defaultDocument enabled="true">
|
<defaultDocument enabled="true">
|
||||||
<files>
|
<files>
|
||||||
<add value="Default.htm" />
|
<add value="Default.htm" />
|
||||||
@ -206,11 +207,8 @@
|
|||||||
<add value="default.aspx" />
|
<add value="default.aspx" />
|
||||||
</files>
|
</files>
|
||||||
</defaultDocument>
|
</defaultDocument>
|
||||||
|
|
||||||
<directoryBrowse enabled="false" />
|
<directoryBrowse enabled="false" />
|
||||||
|
|
||||||
<fastCgi />
|
<fastCgi />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
The <globalModules> section defines all native-code modules.
|
The <globalModules> section defines all native-code modules.
|
||||||
@ -256,8 +254,8 @@
|
|||||||
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
|
<add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
|
||||||
<add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
|
<add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
|
||||||
<add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
|
<add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
|
||||||
|
<add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
|
||||||
</globalModules>
|
</globalModules>
|
||||||
|
|
||||||
<httpCompression directory="%TEMP%">
|
<httpCompression directory="%TEMP%">
|
||||||
<scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
|
<scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
|
||||||
<dynamicTypes>
|
<dynamicTypes>
|
||||||
@ -277,7 +275,6 @@
|
|||||||
<add mimeType="*/*" enabled="false" />
|
<add mimeType="*/*" enabled="false" />
|
||||||
</staticTypes>
|
</staticTypes>
|
||||||
</httpCompression>
|
</httpCompression>
|
||||||
|
|
||||||
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
|
<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
|
||||||
<error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
|
<error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
|
||||||
<error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
|
<error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
|
||||||
@ -289,9 +286,7 @@
|
|||||||
<error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
|
<error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
|
||||||
<error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
|
<error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
|
||||||
</httpErrors>
|
</httpErrors>
|
||||||
|
|
||||||
<httpLogging dontLog="false" />
|
<httpLogging dontLog="false" />
|
||||||
|
|
||||||
<httpProtocol>
|
<httpProtocol>
|
||||||
<customHeaders>
|
<customHeaders>
|
||||||
<clear />
|
<clear />
|
||||||
@ -301,11 +296,8 @@
|
|||||||
<clear />
|
<clear />
|
||||||
</redirectHeaders>
|
</redirectHeaders>
|
||||||
</httpProtocol>
|
</httpProtocol>
|
||||||
|
|
||||||
<httpRedirect enabled="false" />
|
<httpRedirect enabled="false" />
|
||||||
|
|
||||||
<httpTracing />
|
<httpTracing />
|
||||||
|
|
||||||
<isapiFilters>
|
<isapiFilters>
|
||||||
<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
|
<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
|
||||||
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
|
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
|
||||||
@ -313,52 +305,35 @@
|
|||||||
<filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
|
<filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
|
||||||
<filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
|
<filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
|
||||||
</isapiFilters>
|
</isapiFilters>
|
||||||
|
|
||||||
<odbcLogging />
|
<odbcLogging />
|
||||||
|
|
||||||
<security>
|
<security>
|
||||||
|
|
||||||
<access sslFlags="None" />
|
<access sslFlags="None" />
|
||||||
|
|
||||||
<applicationDependencies>
|
<applicationDependencies>
|
||||||
<application name="Active Server Pages" groupId="ASP" />
|
<application name="Active Server Pages" groupId="ASP" />
|
||||||
</applicationDependencies>
|
</applicationDependencies>
|
||||||
|
|
||||||
<authentication>
|
<authentication>
|
||||||
|
|
||||||
<anonymousAuthentication enabled="true" userName="" />
|
<anonymousAuthentication enabled="true" userName="" />
|
||||||
|
|
||||||
<basicAuthentication enabled="false" />
|
<basicAuthentication enabled="false" />
|
||||||
|
|
||||||
<clientCertificateMappingAuthentication enabled="false" />
|
<clientCertificateMappingAuthentication enabled="false" />
|
||||||
|
|
||||||
<digestAuthentication enabled="false" />
|
<digestAuthentication enabled="false" />
|
||||||
|
<iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication>
|
||||||
<iisClientCertificateMappingAuthentication enabled="false">
|
|
||||||
</iisClientCertificateMappingAuthentication>
|
|
||||||
|
|
||||||
<windowsAuthentication enabled="false">
|
<windowsAuthentication enabled="false">
|
||||||
<providers>
|
<providers>
|
||||||
<add value="Negotiate" />
|
<add value="Negotiate" />
|
||||||
<add value="NTLM" />
|
<add value="NTLM" />
|
||||||
</providers>
|
</providers>
|
||||||
</windowsAuthentication>
|
</windowsAuthentication>
|
||||||
|
|
||||||
</authentication>
|
</authentication>
|
||||||
|
|
||||||
<authorization>
|
<authorization>
|
||||||
<add accessType="Allow" users="*" />
|
<add accessType="Allow" users="*" />
|
||||||
</authorization>
|
</authorization>
|
||||||
|
|
||||||
<ipSecurity allowUnlisted="true" />
|
<ipSecurity allowUnlisted="true" />
|
||||||
|
|
||||||
<isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
|
<isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
|
||||||
<add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
|
<add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
|
||||||
<add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
|
<add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
|
||||||
<add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
|
<add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
|
||||||
<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
|
<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
|
||||||
</isapiCgiRestriction>
|
</isapiCgiRestriction>
|
||||||
|
|
||||||
<requestFiltering>
|
<requestFiltering>
|
||||||
<fileExtensions allowUnlisted="true" applyToWebDAV="true">
|
<fileExtensions allowUnlisted="true" applyToWebDAV="true">
|
||||||
<add fileExtension=".asa" allowed="false" />
|
<add fileExtension=".asa" allowed="false" />
|
||||||
@ -418,11 +393,8 @@
|
|||||||
<add segment="App_Browsers" />
|
<add segment="App_Browsers" />
|
||||||
</hiddenSegments>
|
</hiddenSegments>
|
||||||
</requestFiltering>
|
</requestFiltering>
|
||||||
|
|
||||||
</security>
|
</security>
|
||||||
|
|
||||||
<serverSideInclude ssiExecDisable="false" />
|
<serverSideInclude ssiExecDisable="false" />
|
||||||
|
|
||||||
<staticContent lockAttributes="isDocFooterFileName">
|
<staticContent lockAttributes="isDocFooterFileName">
|
||||||
<mimeMap fileExtension=".323" mimeType="text/h323" />
|
<mimeMap fileExtension=".323" mimeType="text/h323" />
|
||||||
<mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
|
<mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
|
||||||
@ -803,9 +775,7 @@
|
|||||||
<mimeMap fileExtension=".z" mimeType="application/x-compress" />
|
<mimeMap fileExtension=".z" mimeType="application/x-compress" />
|
||||||
<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
|
<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
|
||||||
</staticContent>
|
</staticContent>
|
||||||
|
|
||||||
<tracing>
|
<tracing>
|
||||||
|
|
||||||
<traceFailedRequests>
|
<traceFailedRequests>
|
||||||
<add path="*">
|
<add path="*">
|
||||||
<traceAreas>
|
<traceAreas>
|
||||||
@ -817,7 +787,6 @@
|
|||||||
<failureDefinitions statusCodes="200-999" />
|
<failureDefinitions statusCodes="200-999" />
|
||||||
</add>
|
</add>
|
||||||
</traceFailedRequests>
|
</traceFailedRequests>
|
||||||
|
|
||||||
<traceProviderDefinitions>
|
<traceProviderDefinitions>
|
||||||
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
|
<add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
|
||||||
<areas>
|
<areas>
|
||||||
@ -855,11 +824,8 @@
|
|||||||
</areas>
|
</areas>
|
||||||
</add>
|
</add>
|
||||||
</traceProviderDefinitions>
|
</traceProviderDefinitions>
|
||||||
|
|
||||||
</tracing>
|
</tracing>
|
||||||
|
|
||||||
<urlCompression />
|
<urlCompression />
|
||||||
|
|
||||||
<validation />
|
<validation />
|
||||||
<webdav>
|
<webdav>
|
||||||
<globalSettings>
|
<globalSettings>
|
||||||
@ -869,7 +835,6 @@
|
|||||||
<lockStores>
|
<lockStores>
|
||||||
<add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
|
<add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
|
||||||
</lockStores>
|
</lockStores>
|
||||||
|
|
||||||
</globalSettings>
|
</globalSettings>
|
||||||
<authoring>
|
<authoring>
|
||||||
<locks enabled="true" lockStore="webdav_simple_lock" />
|
<locks enabled="true" lockStore="webdav_simple_lock" />
|
||||||
@ -878,7 +843,6 @@
|
|||||||
</webdav>
|
</webdav>
|
||||||
<webSocket />
|
<webSocket />
|
||||||
<applicationInitialization />
|
<applicationInitialization />
|
||||||
|
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
<location path="" overrideMode="Allow">
|
<location path="" overrideMode="Allow">
|
||||||
<system.webServer>
|
<system.webServer>
|
||||||
@ -929,6 +893,7 @@
|
|||||||
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
|
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
|
||||||
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
|
<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
|
||||||
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
|
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
|
||||||
|
<add name="AspNetCoreModuleV2" />
|
||||||
</modules>
|
</modules>
|
||||||
<handlers accessPolicy="Read, Script">
|
<handlers accessPolicy="Read, Script">
|
||||||
<!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
|
<!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
|
||||||
@ -1026,4 +991,20 @@
|
|||||||
</handlers>
|
</handlers>
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
</location>
|
</location>
|
||||||
|
<location path="WebApplication1" inheritInChildApplications="false">
|
||||||
|
<system.webServer>
|
||||||
|
<modules>
|
||||||
|
<remove name="WebMatrixSupportModule" />
|
||||||
|
</modules>
|
||||||
|
<handlers>
|
||||||
|
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
|
||||||
|
</handlers>
|
||||||
|
<aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="false" hostingModel="InProcess" startupTimeLimit="3600" requestTimeout="23:00:00" />
|
||||||
|
<httpCompression>
|
||||||
|
<dynamicTypes>
|
||||||
|
<add mimeType="text/event-stream" enabled="false" />
|
||||||
|
</dynamicTypes>
|
||||||
|
</httpCompression>
|
||||||
|
</system.webServer>
|
||||||
|
</location>
|
||||||
</configuration>
|
</configuration>
|
Binary file not shown.
BIN
.vs/ASCKU Projects/v16/TestStore/0/000.testlog
Normal file
BIN
.vs/ASCKU Projects/v16/TestStore/0/000.testlog
Normal file
Binary file not shown.
BIN
.vs/ASCKU Projects/v16/TestStore/0/testlog.manifest
Normal file
BIN
.vs/ASCKU Projects/v16/TestStore/0/testlog.manifest
Normal file
Binary file not shown.
@ -23,54 +23,351 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PrintPDF", "PrintPDF", "{EF
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Korp90TimePasport", "Korp90TimePasport\Korp90TimePasport.csproj", "{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Korp90TimePasport", "Korp90TimePasport\Korp90TimePasport.csproj", "{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "STPClient", "STPClient\STPClient.csproj", "{EE48A5E6-C8DD-4829-8132-30DC5AA40854}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataClient", "DataClient\DataClient.csproj", "{EE48A5E6-C8DD-4829-8132-30DC5AA40854}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test2", "Test2\Test2.csproj", "{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "test3", "test3\test3.csproj", "{33B08224-623E-4120-942E-AAE199CD63A0}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiServer", "ApiServer\ApiServer.csproj", "{618EF8A3-70D7-42A8-A407-AA3E47FE184C}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClientCollector", "ClientCollector\ClientCollector.csproj", "{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}"
|
||||||
|
EndProject
|
||||||
|
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Site", "Site\", "{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}"
|
||||||
|
ProjectSection(WebsiteProperties) = preProject
|
||||||
|
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
|
||||||
|
Debug.AspNetCompiler.VirtualPath = "/localhost_52028"
|
||||||
|
Debug.AspNetCompiler.PhysicalPath = "Site\"
|
||||||
|
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_52028\"
|
||||||
|
Debug.AspNetCompiler.Updateable = "true"
|
||||||
|
Debug.AspNetCompiler.ForceOverwrite = "true"
|
||||||
|
Debug.AspNetCompiler.FixedNames = "false"
|
||||||
|
Debug.AspNetCompiler.Debug = "True"
|
||||||
|
Release.AspNetCompiler.VirtualPath = "/localhost_52028"
|
||||||
|
Release.AspNetCompiler.PhysicalPath = "Site\"
|
||||||
|
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_52028\"
|
||||||
|
Release.AspNetCompiler.Updateable = "true"
|
||||||
|
Release.AspNetCompiler.ForceOverwrite = "true"
|
||||||
|
Release.AspNetCompiler.FixedNames = "false"
|
||||||
|
Release.AspNetCompiler.Debug = "False"
|
||||||
|
VWDPort = "52028"
|
||||||
|
SlnRelativePath = "Site\"
|
||||||
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|Any CPU.Build.0 = Release|Any CPU
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EBFBCB65-A591-4444-8557-BFC084566FF7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{E420055E-687E-4BD5-BBD0-EC1DA643C011}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{50970C14-5670-4893-A58F-EA7E03360647}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{50970C14-5670-4893-A58F-EA7E03360647}.Release|Any CPU.Build.0 = Release|Any CPU
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{50970C14-5670-4893-A58F-EA7E03360647}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|Any CPU.Build.0 = Release|Any CPU
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{5BC9149F-4717-4BD1-8FC1-1D29744DA643}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|Any CPU.Build.0 = Release|Any CPU
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{6D63CEBF-20D8-41CA-BE57-5701F95EDC47}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{8BCEABEB-E345-45F6-880D-59B5920691F8}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C873319A-89FB-4F7E-BD72-F9BCC147E08A}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|Any CPU.Build.0 = Release|Any CPU
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{4494877D-DAA5-4498-BA09-6001E9371D4B}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EC718A4D-6B40-453F-8650-4AF9CF8FE9BD}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|Any CPU.Build.0 = Release|Any CPU
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EE48A5E6-C8DD-4829-8132-30DC5AA40854}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{9D5DF611-A1D3-4544-8E32-D14CFDF91BFA}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{33B08224-623E-4120-942E-AAE199CD63A0}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{618EF8A3-70D7-42A8-A407-AA3E47FE184C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{91CA0D25-5552-4FC2-B61D-EE0FF35D86BB}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|x64.Build.0 = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{41F2077F-FD59-4FDA-B54F-DF327A6DE29D}.Release|x86.Build.0 = Debug|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
BIN
ASCKU_PC.zip
Normal file
BIN
ASCKU_PC.zip
Normal file
Binary file not shown.
12
ApiServer/.config/dotnet-tools.json
Normal file
12
ApiServer/.config/dotnet-tools.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"isRoot": true,
|
||||||
|
"tools": {
|
||||||
|
"dotnet-ef": {
|
||||||
|
"version": "5.0.8",
|
||||||
|
"commands": [
|
||||||
|
"dotnet-ef"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
23
ApiServer/ApiServer.csproj
Normal file
23
ApiServer/ApiServer.csproj
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
|
<PackageReference Include="NLog" Version="4.7.10" />
|
||||||
|
<PackageReference Include="SharpZipLib" Version="1.3.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\DataClient\DataClient.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Parametrs\Новая папка\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ProjectExtensions><VisualStudio><UserProperties config_4analog_4global_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
|
||||||
|
|
||||||
|
</Project>
|
12
ApiServer/ApiServer.csproj.user
Normal file
12
ApiServer/ApiServer.csproj.user
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
|
||||||
|
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
|
||||||
|
<ActiveDebugProfile>ApiServer</ActiveDebugProfile>
|
||||||
|
<NameOfLastUsedPublishProfile>F:\GIT\ASCKU_PC\ApiServer\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
33
ApiServer/ApiStruct/Data.cs
Normal file
33
ApiServer/ApiStruct/Data.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using DataClient.Struct;
|
||||||
|
|
||||||
|
namespace ApiServer.ApiStruct
|
||||||
|
{
|
||||||
|
public class DataCheckApi
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public DateTime DateAndTime { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class DataCheckClient
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public bool Exist { get; set; }
|
||||||
|
public ulong DataSize { get; set; }
|
||||||
|
}
|
||||||
|
public class DataCreateApi
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public DateTime DateAndTime { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public byte[] Struct { get; set; }
|
||||||
|
}
|
||||||
|
public class DataCreateClient
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
67
ApiServer/ApiStruct/Date.cs
Normal file
67
ApiServer/ApiStruct/Date.cs
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Structures;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
|
||||||
|
namespace ApiServer.ApiStruct
|
||||||
|
{
|
||||||
|
public class DateGetAnalogApi
|
||||||
|
{
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
public int Index { get; set; }
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
}
|
||||||
|
public class DateGetAnalogClient
|
||||||
|
{
|
||||||
|
public Analog[] Analog { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DateGetAnalogsApi
|
||||||
|
{
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
public int[] Index { get; set; }
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
}
|
||||||
|
public class DateGetAnalogsClient
|
||||||
|
{
|
||||||
|
public AnalogArr[] Analogs { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DateGetTechCycleApi
|
||||||
|
{
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
}
|
||||||
|
public class DateGetTechCycleClient
|
||||||
|
{
|
||||||
|
public TechCycle[] TechCycle { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DateGetProtectApi
|
||||||
|
{
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
}
|
||||||
|
public class DateGetProtectClient
|
||||||
|
{
|
||||||
|
public Protect[] Protect { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DateGetDiscretApi
|
||||||
|
{
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
}
|
||||||
|
public class DateGetDiscretClient
|
||||||
|
{
|
||||||
|
public Discret[] Discret { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
35
ApiServer/ApiStruct/Discret.cs
Normal file
35
ApiServer/ApiStruct/Discret.cs
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Structures;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
|
||||||
|
namespace ApiServer.ApiStruct
|
||||||
|
{
|
||||||
|
public class DiscretGetiscretsMatrixApi
|
||||||
|
{
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
}
|
||||||
|
public class DiscretGetDscretsMatrixClient
|
||||||
|
{
|
||||||
|
public StateStruct[] StateParams { get; set; }
|
||||||
|
public DiscretParams[] DiscretParams { get; set; }
|
||||||
|
public DiscretMatrix[] Discrets { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DiscretGetiscretsApi
|
||||||
|
{
|
||||||
|
public DateTime Start { get; set; }
|
||||||
|
public DateTime End { get; set; }
|
||||||
|
public int Vdp { get; set; }
|
||||||
|
}
|
||||||
|
public class DiscretGetDscretsClient
|
||||||
|
{
|
||||||
|
public StateStruct[] StateParams { get; set; }
|
||||||
|
public DiscretParams[] DiscretParams { get; set; }
|
||||||
|
public Discret[] Discrets { get; set; }
|
||||||
|
}
|
||||||
|
}
|
55
ApiServer/ApiStruct/Params.cs
Normal file
55
ApiServer/ApiStruct/Params.cs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Structures;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
|
||||||
|
namespace ApiServer.ApiStruct
|
||||||
|
{
|
||||||
|
public class ParamsGetAnalogApi
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class ParamsGetAnalogClient
|
||||||
|
{
|
||||||
|
public AnalogParams[] Analog_params { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ParamsGetMetricClient
|
||||||
|
{
|
||||||
|
public Metric[] Metrics { get; set; }
|
||||||
|
}
|
||||||
|
public class ParamsGetTechCycleNameClient
|
||||||
|
{
|
||||||
|
public TechCycleName[] Name { get; set; }
|
||||||
|
}
|
||||||
|
public class ParamsGetTechCycleColorClient
|
||||||
|
{
|
||||||
|
public TechCycleColor[] Color { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ParamsGetStateStructClient
|
||||||
|
{
|
||||||
|
public StateStruct[] StateStruct { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ParamsGetProtectStateApi
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class ParamsGetProtectStateClient
|
||||||
|
{
|
||||||
|
public ProtectState[] ProtectState { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ParamsGetDiscretApi
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class ParamsGetDiscretClient
|
||||||
|
{
|
||||||
|
public DiscretParams[] Discret_params { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
81
ApiServer/ApiStruct/Pasport.cs
Normal file
81
ApiServer/ApiStruct/Pasport.cs
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using DataClient.Struct;
|
||||||
|
|
||||||
|
namespace ApiServer.ApiStruct
|
||||||
|
{
|
||||||
|
public class PasportCheckApi
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public DateTime DateAndTime { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportCheckClient
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public bool Exist { get; set; }
|
||||||
|
public ulong PaspSum { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportCreateApi
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
public Pasport Pasp { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportCreateClient
|
||||||
|
{
|
||||||
|
public bool Status { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportGetListApi
|
||||||
|
{
|
||||||
|
public DateTime Date { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportGetListClient
|
||||||
|
{
|
||||||
|
public string[] Name { get; set; }
|
||||||
|
public string[] Time { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportGetPasportApi
|
||||||
|
{
|
||||||
|
public DateTime Date { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class PasportGetPasportClient
|
||||||
|
{
|
||||||
|
public bool HasData { get; set; }
|
||||||
|
public byte? NumVDP { get; set; }
|
||||||
|
public string DStart { get; set; }
|
||||||
|
public string DEnd { get; set; }
|
||||||
|
|
||||||
|
public bool HasPasport { get; set; }
|
||||||
|
public int Kod_npl { get; set; }
|
||||||
|
public string Nplav { get; set; }
|
||||||
|
public string Rm { get; set; }
|
||||||
|
public string Splav { get; set; }
|
||||||
|
public string IS { get; set; }
|
||||||
|
public ushort Notd { get; set; }
|
||||||
|
public ushort Vessl { get; set; }
|
||||||
|
public ushort Diam { get; set; }
|
||||||
|
public ushort Prpl { get; set; }
|
||||||
|
public string Tin { get; set; }
|
||||||
|
public string Dzap { get; set; }
|
||||||
|
public short Dlog { get; set; }
|
||||||
|
public short Last { get; set; }
|
||||||
|
public short Dlper { get; set; }
|
||||||
|
public string Nazn { get; set; }
|
||||||
|
public ushort Kompl { get; set; }
|
||||||
|
public ushort Izl { get; set; }
|
||||||
|
public float Robm { get; set; }
|
||||||
|
public float Rizol { get; set; }
|
||||||
|
public ushort Dkr { get; set; }
|
||||||
|
public string Nkon { get; set; }
|
||||||
|
public string Pos { get; set; }
|
||||||
|
public string Ukaz { get; set; }
|
||||||
|
public string Zakaz { get; set; }
|
||||||
|
public string Kat { get; set; }
|
||||||
|
public string Pril { get; set; }
|
||||||
|
public string Rezerved { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
56
ApiServer/Config/Analog/all.json
Normal file
56
ApiServer/Config/Analog/all.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": { "parent": [ "default" ] },
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": { "parent": [ "default" ] },
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
380
ApiServer/Config/Analog/default.json
Normal file
380
ApiServer/Config/Analog/default.json
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Ток дуги",
|
||||||
|
"s_name": "I д",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 0, 1 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Напряжение дуги",
|
||||||
|
"s_name": "U д",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 2, 3 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Ток рабочего двигателя",
|
||||||
|
"s_name": "I рд",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 4, 5 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "U рабочего двигателя",
|
||||||
|
"s_name": "U рд",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 6, 7 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Ток соленоида",
|
||||||
|
"s_name": "I сол",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 8, 9 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "U соленоида",
|
||||||
|
"s_name": "U сол",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 10, 11 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Ток задания",
|
||||||
|
"s_name": "I рз",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 12, 13 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "t кристаллизатора на входе",
|
||||||
|
"s_name": "t кр.вых",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 14, 15 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "t кристаллизатора на выходе",
|
||||||
|
"s_name": "t кр.вх",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 16, 17 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "t вакуум-камеры",
|
||||||
|
"s_name": "t вак-кам",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 18, 19 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "t штока",
|
||||||
|
"s_name": "t шт",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 20, 21 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "U контроля",
|
||||||
|
"s_name": "U конт",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 22, 23 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Перемещение",
|
||||||
|
"s_name": "S шт",
|
||||||
|
"metric": "мм",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 24, 25 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Вакуум",
|
||||||
|
"s_name": "Вакуум",
|
||||||
|
"metric": "мкм.рт.ст",
|
||||||
|
"mul": 1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 26, 27 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Изоляция шток-крышка",
|
||||||
|
"s_name": "R шт-кр",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 28, 29 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Изоляция крышка-камера",
|
||||||
|
"s_name": "R кр-кам",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 30, 31 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Расход воды",
|
||||||
|
"s_name": "Q в.кр",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 32, 33 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Капельные замыкания",
|
||||||
|
"s_name": "Кап.зам.",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 34, 35 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Усреднённая ширина импульсов КЗ",
|
||||||
|
"s_name": "Кап.зым.",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 36, 37 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"name": "Проток воды фланца",
|
||||||
|
"s_name": "Qв. фл.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 38, 39 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "Проток воды штока",
|
||||||
|
"s_name": "Qв. шт.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 40, 41 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "Давление воды крист.+1,5",
|
||||||
|
"s_name": "P в.кр",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 42, 43 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "Проток воды камеры",
|
||||||
|
"s_name": "Qв. кам.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 44, 45 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"name": "Ток задания источника(САУ)",
|
||||||
|
"s_name": "I з.ист САУ",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 58, 59 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "",
|
||||||
|
"s_name": "",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 60, 61 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "ПИД-рег. основная уставка",
|
||||||
|
"s_name": "ПИД-осн",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 62, 63 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "ПИД-рег. макс. скорость",
|
||||||
|
"s_name": "ПИД-макс",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 64, 65 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"name": "t фланца вакуум-камеры",
|
||||||
|
"s_name": "t фл.",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 66, 67 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "t подставки",
|
||||||
|
"s_name": "t под.",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 68, 69 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Проток воды подставки",
|
||||||
|
"s_name": "Qв. под.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 70, 71 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Задание соленоида",
|
||||||
|
"s_name": "Зад. сол.",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 72, 73 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"name": "Ток задания источника(преобраз.)",
|
||||||
|
"s_name": "I з.ист. преоб.",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 74, 75 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"name": "Резерв",
|
||||||
|
"s_name": "",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 76, 77 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Вакуум по МЕТРАН-1200",
|
||||||
|
"s_name": "МЕТРАН-1200",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 78, 79 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"name": "Вакуум по МЕТРАН-18,75",
|
||||||
|
"s_name": "МЕТРАН-18,25",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.001,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 80, 81 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"name": "Давление газа в баллоне",
|
||||||
|
"s_name": "P г.балл.",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 82, 83 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Давление воды поддона",
|
||||||
|
"s_name": "P в.подд.",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 84, 85 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Задание тока дуги (ЦАП)",
|
||||||
|
"s_name": "Зад.I, ЦАП",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 86, 87 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Задкние скорости рабочего двигателя",
|
||||||
|
"s_name": "Зад.ск.раб.дв",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 88, 89 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Ток двигателя насоса ARPW",
|
||||||
|
"s_name": "I дв. ARPW",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 90, 91 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Энергия плавильного пролёта",
|
||||||
|
"s_name": "Эн.пролёта, МВт",
|
||||||
|
"metric": "МВт",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 92, 93 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Среднее напряжение плавления",
|
||||||
|
"s_name": "U средн, В",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 94, 95 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 42,
|
||||||
|
"name": "ГМП: ток катушки 1",
|
||||||
|
"s_name": "I кат1 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 96, 97 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "ГМП: ток катушки 2",
|
||||||
|
"s_name": "I кат2 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 98, 99 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "ГМП: ток катушки 3",
|
||||||
|
"s_name": "I кат3 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 100, 101 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "ГМП: частота",
|
||||||
|
"s_name": "Част. ГМП",
|
||||||
|
"metric": "Гц",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 102, 103 ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
110
ApiServer/Config/Analog/global.json
Normal file
110
ApiServer/Config/Analog/global.json
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{
|
||||||
|
"00": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Общий: t воды водооборота",
|
||||||
|
"s_name": "t в",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Общий: Давление воды водооборота",
|
||||||
|
"s_name": "P в",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Общий: Давление масла в бутыли",
|
||||||
|
"s_name": "P масла бут",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Общий: t воздуха в машинном зале",
|
||||||
|
"s_name": "t машзал",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Общий: t воздуха на улице",
|
||||||
|
"s_name": "t улица",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Общий: Атмосферное давление",
|
||||||
|
"s_name": "p атм",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Общий: Давление масла в магистрали",
|
||||||
|
"s_name": "P масла маг",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Общий: Давление воды водооборота-К90",
|
||||||
|
"s_name": "P в-90",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Скорость штока за 1 мин",
|
||||||
|
"s_name": "V шт",
|
||||||
|
"metric": "мм/мин",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Вакуум по МЕТРАН 1,2",
|
||||||
|
"s_name": "МЕТРАН1,2",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.001,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "ВС: Ток дуги",
|
||||||
|
"s_name": "ВС:I д",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "ВС: Напряжение дуги",
|
||||||
|
"s_name": "ВС:U д",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "ВС: Ток задания",
|
||||||
|
"s_name": "ВС:I рз",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
3
ApiServer/Config/Colors.json
Normal file
3
ApiServer/Config/Colors.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"red" : "#ff0000"
|
||||||
|
}
|
87
ApiServer/Config/Discret/all.json
Normal file
87
ApiServer/Config/Discret/all.json
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Âîäà êàìåðû (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Âîäà øòîêà (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
823
ApiServer/Config/Discret/default.json
Normal file
823
ApiServer/Config/Discret/default.json
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Дискрет №0",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "P1 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "P2 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Вода камеры",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Вода штока",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Дверь - А",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Дверь - Б",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Дверь - В",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Дверь - Г",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Дверь - Д",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Люк",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "Пенал",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Упоры",
|
||||||
|
"state_struct": "out_in_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Прижимы",
|
||||||
|
"state_struct": "spinn_clamp_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумный выключатель",
|
||||||
|
"state_struct": "none_on_off_err_3_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "\"Автоматика\"",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "БПС",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Соленоид",
|
||||||
|
"state_struct": "none_err_const_puls_1_2",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "ARPW",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "ДВН",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "SZO",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "ДУ-260",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "ДУ-100",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "ДУ-32",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Шток вверху",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Шток внизу",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Плохой вакуум",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Напряжение аварийной сигнализации",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Взрывной клапан",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Ключ УП в положении \"Автоматика\"",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "off_on_err",
|
||||||
|
"state_struct": "Реле \"Авария источника\"",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Сброс звуковой сигнализации",
|
||||||
|
"state_struct": "spinn_press",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Вакуум по ЭКМВ",
|
||||||
|
"state_struct": "have_no_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 42,
|
||||||
|
"name": "Реле \"Имитация тока дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Реле \"АУ током дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Реле \"Имитация напряжения дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Реле \"Имитация вакуума печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "Реле \"Имитация T воды кристаллизатора\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 47,
|
||||||
|
"name": "Реле \"Имитация T воды вакуумкамеры\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Реле \"Имитация T воды штока\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "Реле 1 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Реле 2 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Реле 3 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Реле 4 \"Контроль метрологии\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Реле 5 \"Измерение изоляции (соленоид)\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Реле \"АУ штоком\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Реле \"Включение Uкалибровки\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Реле \"Движение штока вверх\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "УП в положении КЗ",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Нет питания, включено \"резервное\" UPS",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Вода подставки",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Реле \"Разрешение на вакуумирование печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Низкий заряд аккумулятора UPS",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Источник: +24В",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Реле \"Движение штока вниз\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Проверка источника",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Станция",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Постоянное U=220В",
|
||||||
|
"state_struct": "no_have",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Источник готов",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Авария привода",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Реле \"Напуск газа в печь\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Реле \"АУ током дуги ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Готовность привода",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 78,
|
||||||
|
"name": "Реле \"Авария источника ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 79,
|
||||||
|
"name": "Клапан подачи аргона",
|
||||||
|
"state_struct": "close_open_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 95,
|
||||||
|
"name": "Разрешение на вкл. вакуумного выключателя",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 57,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
127
ApiServer/Config/Discret/power_new.json
Normal file
127
ApiServer/Config/Discret/power_new.json
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"power_new": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Àâàðèéíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Ñòàíöèÿ âêëþ÷åíà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Ïðîáîé òèðèñòîðà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "Ìàêñ. òîê âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Ïåðåãðóçêà âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Ðåëå ìàêñèìàëüíîãî òîêà",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 72,
|
||||||
|
"name": "Íåèñïðàâíîñòü ÓÇÏ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 73,
|
||||||
|
"name": "Íåèñïðàâíîñòü èñòî÷íèêà ïèòàíèÿ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Ãîòîâíîñòü èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Ïåðåãðåâ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 77,
|
||||||
|
"name": "Ïðåäóïðåäèòåëüíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
13
ApiServer/Config/Metrics.json
Normal file
13
ApiServer/Config/Metrics.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"кА": false,
|
||||||
|
"В": false,
|
||||||
|
"А": false,
|
||||||
|
"гр.С": false,
|
||||||
|
"мм": false,
|
||||||
|
"мкм.рт.ст": true,
|
||||||
|
"м^3/ч": false,
|
||||||
|
"кгс/см^2": false,
|
||||||
|
"мм.рт.ст": true,
|
||||||
|
"МВт": false,
|
||||||
|
"Гц": true
|
||||||
|
}
|
56
ApiServer/Config/Protect/all.json
Normal file
56
ApiServer/Config/Protect/all.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": { "parent": [ "default" ] },
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": { "parent": [ "default" ] },
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
356
ApiServer/Config/Protect/default.json
Normal file
356
ApiServer/Config/Protect/default.json
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Alarm ! Zero signal !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":1,
|
||||||
|
"name": "Шток внизу !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":2,
|
||||||
|
"name": "Шток вверху !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Uдуги > Uмакс !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Uдуги < Uмин !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Qводы кристаллизатора !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "P2 воды кристаллизатора ЭКМ отметка -5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Вода штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":10,
|
||||||
|
"name": "tводы штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":11,
|
||||||
|
"name": "Вода вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":12,
|
||||||
|
"name": "tводы вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":13,
|
||||||
|
"name": "Ухудшение вакуума !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Нет готовности к токовой операции!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Дверь А открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Дверь Б открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Дверь В открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Дверь Г открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"name": "Дверь Д открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "Прижимы !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "Упоры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "Люк открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"name": "Пенал открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "Вода подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Нет U аварийной сигнализации !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "Плохой вакуум !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"name": "tводы подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "Давление газа в печи выше атмосферного !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Вода фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Отключение ВВ!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"name": "tводы фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"name": "P воды поддона !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Отсутствует связь с сервером 1 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"name": "Отсутствует связь с сервером 2 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"name": "Отсутствует связь с контроллером ГМП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Неисправность в работе ARPW !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Неисправность в работе ДВН !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Неисправность в работе ВВ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Неисправность в работе ДУ-260 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Неисправность в работе ДУ-100 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Неисправность в работе ДУ-32 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Неисправность в работе БПС !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Неисправность в режиме работы соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Нет питания сети !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Нет сигнала датчика (МЕТРАН отм.+1.5м) !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "БПС ГМП отключен!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Неисправность источника питания ВДП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Нет принимаемых данных !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Разрыв дуги !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Нет готовности привода!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Alarm ! Signal A1_22 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Короткое замыкание !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Переключатель УП не в положении АВТ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "Проверить перевод разьединителей печей!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Снижение протока воды штока!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Снижение протока воды камеры!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Снижение протока воды фланца!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Запрет зажигания дуги по времени вакуумирования!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "Отсутствует ток соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Отсутствует перемещение штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Отсутствует перемещение штока > 15 минут!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Запрет на включение вакуумных насосов !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "ВДП развакуумирована !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Смещение начала архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Смещение конца архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Alarm ! Signal A1_43 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Alarm ! Signal A1_44 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
265
ApiServer/Config/StateStruct.json
Normal file
265
ApiServer/Config/StateStruct.json
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
{
|
||||||
|
"protect_1": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отсутствует",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Сработало",
|
||||||
|
"color": "#ffff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Сброс тока",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"have_no_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"open_close_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"close_open_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"out_in_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Не введ",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Введ",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_clamp_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Приж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_press": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Наж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_3_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_err_const_puls_1_2": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Пост",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Пульс",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_open_close_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
94
ApiServer/Config/TechCycle.json
Normal file
94
ApiServer/Config/TechCycle.json
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"tech_cycle_conf": [
|
||||||
|
{
|
||||||
|
"index": -1,
|
||||||
|
"name": "Конец технологического цикла (ручной)",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Конец технологического цикла",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Выгрузка-загрузка",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Вакуумирование на приварку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Приварка",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Охлаждение приварки",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Осмотр приварки",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Вакуумирование на плавку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Разведение ванны",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Плавка (основной режим)",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "ВУР",
|
||||||
|
"color": "#ff00ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Охлаждение слитка",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Выгрузка комплекта",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумирование на оплавление",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Оплавление",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Охлаждение оплавыша",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Слив металла",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Проверка защит",
|
||||||
|
"color": "#00ffff"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
86
ApiServer/Controllers/DataController.cs
Normal file
86
ApiServer/Controllers/DataController.cs
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NLog;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.ApiStruct;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace ApiServer.Controllers
|
||||||
|
{
|
||||||
|
[ApiController, Route("[controller]")]
|
||||||
|
public class DataController : ControllerBase
|
||||||
|
{
|
||||||
|
private Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
[HttpPost, Route("check")]
|
||||||
|
public DataCheckClient Check([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DataCheckApi>(value.ToString());
|
||||||
|
if (!getResult.Status || string.IsNullOrEmpty(getResult.Name))
|
||||||
|
{
|
||||||
|
log.Warn("Wrong answer.");
|
||||||
|
return new DataCheckClient();
|
||||||
|
}
|
||||||
|
var dataDir = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data", "data",
|
||||||
|
getResult.DateAndTime.Year.ToString("D4"),
|
||||||
|
getResult.DateAndTime.Month.ToString("D2"),
|
||||||
|
getResult.DateAndTime.Day.ToString("D2"),
|
||||||
|
getResult.Name);
|
||||||
|
log.Info("Search data: " + dataDir);
|
||||||
|
if (!System.IO.File.Exists(dataDir))
|
||||||
|
{
|
||||||
|
log.Info("Data not exist: " + dataDir);
|
||||||
|
return new DataCheckClient { Status = true, Exist = false, DataSize = 0 };
|
||||||
|
}
|
||||||
|
var dataArr = System.IO.File.ReadAllBytes(dataDir);
|
||||||
|
log.Info("Send data size: " + dataArr.Length + " | " + dataDir);
|
||||||
|
return new DataCheckClient { Status = true, Exist = true, DataSize = (ulong)dataArr.Length };
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DataCheckClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[DisableRequestSizeLimit]
|
||||||
|
[HttpPost, Route("create")]
|
||||||
|
public DataCreateClient Create([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DataCreateApi>(value.ToString());
|
||||||
|
if (!getResult.Status ||
|
||||||
|
string.IsNullOrEmpty(getResult.Name) ||
|
||||||
|
getResult.Struct.Length == 0)
|
||||||
|
{
|
||||||
|
log.Warn("Wrong answer.");
|
||||||
|
return new DataCreateClient();
|
||||||
|
}
|
||||||
|
var dataDir = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data", "data",
|
||||||
|
getResult.DateAndTime.Year.ToString("D4"),
|
||||||
|
getResult.DateAndTime.Month.ToString("D2"),
|
||||||
|
getResult.DateAndTime.Day.ToString("D2"));
|
||||||
|
if (!Directory.Exists(dataDir))
|
||||||
|
Directory.CreateDirectory(dataDir);
|
||||||
|
dataDir = Path.Combine(dataDir, getResult.Name);
|
||||||
|
System.IO.File.WriteAllBytes(dataDir, getResult.Struct);
|
||||||
|
log.Info("Save data: " + dataDir);
|
||||||
|
return new DataCreateClient { Status = true };
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DataCreateClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
324
ApiServer/Controllers/DateController.cs
Normal file
324
ApiServer/Controllers/DateController.cs
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using NLog;
|
||||||
|
using DataClient.Struct;
|
||||||
|
using System.IO;
|
||||||
|
using ApiServer.ApiStruct;
|
||||||
|
|
||||||
|
namespace ApiServer.Controllers
|
||||||
|
{
|
||||||
|
[ApiController, Route("[controller]")]
|
||||||
|
public class DateController : ControllerBase
|
||||||
|
{
|
||||||
|
private Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
[HttpPost, Route("getanalog")]
|
||||||
|
public DateGetAnalogClient GetAnalog([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DateGetAnalogApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask analog: vdp-" +
|
||||||
|
getResult.Vdp.ToString() + " index-" +
|
||||||
|
getResult.Index.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_analogs = new Dictionary<int, List<Structures.Analog>>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
var sub_res = new List<Structures.Analog>();
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var analogs = WorkWithFiles.GetAnalogs(flagDate, getResult.Vdp);
|
||||||
|
foreach (var analog_arr in analogs)
|
||||||
|
{
|
||||||
|
if (analog_arr.Index != getResult.Index)
|
||||||
|
continue;
|
||||||
|
Structures.Analog first_analog = null;
|
||||||
|
for (var i = 0; i < analog_arr.Analogs.Length; i++)
|
||||||
|
{
|
||||||
|
if (analog_arr.Analogs[i].start < getResult.Start)
|
||||||
|
{
|
||||||
|
first_analog = analog_arr.Analogs[i];
|
||||||
|
first_analog.start = getResult.Start;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (analog_arr.Analogs[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
if (sub_res.Count == 0 && first_analog != null)
|
||||||
|
sub_res.Add(first_analog);
|
||||||
|
sub_res.Add(analog_arr.Analogs[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DateGetAnalogClient()
|
||||||
|
{
|
||||||
|
Analog = sub_res.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
throw;
|
||||||
|
//return new DateGetAnalogClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getanalogs")]
|
||||||
|
public DateGetAnalogsClient GetAnalogs([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DateGetAnalogsApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask analog: vdp-" +
|
||||||
|
getResult.Vdp.ToString() + " index-" +
|
||||||
|
getResult.Index.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_analogs = new Dictionary<int, List<Structures.Analog>>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
var sub_res = new Dictionary<int, List<Structures.Analog>>();
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var analogs = WorkWithFiles.GetAnalogs(flagDate, getResult.Vdp);
|
||||||
|
foreach (var analog_arr in analogs)
|
||||||
|
{
|
||||||
|
if (!getResult.Index.Contains(analog_arr.Index))
|
||||||
|
continue;
|
||||||
|
if (!sub_res.ContainsKey(analog_arr.Index))
|
||||||
|
sub_res.Add(analog_arr.Index, new List<Structures.Analog>());
|
||||||
|
Structures.Analog first_analog = null;
|
||||||
|
for (var i = 0; i < analog_arr.Analogs.Length; i++)
|
||||||
|
{
|
||||||
|
if (analog_arr.Analogs[i].start < getResult.Start)
|
||||||
|
{
|
||||||
|
first_analog = analog_arr.Analogs[i];
|
||||||
|
first_analog.start = getResult.Start;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (analog_arr.Analogs[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
if (sub_res[analog_arr.Index].Count == 0 && first_analog != null)
|
||||||
|
sub_res[analog_arr.Index].Add(first_analog);
|
||||||
|
sub_res[analog_arr.Index].Add(analog_arr.Analogs[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
var result = new List<Structures.AnalogArr>();
|
||||||
|
foreach (var d in sub_res)
|
||||||
|
result.Add(new Structures.AnalogArr() {
|
||||||
|
Index = d.Key,
|
||||||
|
Analogs = d.Value.ToArray()
|
||||||
|
});
|
||||||
|
return new DateGetAnalogsClient()
|
||||||
|
{
|
||||||
|
Analogs = result.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DateGetAnalogsClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("gettechcycle")]
|
||||||
|
public DateGetTechCycleClient GetTechCycle([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DateGetTechCycleApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask tech cycle: " +
|
||||||
|
getResult.Vdp.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
var list_tech_cycles = new List<Structures.TechCycle>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var lines = WorkWithFiles.GetFile(
|
||||||
|
flagDate.Year.ToString("D4") +
|
||||||
|
flagDate.Month.ToString("D2") +
|
||||||
|
flagDate.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
getResult.Vdp.ToString("D2") +
|
||||||
|
"3"
|
||||||
|
);
|
||||||
|
Structures.TechCycle first_tech_cycle = null;
|
||||||
|
for (var i = 0; i < lines.Length; i++)
|
||||||
|
{
|
||||||
|
var tc = new Structures.TechCycle(flagDate, lines[i]);
|
||||||
|
if (tc.start < getResult.Start)
|
||||||
|
{
|
||||||
|
first_tech_cycle = tc;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (tc.start > getResult.End)
|
||||||
|
continue;
|
||||||
|
if (list_tech_cycles.Count == 0 && first_tech_cycle != null)
|
||||||
|
{
|
||||||
|
first_tech_cycle.start = getResult.Start;
|
||||||
|
list_tech_cycles.Add(first_tech_cycle);
|
||||||
|
}
|
||||||
|
list_tech_cycles.Add(tc);
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return new DateGetTechCycleClient()
|
||||||
|
{
|
||||||
|
TechCycle = list_tech_cycles.ToArray(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DateGetTechCycleClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getprotect")]
|
||||||
|
public DateGetProtectClient GetProtect([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DateGetProtectApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask protects: " +
|
||||||
|
getResult.Vdp.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_protects = new List<Structures.Protect>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var protects = WorkWithFiles.GetProtects(flagDate, getResult.Vdp);
|
||||||
|
for (var i = 0; i < protects.Length; i++)
|
||||||
|
{
|
||||||
|
if (protects[i].start < getResult.Start)
|
||||||
|
continue;
|
||||||
|
if (protects[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
list_protects.Add(protects[i]);
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return new DateGetProtectClient()
|
||||||
|
{
|
||||||
|
Protect = list_protects.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DateGetProtectClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getdiscret")]
|
||||||
|
public DateGetDiscretClient GetDiscret([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DateGetDiscretApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask discrets: " +
|
||||||
|
getResult.Vdp.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_discrets = new List<Structures.Discret>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var discrets = WorkWithFiles.GetDiscrets(flagDate, getResult.Vdp);
|
||||||
|
var first_discrets = new Dictionary<int, Structures.Discret>();
|
||||||
|
for (var i = 0; i < discrets.Length; i++)
|
||||||
|
{
|
||||||
|
if (discrets[i].start < getResult.Start)
|
||||||
|
{
|
||||||
|
if (first_discrets.ContainsKey(discrets[i].Index))
|
||||||
|
first_discrets[discrets[i].Index] = discrets[i];
|
||||||
|
else
|
||||||
|
first_discrets.Add(discrets[i].Index, discrets[i]);
|
||||||
|
first_discrets[discrets[i].Index].start = getResult.Start;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (discrets[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
var last_id = list_discrets.FindLastIndex(x => x.Index == discrets[i].Index);
|
||||||
|
if (first_discrets.ContainsKey(discrets[i].Index) &&
|
||||||
|
last_id == -1 &&
|
||||||
|
discrets[i].start != getResult.Start)
|
||||||
|
{
|
||||||
|
list_discrets.Add(first_discrets[discrets[i].Index]);
|
||||||
|
first_discrets.Remove(discrets[i].Index);
|
||||||
|
}
|
||||||
|
if (last_id != -1 &&
|
||||||
|
list_discrets[last_id].State == discrets[i].State)
|
||||||
|
continue;
|
||||||
|
list_discrets.Add(discrets[i]);
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DateGetDiscretClient()
|
||||||
|
{
|
||||||
|
Discret = list_discrets.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DateGetDiscretClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
138
ApiServer/Controllers/DiscretController.cs
Normal file
138
ApiServer/Controllers/DiscretController.cs
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using NLog;
|
||||||
|
using DataClient.Struct;
|
||||||
|
using System.IO;
|
||||||
|
using ApiServer.ApiStruct;
|
||||||
|
|
||||||
|
namespace ApiServer.Controllers
|
||||||
|
{
|
||||||
|
[ApiController, Route("[controller]")]
|
||||||
|
public class DiscretController : ControllerBase
|
||||||
|
{
|
||||||
|
private Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
[HttpPost, Route("getdiscrets")]
|
||||||
|
public DiscretGetDscretsClient GetDiscrets([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DiscretGetiscretsApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask discrets: " +
|
||||||
|
getResult.Vdp.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " "+
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_discrets = new List<Structures.Discret>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0,0,0
|
||||||
|
);
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var discrets = WorkWithFiles.GetDiscrets(flagDate, getResult.Vdp);
|
||||||
|
var first_discrets = new Dictionary<int, Structures.Discret>();
|
||||||
|
for (var i = 0; i < discrets.Length; i++)
|
||||||
|
{
|
||||||
|
if (discrets[i].start < getResult.Start)
|
||||||
|
{
|
||||||
|
if (first_discrets.ContainsKey(discrets[i].Index))
|
||||||
|
first_discrets[discrets[i].Index] = discrets[i];
|
||||||
|
else
|
||||||
|
first_discrets.Add(discrets[i].Index, discrets[i]);
|
||||||
|
first_discrets[discrets[i].Index].start = getResult.Start;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (discrets[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
var last_id = list_discrets.FindLastIndex(x => x.Index == discrets[i].Index);
|
||||||
|
if (first_discrets.ContainsKey(discrets[i].Index) &&
|
||||||
|
last_id == -1 &&
|
||||||
|
discrets[i].start != getResult.Start)
|
||||||
|
{
|
||||||
|
list_discrets.Add(first_discrets[discrets[i].Index]);
|
||||||
|
first_discrets.Remove(discrets[i].Index);
|
||||||
|
}
|
||||||
|
if (last_id != -1 &&
|
||||||
|
list_discrets[last_id].State == discrets[i].State)
|
||||||
|
continue;
|
||||||
|
list_discrets.Add(discrets[i]);
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DiscretGetDscretsClient()
|
||||||
|
{
|
||||||
|
StateParams = Configuration.GetStateStructArray(),
|
||||||
|
DiscretParams = Configuration.GetDiscretParams(getResult.Vdp.ToString("D2")),
|
||||||
|
Discrets = list_discrets.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DiscretGetDscretsClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getdiscretsmatrix")]
|
||||||
|
public DiscretGetDscretsMatrixClient GetDiscretsMatrix([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<DiscretGetiscretsApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask discrets: " +
|
||||||
|
getResult.Vdp.ToString() + " " +
|
||||||
|
getResult.Start.ToString("yyyy-MM-dd HH:mm:ss") + " " +
|
||||||
|
getResult.End.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
|
||||||
|
var list_discrets = new List<Structures.DiscretMatrix>();
|
||||||
|
var flagDate = new DateTime(
|
||||||
|
getResult.Start.Year,
|
||||||
|
getResult.Start.Month,
|
||||||
|
getResult.Start.Day,
|
||||||
|
0, 0, 0
|
||||||
|
);
|
||||||
|
while (flagDate <= getResult.End)
|
||||||
|
{
|
||||||
|
var discrets = WorkWithFiles.GetDiscretsMatrix(flagDate, getResult.Vdp);
|
||||||
|
for (var i = 0; i < discrets.Length; i++)
|
||||||
|
{
|
||||||
|
if (discrets[i].start < getResult.Start)
|
||||||
|
continue;
|
||||||
|
if (discrets[i].start > getResult.End)
|
||||||
|
continue;
|
||||||
|
list_discrets.Add(discrets[i]);
|
||||||
|
}
|
||||||
|
flagDate = flagDate.AddDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info("Send discret");
|
||||||
|
return new DiscretGetDscretsMatrixClient()
|
||||||
|
{
|
||||||
|
StateParams = Configuration.GetStateStructArray(),
|
||||||
|
DiscretParams = Configuration.GetDiscretParams(getResult.Vdp.ToString("D2")),
|
||||||
|
Discrets = list_discrets.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new DiscretGetDscretsMatrixClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
158
ApiServer/Controllers/ParamsController.cs
Normal file
158
ApiServer/Controllers/ParamsController.cs
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using NLog;
|
||||||
|
using DataClient.Struct;
|
||||||
|
using System.IO;
|
||||||
|
using ApiServer.ApiStruct;
|
||||||
|
|
||||||
|
namespace ApiServer.Controllers
|
||||||
|
{
|
||||||
|
[ApiController, Route("[controller]")]
|
||||||
|
public class ParamsController : ControllerBase
|
||||||
|
{
|
||||||
|
private Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
[HttpPost, Route("getanalogs")]
|
||||||
|
public ParamsGetAnalogClient GetAnalogs([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<ParamsGetAnalogApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask analog params for \"" + getResult.Name + "\"");
|
||||||
|
return new ParamsGetAnalogClient()
|
||||||
|
{
|
||||||
|
Analog_params = Configuration.GetAnalogParams(getResult.Name)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Error(e);
|
||||||
|
return new ParamsGetAnalogClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getmetrics")]
|
||||||
|
public ParamsGetMetricClient GetMetrics([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.Info("Ask metrics");
|
||||||
|
return new ParamsGetMetricClient()
|
||||||
|
{
|
||||||
|
Metrics = Configuration.GetMetricsArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Error(e);
|
||||||
|
return new ParamsGetMetricClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("gettechcyclename")]
|
||||||
|
public ParamsGetTechCycleNameClient GetTechCycleName([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.Info("Ask tech cycle name");
|
||||||
|
return new ParamsGetTechCycleNameClient()
|
||||||
|
{
|
||||||
|
Name = Configuration.GetTechCycleNames()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new ParamsGetTechCycleNameClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("gettechcyclecolor")]
|
||||||
|
public ParamsGetTechCycleColorClient GetTechCycleColor([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.Info("Ask tech cycle color");
|
||||||
|
return new ParamsGetTechCycleColorClient()
|
||||||
|
{
|
||||||
|
Color = Configuration.GetTechCycleColor()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new ParamsGetTechCycleColorClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getstatestruct")]
|
||||||
|
public ParamsGetStateStructClient GetStateStruct([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.Info("Ask state struct");
|
||||||
|
return new ParamsGetStateStructClient()
|
||||||
|
{
|
||||||
|
StateStruct = Configuration.GetStateStructArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new ParamsGetStateStructClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getprotectstate")]
|
||||||
|
public ParamsGetProtectStateClient GetProtectState([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<ParamsGetProtectStateApi>(
|
||||||
|
value.ToString());
|
||||||
|
|
||||||
|
log.Info("Ask protect state for vdp: " + getResult.Name);
|
||||||
|
return new ParamsGetProtectStateClient()
|
||||||
|
{
|
||||||
|
ProtectState = Configuration.GetProtectState(getResult.Name)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new ParamsGetProtectStateClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getdiscret")]
|
||||||
|
public ParamsGetDiscretClient GetDiscrets([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<ParamsGetDiscretApi>(
|
||||||
|
value.ToString());
|
||||||
|
log.Info("Ask discret params for \"" + getResult.Name + "\"");
|
||||||
|
return new ParamsGetDiscretClient()
|
||||||
|
{
|
||||||
|
Discret_params = Configuration.GetDiscretParams(getResult.Name)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Error(e);
|
||||||
|
return new ParamsGetDiscretClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
228
ApiServer/Controllers/PasportController.cs
Normal file
228
ApiServer/Controllers/PasportController.cs
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Newtonsoft;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using NLog;
|
||||||
|
using DataClient.Struct;
|
||||||
|
using System.IO;
|
||||||
|
using ApiServer.ApiStruct;
|
||||||
|
|
||||||
|
namespace ApiServer.Controllers
|
||||||
|
{
|
||||||
|
[ApiController, Route("[controller]")]
|
||||||
|
public class PasportController : ControllerBase
|
||||||
|
{
|
||||||
|
private Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
[HttpPost, Route("check")]
|
||||||
|
public PasportCheckClient Check([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<PasportCheckApi>(value.ToString());
|
||||||
|
if (!getResult.Status || string.IsNullOrEmpty(getResult.Name))
|
||||||
|
{
|
||||||
|
log.Warn("Wrong answer.");
|
||||||
|
return new PasportCheckClient();
|
||||||
|
}
|
||||||
|
|
||||||
|
var paspName =
|
||||||
|
getResult.DateAndTime.Hour.ToString("D2") +
|
||||||
|
getResult.DateAndTime.Minute.ToString("D2") +
|
||||||
|
getResult.DateAndTime.Second.ToString("D2") +
|
||||||
|
"-" + getResult.Name;
|
||||||
|
var paspDir = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data", "pasport",
|
||||||
|
getResult.DateAndTime.Year.ToString("D4"),
|
||||||
|
getResult.DateAndTime.Month.ToString("D2"),
|
||||||
|
getResult.DateAndTime.Day.ToString("D2"),
|
||||||
|
paspName);
|
||||||
|
log.Info("Search pasport: " + paspDir);
|
||||||
|
if (!System.IO.File.Exists(paspDir))
|
||||||
|
{
|
||||||
|
log.Info("Psport not exist: " + paspDir);
|
||||||
|
return new PasportCheckClient { Status = true, Exist = false, PaspSum = 0 };
|
||||||
|
}
|
||||||
|
var pasport = System.IO.File.ReadAllBytes(paspDir);
|
||||||
|
ulong paspResult = 0;
|
||||||
|
foreach (var b in pasport)
|
||||||
|
paspResult += b;
|
||||||
|
log.Info("Send pasport size: " + paspResult + " | " + paspDir);
|
||||||
|
return new PasportCheckClient { Status = true, Exist = true, PaspSum = paspResult };
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new PasportCheckClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("create")]
|
||||||
|
public PasportCreateClient Create([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<PasportCreateApi>(value.ToString());
|
||||||
|
if (!getResult.Status ||
|
||||||
|
getResult.Pasp == null ||
|
||||||
|
!getResult.Pasp.HasData)
|
||||||
|
{
|
||||||
|
log.Warn("Wrong answer.");
|
||||||
|
return new PasportCreateClient();
|
||||||
|
}
|
||||||
|
var paspName =
|
||||||
|
getResult.Pasp.dEnd.Value.Hour.ToString("D2") +
|
||||||
|
getResult.Pasp.dEnd.Value.Minute.ToString("D2") +
|
||||||
|
getResult.Pasp.dEnd.Value.Second.ToString("D2") +
|
||||||
|
"-" + (string.IsNullOrEmpty(getResult.Pasp.nplav) ?
|
||||||
|
getResult.Pasp.numVDP.Value.ToString("D2") :
|
||||||
|
getResult.Pasp.nplav);
|
||||||
|
var dir = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data", "pasport",
|
||||||
|
getResult.Pasp.dEnd.Value.Year.ToString("D4"),
|
||||||
|
getResult.Pasp.dEnd.Value.Month.ToString("D2"),
|
||||||
|
getResult.Pasp.dEnd.Value.Day.ToString("D2"));
|
||||||
|
var paspDir = Path.Combine(dir, paspName);
|
||||||
|
if (!Directory.Exists(dir))
|
||||||
|
Directory.CreateDirectory(dir);
|
||||||
|
System.IO.File.WriteAllBytes(paspDir, getResult.Pasp.PaspByte);
|
||||||
|
log.Info("Save pasport: " + paspDir);
|
||||||
|
return new PasportCreateClient { Status = true };
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new PasportCreateClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getlist")]
|
||||||
|
public PasportGetListClient GetList([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var pasportNameList = new List<string>();
|
||||||
|
var pasportTimeList = new List<string>();
|
||||||
|
var getResult = JsonConvert.DeserializeObject<PasportGetListApi>(
|
||||||
|
value.ToString(),
|
||||||
|
new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd" });
|
||||||
|
log.Info("Ask pasport list: " + getResult.Date.ToString("yyyy-MM-dd"));
|
||||||
|
var pasportDir = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data",
|
||||||
|
"pasport",
|
||||||
|
getResult.Date.Year.ToString("D4"),
|
||||||
|
getResult.Date.Month.ToString("D2"),
|
||||||
|
getResult.Date.Day.ToString("D2")
|
||||||
|
);
|
||||||
|
if (!Directory.Exists(pasportDir))
|
||||||
|
throw new Exception("Directory not exist: " + pasportDir);
|
||||||
|
var allPasportFiles = Directory.GetFiles(pasportDir);
|
||||||
|
foreach (var fullPasportName in allPasportFiles)
|
||||||
|
{
|
||||||
|
var name = Path.GetFileNameWithoutExtension(fullPasportName);
|
||||||
|
var pasportParts = name.Split('-');
|
||||||
|
var pasport = "";
|
||||||
|
for (var i = 1; i < pasportParts.Length; i++)
|
||||||
|
{
|
||||||
|
if (pasport.Length != 0)
|
||||||
|
pasport += "-";
|
||||||
|
pasport += pasportParts[i];
|
||||||
|
}
|
||||||
|
pasportTimeList.Add(pasportParts[0]);
|
||||||
|
pasportNameList.Add(pasport);
|
||||||
|
}
|
||||||
|
log.Info("Send pasport list: " + pasportNameList);
|
||||||
|
return new PasportGetListClient()
|
||||||
|
{
|
||||||
|
Name = pasportNameList.ToArray(),
|
||||||
|
Time = pasportTimeList.ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new PasportGetListClient();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost, Route("getpasport")]
|
||||||
|
public PasportGetPasportClient GetPasport([FromBody] object value)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var getResult = JsonConvert.DeserializeObject<PasportGetPasportApi>(
|
||||||
|
value.ToString(),
|
||||||
|
new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd" });
|
||||||
|
log.Info("Ask pasport: " + getResult.Date.ToString("yyyy-MM-dd") + " " + getResult.Name);
|
||||||
|
var pasportFile = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data",
|
||||||
|
"pasport",
|
||||||
|
getResult.Date.Year.ToString("D4"),
|
||||||
|
getResult.Date.Month.ToString("D2"),
|
||||||
|
getResult.Date.Day.ToString("D2"),
|
||||||
|
getResult.Name
|
||||||
|
);
|
||||||
|
if (!System.IO.File.Exists(pasportFile))
|
||||||
|
throw new Exception("File not exist: " + pasportFile);
|
||||||
|
var pasport = new Pasport(System.IO.File.ReadAllBytes(pasportFile));
|
||||||
|
return new PasportGetPasportClient()
|
||||||
|
{
|
||||||
|
HasData = pasport.HasData,
|
||||||
|
NumVDP = pasport.numVDP,
|
||||||
|
DStart = pasport.dStart.HasValue ? pasport.dStart.Value.ToString("yyyy.MM.dd HH:mm:ss") : "",
|
||||||
|
DEnd = pasport.dEnd.HasValue ? pasport.dEnd.Value.ToString("yyyy.MM.dd HH:mm:ss") : "",
|
||||||
|
|
||||||
|
HasPasport = pasport.hasPasport,
|
||||||
|
Kod_npl = pasport.kod_npl,
|
||||||
|
Nplav = pasport.nplav,
|
||||||
|
Rm = pasport.rm,
|
||||||
|
Splav = pasport.splav,
|
||||||
|
IS = pasport.iS,
|
||||||
|
Notd = pasport.notd,
|
||||||
|
Vessl = pasport.vessl,
|
||||||
|
Diam = pasport.diam,
|
||||||
|
Prpl = pasport.prpl,
|
||||||
|
Tin = pasport.tin,
|
||||||
|
Dzap = pasport.dzap,
|
||||||
|
Dlog = pasport.dlog,
|
||||||
|
Last = pasport.last,
|
||||||
|
Dlper = pasport.dlper,
|
||||||
|
Nazn = pasport.nazn,
|
||||||
|
Kompl = pasport.kompl,
|
||||||
|
Izl = pasport.izl,
|
||||||
|
Robm = pasport.robm,
|
||||||
|
Rizol = pasport.rizol,
|
||||||
|
Dkr = pasport.dkr,
|
||||||
|
Nkon = pasport.nkon,
|
||||||
|
Pos = pasport.pos,
|
||||||
|
Ukaz = pasport.ukaz,
|
||||||
|
Zakaz = pasport.zakaz,
|
||||||
|
Kat = pasport.kat,
|
||||||
|
Pril = pasport.pril,
|
||||||
|
Rezerved = pasport.rezerved,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.Warn(e);
|
||||||
|
return new PasportGetPasportClient()
|
||||||
|
{
|
||||||
|
HasData = false,
|
||||||
|
HasPasport = false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
171
ApiServer/Diagrams/ClassDiagram1.cd
Normal file
171
ApiServer/Diagrams/ClassDiagram1.cd
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="FullSignature">
|
||||||
|
<Class Name="ApiServer.Controllers.DateController">
|
||||||
|
<Position X="0.5" Y="0.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAQAAAAAAAAAAABAAACCAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Controllers\DateController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogApi">
|
||||||
|
<Position X="0.5" Y="3.25" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogClient">
|
||||||
|
<Position X="0.5" Y="5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analog" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogsApi">
|
||||||
|
<Position X="0.5" Y="6" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogsClient">
|
||||||
|
<Position X="0.5" Y="7.75" Width="2.25" />
|
||||||
|
<AssociationLine Name="Analogs" Type="ApiServer.Structures.AnalogArr" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="2.75" Y="8.184" />
|
||||||
|
<Point X="5" Y="8.184" />
|
||||||
|
<Point X="5" Y="7.103" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analogs" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetTechCycleApi">
|
||||||
|
<Position X="5.5" Y="6" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetTechCycleClient">
|
||||||
|
<Position X="5.5" Y="7.75" Width="2.25" />
|
||||||
|
<AssociationLine Name="TechCycle" Type="ApiServer.Structures.TechCycle" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="7.75" Y="8.5" />
|
||||||
|
<Point X="10.5" Y="8.5" />
|
||||||
|
<Point X="10.5" Y="8.199" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="TechCycle" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetProtectApi">
|
||||||
|
<Position X="5.5" Y="3.25" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetProtectClient">
|
||||||
|
<Position X="5.5" Y="5" Width="2.25" />
|
||||||
|
<AssociationLine Name="Protect" Type="ApiServer.Structures.Protect" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="7.75" Y="5.529" />
|
||||||
|
<Point X="10.444" Y="5.529" />
|
||||||
|
<Point X="10.444" Y="5.19" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Protect" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetDiscretApi">
|
||||||
|
<Position X="5.5" Y="0.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetDiscretClient">
|
||||||
|
<Position X="5.5" Y="2.25" Width="2.25" />
|
||||||
|
<AssociationLine Name="Discret" Type="ApiServer.Structures.Discret" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="7.75" Y="2.779" />
|
||||||
|
<Point X="10.521" Y="2.779" />
|
||||||
|
<Point X="10.521" Y="2.44" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Discret" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Analog">
|
||||||
|
<Position X="3" Y="3.25" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAgAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.AnalogArr">
|
||||||
|
<Position X="3" Y="6" Width="2.25" />
|
||||||
|
<AssociationLine Name="Analogs" Type="ApiServer.Structures.Analog" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="5" Y="6" />
|
||||||
|
<Point X="5" Y="4.997" />
|
||||||
|
</Path>
|
||||||
|
<MemberNameLabel ManuallyPlaced="true">
|
||||||
|
<Position X="0.11" Y="0.677" />
|
||||||
|
</MemberNameLabel>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analogs" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Discret">
|
||||||
|
<Position X="8" Y="0.5" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEABAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Protect">
|
||||||
|
<Position X="8" Y="3.25" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEABAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Protect.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.TechCycle">
|
||||||
|
<Position X="8" Y="6" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Font Name="Segoe UI" Size="9" />
|
||||||
|
</ClassDiagram>
|
25
ApiServer/Diagrams/ClassDiagram2.cd
Normal file
25
ApiServer/Diagrams/ClassDiagram2.cd
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="FullSignature">
|
||||||
|
<Class Name="ApiServer.WorkWithFiles">
|
||||||
|
<Position X="0.5" Y="4.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAgAgAAACEIAAIAAAAAAAAAECAAAABA=</HashCode>
|
||||||
|
<FileName>WorkWithFiles.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Startup">
|
||||||
|
<Position X="0.5" Y="2.25" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAACAAAAAA=</HashCode>
|
||||||
|
<FileName>Startup.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Program">
|
||||||
|
<Position X="0.5" Y="0.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAIAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA=</HashCode>
|
||||||
|
<FileName>Program.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Font Name="Segoe UI" Size="9" />
|
||||||
|
</ClassDiagram>
|
237
ApiServer/Diagrams/ClassDiagram3.cd
Normal file
237
ApiServer/Diagrams/ClassDiagram3.cd
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="FullSignature">
|
||||||
|
<Class Name="ApiServer.Controllers.ParamsController">
|
||||||
|
<Position X="0.5" Y="0.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAQAAAAAAAAAAAAAiAAACAAAAIAAIAAAEAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Controllers\ParamsController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetAnalogApi">
|
||||||
|
<Position X="0.5" Y="3.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetAnalogClient">
|
||||||
|
<Position X="0.5" Y="4.75" Width="2.25" />
|
||||||
|
<AssociationLine Name="Analog_params" Type="ApiServer.Parametrs.AnalogParams" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="0.669" Y="5.618" />
|
||||||
|
<Point X="0.669" Y="5.976" />
|
||||||
|
<Point X="3" Y="5.976" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analog_params" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetMetricClient">
|
||||||
|
<Position X="6" Y="5.25" Width="2.5" />
|
||||||
|
<AssociationLine Name="Metrics" Type="ApiServer.Parametrs.Metric" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="6.062" Y="6.118" />
|
||||||
|
<Point X="6.062" Y="6.5" />
|
||||||
|
<Point X="8.75" Y="6.5" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Metrics" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetTechCycleNameClient">
|
||||||
|
<Position X="6" Y="12" Width="2.5" />
|
||||||
|
<AssociationLine Name="Name" Type="ApiServer.Parametrs.TechCycleName" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="6.125" Y="12.868" />
|
||||||
|
<Point X="6.125" Y="13.188" />
|
||||||
|
<Point X="8.75" Y="13.188" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Name" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetTechCycleColorClient">
|
||||||
|
<Position X="6" Y="8.75" Width="2.5" />
|
||||||
|
<AssociationLine Name="Color" Type="ApiServer.Parametrs.TechCycleColor" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="6.188" Y="9.618" />
|
||||||
|
<Point X="6.188" Y="9.938" />
|
||||||
|
<Point X="8.75" Y="9.938" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Color" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetStateStructClient">
|
||||||
|
<Position X="0.5" Y="11" Width="2.25" />
|
||||||
|
<AssociationLine Name="StateStruct" Type="ApiServer.Parametrs.StateStruct" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="0.625" Y="11.868" />
|
||||||
|
<Point X="0.625" Y="12.312" />
|
||||||
|
<Point X="3" Y="12.312" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="StateStruct" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetProtectStateApi">
|
||||||
|
<Position X="0.5" Y="8.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetProtectStateClient">
|
||||||
|
<Position X="0.5" Y="10" Width="2.25" />
|
||||||
|
<AssociationLine Name="ProtectState" Type="ApiServer.Parametrs.ProtectState" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="2.75" Y="10.688" />
|
||||||
|
<Point X="5.562" Y="10.688" />
|
||||||
|
<Point X="5.562" Y="10.238" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="ProtectState" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetDiscretApi">
|
||||||
|
<Position X="0.5" Y="6.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetDiscretClient">
|
||||||
|
<Position X="0.5" Y="7.75" Width="2.25" />
|
||||||
|
<AssociationLine Name="Discret_params" Type="ApiServer.Parametrs.DiscretParams" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="2.75" Y="8.5" />
|
||||||
|
<Point X="5.5" Y="8.5" />
|
||||||
|
<Point X="5.5" Y="8.18" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Discret_params" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.AnalogParams">
|
||||||
|
<Position X="3" Y="3.5" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAEAAAAAABAAAAAAEAAAAAQAAAACAgACAAEIAAAAEAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.DiscretParams">
|
||||||
|
<Position X="3" Y="6.5" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAQAAAAAAAAAAAAQAAAAAgAAAAAEAAAAAEAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Bits" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.ByteBit">
|
||||||
|
<Position X="7" Y="7" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.Metric">
|
||||||
|
<Position X="8.75" Y="5.25" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Metrics.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.ProtectState">
|
||||||
|
<Position X="3" Y="8.75" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Protect.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.State">
|
||||||
|
<Position X="7" Y="10.25" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAEAgAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\States.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.StateStruct">
|
||||||
|
<Position X="3" Y="11.25" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\States.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="States" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.TechCycleName">
|
||||||
|
<Position X="8.75" Y="12" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.TechCycleColor">
|
||||||
|
<Position X="8.75" Y="8.75" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Configuration">
|
||||||
|
<Position X="6" Y="0.5" Width="3.75" />
|
||||||
|
<AssociationLine Name="r_analogParams" Type="ApiServer.Parametrs.AnalogParams" FixedFromPoint="true" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="9.5" Y="4.363" />
|
||||||
|
<Point X="9.5" Y="4.927" />
|
||||||
|
<Point X="5.75" Y="4.927" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAEAAAAEAAAAACgAgCAAAIAAAAAAAEEAAAAAAAEA=</HashCode>
|
||||||
|
<FileName>Parametrs\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Field Name="r_analogParams" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Font Name="Segoe UI" Size="9" />
|
||||||
|
</ClassDiagram>
|
39
ApiServer/Diagrams/ClassDiagram4.cd
Normal file
39
ApiServer/Diagrams/ClassDiagram4.cd
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="FullSignature">
|
||||||
|
<Class Name="ApiServer.Controllers.PasportController">
|
||||||
|
<Position X="0.5" Y="0.5" Width="3.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAEAgAAAAAAAAAAAAACAAAAAAAAEAAAAAAAAAAAAI=</HashCode>
|
||||||
|
<FileName>Controllers\PasportController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetListApi">
|
||||||
|
<Position X="0.5" Y="4.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetListClient">
|
||||||
|
<Position X="0.5" Y="5.75" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetPasportApi">
|
||||||
|
<Position X="0.5" Y="3" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetPasportClient">
|
||||||
|
<Position X="4.25" Y="0.5" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>UAAgEAIAEQgEIAACADAAggAIIACAARAAIBACAoIBAgQ=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Font Name="Segoe UI" Size="9" />
|
||||||
|
</ClassDiagram>
|
380
ApiServer/Diagrams/ClassDiagram_global.cd
Normal file
380
ApiServer/Diagrams/ClassDiagram_global.cd
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ClassDiagram MajorVersion="1" MinorVersion="1" MembersFormat="FullSignature">
|
||||||
|
<Class Name="ApiServer.WorkWithFiles">
|
||||||
|
<Position X="19" Y="4.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAgAgAAACEIAAIAAAAAAAAAECAAAABA=</HashCode>
|
||||||
|
<FileName>WorkWithFiles.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Startup">
|
||||||
|
<Position X="19" Y="2.25" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAACAAAAAA=</HashCode>
|
||||||
|
<FileName>Startup.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Program">
|
||||||
|
<Position X="19" Y="0.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAIAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA=</HashCode>
|
||||||
|
<FileName>Program.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Controllers.DateController">
|
||||||
|
<Position X="0.5" Y="0.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAQAAAAAAAAAAABAAACCAAAAIAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Controllers\DateController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Controllers.ParamsController">
|
||||||
|
<Position X="0.5" Y="11.75" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAQAAAAAAAAAAAAAiAAACAAAAIAAIAAAEAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Controllers\ParamsController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Controllers.PasportController">
|
||||||
|
<Position X="0.5" Y="24.5" Width="4.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAEAgAAAAAAAAAAAAACAAAAAAAAEAAAAAAAAAAAAI=</HashCode>
|
||||||
|
<FileName>Controllers\PasportController.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogApi">
|
||||||
|
<Position X="5.25" Y="0.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogClient">
|
||||||
|
<Position X="7.75" Y="0.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analog" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogsApi">
|
||||||
|
<Position X="5.25" Y="2.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetAnalogsClient">
|
||||||
|
<Position X="7.75" Y="2.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analogs" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetTechCycleApi">
|
||||||
|
<Position X="5.25" Y="9.25" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetTechCycleClient">
|
||||||
|
<Position X="7.75" Y="9.25" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="TechCycle" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetProtectApi">
|
||||||
|
<Position X="5.25" Y="7" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetProtectClient">
|
||||||
|
<Position X="7.75" Y="7" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Protect" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetDiscretApi">
|
||||||
|
<Position X="5.25" Y="4.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAIAAQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.DateGetDiscretClient">
|
||||||
|
<Position X="7.75" Y="4.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Date.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Discret" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetAnalogApi">
|
||||||
|
<Position X="5.25" Y="11.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetAnalogClient">
|
||||||
|
<Position X="7.75" Y="11.75" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analog_params" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetMetricClient">
|
||||||
|
<Position X="7.75" Y="16.5" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Metrics" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetTechCycleNameClient">
|
||||||
|
<Position X="7.75" Y="23" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Name" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetTechCycleColorClient">
|
||||||
|
<Position X="7.75" Y="21.5" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Color" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetStateStructClient">
|
||||||
|
<Position X="7.75" Y="19.75" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="StateStruct" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetProtectStateApi">
|
||||||
|
<Position X="5.25" Y="18" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetProtectStateClient">
|
||||||
|
<Position X="7.75" Y="18" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="ProtectState" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetDiscretApi">
|
||||||
|
<Position X="5.25" Y="14.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.ParamsGetDiscretClient">
|
||||||
|
<Position X="7.75" Y="14.75" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Params.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Discret_params" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetListApi">
|
||||||
|
<Position X="5.25" Y="24.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetListClient">
|
||||||
|
<Position X="7.75" Y="24.5" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetPasportApi">
|
||||||
|
<Position X="5.25" Y="26" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.ApiStruct.PasportGetPasportClient">
|
||||||
|
<Position X="7.75" Y="26" Width="2.5" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>UAAgEAIAEQgEIAACADAAggAIIACAARAAIBACAoIBAgQ=</HashCode>
|
||||||
|
<FileName>ApiStruct\Pasport.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.AnalogParams">
|
||||||
|
<Position X="12.25" Y="11.75" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAEAAAAAABAAAAAAEAAAAAQAAAACAgACAAEIAAAAEAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.DiscretParams">
|
||||||
|
<Position X="12.25" Y="14.75" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAQAAAAAAAAAAAAQAAAAAgAAAAAEAAAAAEAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Bits" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.ByteBit">
|
||||||
|
<Position X="16.5" Y="14.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.Metric">
|
||||||
|
<Position X="12.25" Y="16.5" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Metrics.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.ProtectState">
|
||||||
|
<Position X="12.25" Y="18" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\Protect.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.State">
|
||||||
|
<Position X="16.5" Y="19.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAEAgAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\States.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.StateStruct">
|
||||||
|
<Position X="12.25" Y="19.75" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\States.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="States" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.TechCycleName">
|
||||||
|
<Position X="12.25" Y="23" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Parametrs.TechCycleColor">
|
||||||
|
<Position X="12.25" Y="21.5" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgAAAAAA=</HashCode>
|
||||||
|
<FileName>Parametrs\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Configuration">
|
||||||
|
<Position X="19" Y="11.75" Width="3.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAEAAAAEAAAAACgAgCAAAIAAAAAAAEEAAAAAAAEA=</HashCode>
|
||||||
|
<FileName>Parametrs\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Field Name="r_analogParams" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Analog">
|
||||||
|
<Position X="11.75" Y="0.5" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAgAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.AnalogArr">
|
||||||
|
<Position X="11.75" Y="2.75" Width="2.25" />
|
||||||
|
<AssociationLine Name="Analogs" Type="ApiServer.Structures.Analog" FixedToPoint="true">
|
||||||
|
<Path>
|
||||||
|
<Point X="13.75" Y="2.75" />
|
||||||
|
<Point X="13.75" Y="2.247" />
|
||||||
|
</Path>
|
||||||
|
</AssociationLine>
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Analog.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
<ShowAsCollectionAssociation>
|
||||||
|
<Property Name="Analogs" />
|
||||||
|
</ShowAsCollectionAssociation>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Discret">
|
||||||
|
<Position X="11.75" Y="4.75" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEABAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.DiscretMatrix">
|
||||||
|
<Position X="16.5" Y="4.75" Width="2" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAAAAAAAAgAAAAAAAAAAAABAAAAAAAAAIAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Discret.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.Protect">
|
||||||
|
<Position X="11.75" Y="7" Width="2.25" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEABAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\Protect.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Class Name="ApiServer.Structures.TechCycle">
|
||||||
|
<Position X="12.25" Y="9.25" Width="2.75" />
|
||||||
|
<TypeIdentifier>
|
||||||
|
<HashCode>AAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAEAAAAAAAA=</HashCode>
|
||||||
|
<FileName>Structures\TechCycle.cs</FileName>
|
||||||
|
</TypeIdentifier>
|
||||||
|
</Class>
|
||||||
|
<Font Name="Segoe UI" Size="9" />
|
||||||
|
</ClassDiagram>
|
161
ApiServer/Parametrs/Analog.cs
Normal file
161
ApiServer/Parametrs/Analog.cs
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using NLog;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class AnalogParams
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public bool ShowDefault { get; set; }
|
||||||
|
public bool Skip { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Sname { get; set; }
|
||||||
|
public string Metric { get; set; }
|
||||||
|
public double? Min { get; set; }
|
||||||
|
public double? Max { get; set; }
|
||||||
|
public double Mul { get; set; }
|
||||||
|
public int[] Bytes {get;set;}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
private static Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
public static Dictionary<string,AnalogParams[]> r_analogParams = null;
|
||||||
|
public static AnalogParams[] GetAnalogParams(string name_analog)
|
||||||
|
{
|
||||||
|
log.Info("Ask analog parasm: " + name_analog);
|
||||||
|
if (r_analogParams != null && r_analogParams.ContainsKey(name_analog))
|
||||||
|
{
|
||||||
|
log.Info("Exist: " + name_analog);
|
||||||
|
return r_analogParams[name_analog];
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = new List<AnalogParams>();
|
||||||
|
var list_files = Directory.GetFiles(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"Analog"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
foreach (var file in list_files) {
|
||||||
|
log.Info("Try read " + file);
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
file
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey(name_analog))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var analog = json_conf.Value<JObject>(name_analog);
|
||||||
|
if (analog.ContainsKey("struct"))
|
||||||
|
{
|
||||||
|
var struct_arr = analog.Value<JArray>("struct");
|
||||||
|
foreach (JObject struct_el in struct_arr)
|
||||||
|
{
|
||||||
|
var analog_param = GetAnalogParam(struct_el);
|
||||||
|
if (analog_param != null)
|
||||||
|
if (result.Find(x => x.Index == analog_param.Index) == null)
|
||||||
|
result.Add(analog_param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (analog.ContainsKey("parent"))
|
||||||
|
{
|
||||||
|
var parent_list = analog.Value<JArray>("parent");
|
||||||
|
for(var i = parent_list.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var parent_states = GetAnalogParams(parent_list[i].Value<string>());
|
||||||
|
foreach (var state in parent_states)
|
||||||
|
{
|
||||||
|
if (state != null)
|
||||||
|
if (result.Find(x => x.Index == state.Index) == null)
|
||||||
|
result.Add(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (r_analogParams == null)
|
||||||
|
r_analogParams = new Dictionary<string, AnalogParams[]>();
|
||||||
|
if (r_analogParams.ContainsKey(name_analog))
|
||||||
|
r_analogParams[name_analog] = result.ToArray();
|
||||||
|
else
|
||||||
|
r_analogParams.Add(name_analog, result.ToArray());
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
private static AnalogParams GetAnalogParam(JObject data)
|
||||||
|
{
|
||||||
|
if ( data == null || !data.ContainsKey("index"))
|
||||||
|
return null;
|
||||||
|
var index = data.Value<int>("index");
|
||||||
|
var result = new AnalogParams()
|
||||||
|
{
|
||||||
|
Index = index,
|
||||||
|
Name = "Аналог " + index,
|
||||||
|
Sname = "Аналог " + index,
|
||||||
|
Min = null,
|
||||||
|
Max = null,
|
||||||
|
Mul = 1,
|
||||||
|
Metric = "УЕ",
|
||||||
|
Skip = false,
|
||||||
|
ShowDefault = false,
|
||||||
|
Bytes = new int[0]
|
||||||
|
};
|
||||||
|
|
||||||
|
if (data.ContainsKey("skip"))
|
||||||
|
{
|
||||||
|
var skip = data.Value<bool>("skip");
|
||||||
|
if (skip)
|
||||||
|
{
|
||||||
|
result.Skip = true;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (data.ContainsKey("name"))
|
||||||
|
result.Name = data.Value<string>("name");
|
||||||
|
if (data.ContainsKey("s_name"))
|
||||||
|
result.Sname = data.Value<string>("s_name");
|
||||||
|
if (data.ContainsKey("metric"))
|
||||||
|
result.Metric = data.Value<string>("metric");
|
||||||
|
if (data.ContainsKey("min"))
|
||||||
|
result.Min = data.Value<double>("min");
|
||||||
|
if (data.ContainsKey("max"))
|
||||||
|
result.Max = data.Value<double>("max");
|
||||||
|
if (data.ContainsKey("mul"))
|
||||||
|
result.Mul = data.Value<double>("mul");
|
||||||
|
if (data.ContainsKey("show_default"))
|
||||||
|
result.ShowDefault = data.Value<bool>("show_default");
|
||||||
|
|
||||||
|
if (data.ContainsKey("bytes"))
|
||||||
|
{
|
||||||
|
var bytes = data.Value<JArray>("bytes");
|
||||||
|
var arr = new List<int>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
for (var i = 0; i < bytes.Count; i++)
|
||||||
|
arr.Add(bytes[i].Value<int>());
|
||||||
|
result.Bytes = arr.ToArray();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
result.Bytes = new int[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
142
ApiServer/Parametrs/Discret.cs
Normal file
142
ApiServer/Parametrs/Discret.cs
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class DiscretParams
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public bool Skip { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public ByteBit[] Bits {get;set;}
|
||||||
|
public string StateStruct { get; set; }
|
||||||
|
}
|
||||||
|
public class ByteBit
|
||||||
|
{
|
||||||
|
public int ByteIndex { get; set; }
|
||||||
|
public byte BitIndex { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
public static DiscretParams[] GetDiscretParams(string name_discret)
|
||||||
|
{
|
||||||
|
var result = new List<DiscretParams>();
|
||||||
|
var list_files = Directory.GetFiles(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"Discret"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
foreach (var file in list_files) {
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
file
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey(name_discret))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var discret = json_conf.Value<JObject>(name_discret);
|
||||||
|
if (discret.ContainsKey("struct"))
|
||||||
|
{
|
||||||
|
var struct_arr = discret.Value<JArray>("struct");
|
||||||
|
foreach (JObject struct_el in struct_arr)
|
||||||
|
{
|
||||||
|
var discret_param = GetDiscretParam(struct_el);
|
||||||
|
if (discret_param != null)
|
||||||
|
if (result.Find(x => x.Index == discret_param.Index) == null)
|
||||||
|
result.Add(discret_param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (discret.ContainsKey("parent"))
|
||||||
|
{
|
||||||
|
var parent_list = discret.Value<JArray>("parent");
|
||||||
|
for(var i = parent_list.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var parent_states = GetDiscretParams(parent_list[i].Value<string>());
|
||||||
|
foreach (var state in parent_states)
|
||||||
|
{
|
||||||
|
if (state != null)
|
||||||
|
if (result.Find(x => x.Index == state.Index) == null)
|
||||||
|
result.Add(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
private static DiscretParams GetDiscretParam(JObject data)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
data == null ||
|
||||||
|
!data.ContainsKey("index"))
|
||||||
|
return null;
|
||||||
|
if (data.ContainsKey("skip"))
|
||||||
|
{
|
||||||
|
var skip = data.Value<bool>("skip");
|
||||||
|
if (skip)
|
||||||
|
{
|
||||||
|
return new DiscretParams()
|
||||||
|
{
|
||||||
|
Index = data.Value<int>("index"),
|
||||||
|
Skip = true
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
data == null ||
|
||||||
|
!data.ContainsKey("index") ||
|
||||||
|
!data.ContainsKey("name") ||
|
||||||
|
!data.ContainsKey("state_struct") ||
|
||||||
|
!data.ContainsKey("bits")
|
||||||
|
)
|
||||||
|
return null;
|
||||||
|
var bits = data.Value<JArray>("bits");
|
||||||
|
var arr = new List<ByteBit>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
for (var i = 0; i < bits.Count; i++)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
bits[i] == null ||
|
||||||
|
!((JObject)bits[i]).ContainsKey("byte_index") ||
|
||||||
|
!((JObject)bits[i]).ContainsKey("bit_index")
|
||||||
|
)
|
||||||
|
continue;
|
||||||
|
arr.Add(new ByteBit()
|
||||||
|
{
|
||||||
|
ByteIndex = ((JObject)bits[i]).Value<int>("byte_index"),
|
||||||
|
BitIndex = ((JObject)bits[i]).Value<byte>("bit_index")
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new DiscretParams()
|
||||||
|
{
|
||||||
|
Index = data.Value<int>("index"),
|
||||||
|
Skip = false,
|
||||||
|
Name = data.Value<string>("name"),
|
||||||
|
Bits = arr.ToArray(),
|
||||||
|
StateStruct = data.Value<string>("state_struct")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
58
ApiServer/Parametrs/Metrics.cs
Normal file
58
ApiServer/Parametrs/Metrics.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class Metric
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool Log { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
public static Metric[] GetMetricsArray()
|
||||||
|
{
|
||||||
|
var result = new List<Metric>();
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"Metrics.json"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
var list_objects = json_conf.GetEnumerator();
|
||||||
|
while (list_objects.MoveNext())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var name = list_objects.Current.Key;
|
||||||
|
var log = (bool)list_objects.Current.Value;
|
||||||
|
if (result.FindIndex(x => x.Name == name) == -1)
|
||||||
|
result.Add(new Metric()
|
||||||
|
{
|
||||||
|
Name = name,
|
||||||
|
Log = log
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
94
ApiServer/Parametrs/Protect.cs
Normal file
94
ApiServer/Parametrs/Protect.cs
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class ProtectState
|
||||||
|
{
|
||||||
|
public byte Index { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string StateStruct { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
public static ProtectState[] GetProtectState(string name_protect)
|
||||||
|
{
|
||||||
|
var result = new List<ProtectState>();
|
||||||
|
var list_files = Directory.GetFiles(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"Protect"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
foreach (var file in list_files) {
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
file
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey(name_protect))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var protect = json_conf.Value<JObject>(name_protect);
|
||||||
|
if (protect.ContainsKey("struct"))
|
||||||
|
{
|
||||||
|
var struct_arr = protect.Value<JArray>("struct");
|
||||||
|
foreach (JObject struct_el in struct_arr)
|
||||||
|
{
|
||||||
|
var protect_state = GetProtect(struct_el);
|
||||||
|
if (protect_state != null)
|
||||||
|
if (result.Find(x => x.Index == protect_state.Index) == null)
|
||||||
|
result.Add(protect_state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protect.ContainsKey("parent"))
|
||||||
|
{
|
||||||
|
var parent_list = protect.Value<JArray>("parent");
|
||||||
|
for(var i = parent_list.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var parent_states = GetProtectState(parent_list[i].Value<string>());
|
||||||
|
foreach (var state in parent_states)
|
||||||
|
{
|
||||||
|
if (state != null)
|
||||||
|
if (result.Find(x => x.Index == state.Index) == null)
|
||||||
|
result.Add(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ProtectState GetProtect(JObject data)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
data == null ||
|
||||||
|
!data.ContainsKey("index") ||
|
||||||
|
!data.ContainsKey("name") ||
|
||||||
|
!data.ContainsKey("state_struct")
|
||||||
|
)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return new ProtectState()
|
||||||
|
{
|
||||||
|
Index = data.Value<byte>("index"),
|
||||||
|
Name = data.Value<string>("name"),
|
||||||
|
StateStruct = data.Value<string>("state_struct")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
105
ApiServer/Parametrs/States.cs
Normal file
105
ApiServer/Parametrs/States.cs
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class State
|
||||||
|
{
|
||||||
|
public byte Index { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Color { get; set; }
|
||||||
|
}
|
||||||
|
public class StateStruct
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public State[] States { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
public static StateStruct[] GetStateStructArray()
|
||||||
|
{
|
||||||
|
var result = new List<StateStruct>();
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"StateStruct.json"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
var list_objects = json_conf.GetEnumerator();
|
||||||
|
while (list_objects.MoveNext())
|
||||||
|
{
|
||||||
|
var sub_res = GetStateStruct(
|
||||||
|
list_objects.Current.Key,
|
||||||
|
(JArray)list_objects.Current.Value
|
||||||
|
);
|
||||||
|
if (sub_res != null)
|
||||||
|
result.Add(sub_res);
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
public static StateStruct GetStateStruct(string name)
|
||||||
|
{
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"StateStruct.json"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey(name))
|
||||||
|
return null;
|
||||||
|
return GetStateStruct(name, json_conf.Value<JArray>(name));
|
||||||
|
}
|
||||||
|
private static StateStruct GetStateStruct(string name, JArray data)
|
||||||
|
{
|
||||||
|
if (data == null)
|
||||||
|
return null;
|
||||||
|
var result = new StateStruct() { Name = name };
|
||||||
|
var sub_res = new List<State>();
|
||||||
|
foreach (JObject j_state_struct in data)
|
||||||
|
{
|
||||||
|
var state = GetState(j_state_struct);
|
||||||
|
if (state == null)
|
||||||
|
continue;
|
||||||
|
sub_res.Add(state);
|
||||||
|
}
|
||||||
|
result.States = sub_res.ToArray();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
private static State GetState(JObject data)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
data == null ||
|
||||||
|
!data.ContainsKey("index") ||
|
||||||
|
!data.ContainsKey("name") ||
|
||||||
|
!data.ContainsKey("color")
|
||||||
|
)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return new State()
|
||||||
|
{
|
||||||
|
Index = data.Value<byte>("index"),
|
||||||
|
Name = data.Value<string>("name"),
|
||||||
|
Color = data.Value<string>("color")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
100
ApiServer/Parametrs/TechCycle.cs
Normal file
100
ApiServer/Parametrs/TechCycle.cs
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ApiServer.Parametrs;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace ApiServer.Parametrs
|
||||||
|
{
|
||||||
|
public class TechCycleName
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
public class TechCycleColor
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public string Color { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static partial class Configuration
|
||||||
|
{
|
||||||
|
public static TechCycleName[] GetTechCycleNames()
|
||||||
|
{
|
||||||
|
var result = new List<TechCycleName>();
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"TechCycle.json"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey("tech_cycle_conf"))
|
||||||
|
return result.ToArray();
|
||||||
|
var tc_array = json_conf.Value<JArray>("tech_cycle_conf");
|
||||||
|
foreach(JObject tc in tc_array)
|
||||||
|
{
|
||||||
|
int? index = null;
|
||||||
|
string name = null;
|
||||||
|
if (tc.ContainsKey("index"))
|
||||||
|
index = tc.Value<int>("index");
|
||||||
|
if (tc.ContainsKey("name"))
|
||||||
|
name = tc.Value<string>("name");
|
||||||
|
if (!string.IsNullOrEmpty(name) && index.HasValue)
|
||||||
|
result.Add(
|
||||||
|
new TechCycleName()
|
||||||
|
{
|
||||||
|
Index = index.Value,
|
||||||
|
Name = name
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
public static TechCycleColor[] GetTechCycleColor()
|
||||||
|
{
|
||||||
|
var result = new List<TechCycleColor>();
|
||||||
|
var json_conf =
|
||||||
|
JObject.Parse(
|
||||||
|
File.ReadAllText(
|
||||||
|
Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"Config",
|
||||||
|
"TechCycle.json"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!json_conf.ContainsKey("tech_cycle_conf"))
|
||||||
|
return result.ToArray();
|
||||||
|
var tc_array = json_conf.Value<JArray>("tech_cycle_conf");
|
||||||
|
foreach (JObject tc in tc_array)
|
||||||
|
{
|
||||||
|
int? index = null;
|
||||||
|
string color = null;
|
||||||
|
if (tc.ContainsKey("index"))
|
||||||
|
index = tc.Value<int>("index");
|
||||||
|
if (tc.ContainsKey("color"))
|
||||||
|
color = tc.Value<string>("color");
|
||||||
|
if (!string.IsNullOrEmpty(color) && index.HasValue)
|
||||||
|
result.Add(
|
||||||
|
new TechCycleColor()
|
||||||
|
{
|
||||||
|
Index = index.Value,
|
||||||
|
Color = color
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
51
ApiServer/Program.cs
Normal file
51
ApiServer/Program.cs
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using NLog;
|
||||||
|
using NLog.Config;
|
||||||
|
using NLog.Targets;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
LogConf();
|
||||||
|
CreateHostBuilder(args).Build().Run();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
||||||
|
Host.CreateDefaultBuilder(args)
|
||||||
|
.ConfigureWebHostDefaults(webBuilder =>
|
||||||
|
{
|
||||||
|
webBuilder.UseUrls("http://*:64400/");
|
||||||
|
//webBuilder.UseUrls("http://127.0.0.1:5000/");
|
||||||
|
webBuilder.UseStartup<Startup>();
|
||||||
|
webBuilder.UseKestrel(options =>
|
||||||
|
{
|
||||||
|
options.Limits.MaxRequestBodySize = long.MaxValue;
|
||||||
|
options.Limits.MaxRequestBufferSize = long.MaxValue;
|
||||||
|
options.Limits.MaxRequestLineSize = int.MaxValue;
|
||||||
|
options.Limits.MaxResponseBufferSize = long.MaxValue;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
static void LogConf()
|
||||||
|
{
|
||||||
|
var conf = new LoggingConfiguration();
|
||||||
|
var logcon = new ConsoleTarget()
|
||||||
|
{
|
||||||
|
Name = "logcon",
|
||||||
|
Layout = @"${time}|${level:uppercase=true}|${logger}|${message}${when:when=length('${exception}')>0:Inner=|}${exception:format=ToString,StackTrace}"
|
||||||
|
};
|
||||||
|
|
||||||
|
conf.AddRule(LogLevel.Trace, LogLevel.Fatal, logcon);
|
||||||
|
LogManager.Configuration = conf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
ApiServer/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
20
ApiServer/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<DeleteExistingFiles>False</DeleteExistingFiles>
|
||||||
|
<ExcludeApp_Data>False</ExcludeApp_Data>
|
||||||
|
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
|
||||||
|
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||||
|
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||||
|
<PublishProvider>FileSystem</PublishProvider>
|
||||||
|
<PublishUrl>bin\Release\</PublishUrl>
|
||||||
|
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||||
|
<SiteUrlToLaunchAfterPublish />
|
||||||
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
<ProjectGuid>618ef8a3-70d7-42a8-a407-aa3e47fe184c</ProjectGuid>
|
||||||
|
<SelfContained>false</SelfContained>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<History>True|2021-08-05T17:16:00.1453908Z;True|2021-08-02T21:42:10.4757931+05:00;True|2021-08-01T19:33:24.0605718+05:00;True|2021-08-01T19:29:09.0622642+05:00;True|2021-08-01T16:14:00.2837619+05:00;True|2021-07-31T17:43:14.2797709+05:00;False|2021-07-31T17:41:49.3152422+05:00;True|2021-07-31T14:07:45.4057263+05:00;False|2021-07-31T13:53:38.4952669+05:00;</History>
|
||||||
|
<_PublishTargetUrl>F:\GIT\ASCKU_PC\ApiServer\bin\Release\</_PublishTargetUrl>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
28
ApiServer/Properties/launchSettings.json
Normal file
28
ApiServer/Properties/launchSettings.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:44714",
|
||||||
|
"sslPort": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ApiServer": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": "true",
|
||||||
|
"launchBrowser": false,
|
||||||
|
"applicationUrl": "http://localhost:64400",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
27
ApiServer/Startup.cs
Normal file
27
ApiServer/Startup.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public class Startup
|
||||||
|
{
|
||||||
|
public Startup(IConfiguration configuration) { Configuration = configuration; }
|
||||||
|
public IConfiguration Configuration { get; }
|
||||||
|
|
||||||
|
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); }
|
||||||
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
|
{
|
||||||
|
if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
|
||||||
|
app.UseRouting();
|
||||||
|
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
19
ApiServer/Structures/Analog.cs
Normal file
19
ApiServer/Structures/Analog.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer.Structures
|
||||||
|
{
|
||||||
|
public class Analog
|
||||||
|
{
|
||||||
|
public string Start { get { return start.ToString("yyyy.MM.dd HH:mm:ss"); } }
|
||||||
|
public DateTime start = new DateTime();
|
||||||
|
public double? Value { get; set; }
|
||||||
|
}
|
||||||
|
public class AnalogArr
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public Analog[] Analogs { get; set; }
|
||||||
|
}
|
||||||
|
}
|
21
ApiServer/Structures/Discret.cs
Normal file
21
ApiServer/Structures/Discret.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer.Structures
|
||||||
|
{
|
||||||
|
public class Discret
|
||||||
|
{
|
||||||
|
public int Index { get; set; }
|
||||||
|
public string Start { get { return start.ToString("yyyy.MM.dd HH:mm:ss"); } }
|
||||||
|
public DateTime start = new DateTime();
|
||||||
|
public byte? State { get; set; }
|
||||||
|
}
|
||||||
|
public class DiscretMatrix
|
||||||
|
{
|
||||||
|
public string Dt { get { return start.ToString("yyyy.MM.dd HH:mm:ss"); } }
|
||||||
|
public DateTime start = new DateTime();
|
||||||
|
public byte?[] M { get; set; }
|
||||||
|
}
|
||||||
|
}
|
15
ApiServer/Structures/Protect.cs
Normal file
15
ApiServer/Structures/Protect.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer.Structures
|
||||||
|
{
|
||||||
|
public class Protect
|
||||||
|
{
|
||||||
|
public byte Index { get; set; }
|
||||||
|
public byte State { get; set; }
|
||||||
|
public DateTime start;
|
||||||
|
public string Start { get { return start.ToString("yyyy.MM.dd HH.mm.ss.fff"); } }
|
||||||
|
}
|
||||||
|
}
|
32
ApiServer/Structures/TechCycle.cs
Normal file
32
ApiServer/Structures/TechCycle.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ApiServer.Structures
|
||||||
|
{
|
||||||
|
public class TechCycle
|
||||||
|
{
|
||||||
|
public sbyte Index { get; set; }
|
||||||
|
public string Start { get { return start.ToString("yyyy.MM.dd HH:mm:ss"); } }
|
||||||
|
public DateTime start = new DateTime();
|
||||||
|
|
||||||
|
public TechCycle(DateTime date, string line)
|
||||||
|
{
|
||||||
|
var splits = line.Split('\t');
|
||||||
|
if (splits[0] == "00")
|
||||||
|
this.Index = -1;
|
||||||
|
else
|
||||||
|
this.Index = sbyte.Parse(splits[0]);
|
||||||
|
var times = splits[1].Split(":");
|
||||||
|
this.start = new DateTime(
|
||||||
|
date.Year,
|
||||||
|
date.Month,
|
||||||
|
date.Day,
|
||||||
|
int.Parse(times[0]),
|
||||||
|
int.Parse(times[1]),
|
||||||
|
int.Parse(times[2])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
544
ApiServer/WorkWithFiles.cs
Normal file
544
ApiServer/WorkWithFiles.cs
Normal file
@ -0,0 +1,544 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ICSharpCode.SharpZipLib.GZip;
|
||||||
|
using ICSharpCode.SharpZipLib.Tar;
|
||||||
|
using System.IO;
|
||||||
|
using ApiServer.Structures;
|
||||||
|
using NLog;
|
||||||
|
|
||||||
|
namespace ApiServer
|
||||||
|
{
|
||||||
|
public static class WorkWithFiles
|
||||||
|
{
|
||||||
|
private static Logger log = LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
|
public static string[] GetFile(string fileName)
|
||||||
|
{
|
||||||
|
var vdp = fileName.Substring(9, 2);
|
||||||
|
var dir_archive = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data",
|
||||||
|
"data",
|
||||||
|
fileName.Substring(0,4),
|
||||||
|
fileName.Substring(4, 2),
|
||||||
|
fileName.Substring(6, 2)
|
||||||
|
);
|
||||||
|
var tmp = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"temp",
|
||||||
|
System.Guid.NewGuid().ToString()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!Directory.Exists(tmp))
|
||||||
|
Directory.CreateDirectory(tmp);
|
||||||
|
var flag_exist = false;
|
||||||
|
var tar_gz = false;
|
||||||
|
if (File.Exists(Path.Combine(dir_archive, vdp + ".tar.gz")))
|
||||||
|
{
|
||||||
|
flag_exist = true;
|
||||||
|
tar_gz = true;
|
||||||
|
dir_archive = Path.Combine(dir_archive, vdp + ".tar.gz");
|
||||||
|
}
|
||||||
|
if (File.Exists(Path.Combine(dir_archive, vdp + ".tar")))
|
||||||
|
{
|
||||||
|
flag_exist = true;
|
||||||
|
dir_archive = Path.Combine(dir_archive, vdp + ".tar");
|
||||||
|
}
|
||||||
|
if (!flag_exist)
|
||||||
|
return Array.Empty<string>();
|
||||||
|
if (tar_gz)
|
||||||
|
ExtractTarGZ(dir_archive, tmp);
|
||||||
|
else
|
||||||
|
ExtractTar(dir_archive, tmp);
|
||||||
|
if (!File.Exists(Path.Combine(tmp, fileName)))
|
||||||
|
{
|
||||||
|
Directory.Delete(tmp, true);
|
||||||
|
return Array.Empty<string>();
|
||||||
|
}
|
||||||
|
var result = File.ReadAllLines(Path.Combine(tmp, fileName));
|
||||||
|
Directory.Delete(tmp, true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public static byte[] GetFileBytes(string fileName)
|
||||||
|
{
|
||||||
|
var vdp = fileName.Substring(9, 2);
|
||||||
|
var dir_archive = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"data",
|
||||||
|
"data",
|
||||||
|
fileName.Substring(0, 4),
|
||||||
|
fileName.Substring(4, 2),
|
||||||
|
fileName.Substring(6, 2)
|
||||||
|
);
|
||||||
|
var tmp = Path.Combine(
|
||||||
|
Directory.GetCurrentDirectory(),
|
||||||
|
"temp",
|
||||||
|
System.Guid.NewGuid().ToString()
|
||||||
|
);
|
||||||
|
log.Info("Path: " + dir_archive);
|
||||||
|
if (!Directory.Exists(tmp))
|
||||||
|
Directory.CreateDirectory(tmp);
|
||||||
|
var flag_exist = false;
|
||||||
|
var tar_gz = false;
|
||||||
|
if (File.Exists(Path.Combine(dir_archive, vdp + ".tar.gz")))
|
||||||
|
{
|
||||||
|
flag_exist = true;
|
||||||
|
tar_gz = true;
|
||||||
|
dir_archive = Path.Combine(dir_archive, vdp + ".tar.gz");
|
||||||
|
}
|
||||||
|
if (File.Exists(Path.Combine(dir_archive, vdp + ".tar")))
|
||||||
|
{
|
||||||
|
flag_exist = true;
|
||||||
|
dir_archive = Path.Combine(dir_archive, vdp + ".tar");
|
||||||
|
}
|
||||||
|
if (!flag_exist)
|
||||||
|
return Array.Empty<byte>();
|
||||||
|
if (tar_gz)
|
||||||
|
ExtractTarGZ(dir_archive, tmp);
|
||||||
|
else
|
||||||
|
ExtractTar(dir_archive, tmp);
|
||||||
|
if (!File.Exists(Path.Combine(tmp, fileName)))
|
||||||
|
{
|
||||||
|
Directory.Delete(tmp, true);
|
||||||
|
return Array.Empty<byte>();
|
||||||
|
}
|
||||||
|
var result = File.ReadAllBytes(Path.Combine(tmp, fileName));
|
||||||
|
Directory.Delete(tmp, true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ExtractTarGZ(String gzArchiveName, String destFolder)
|
||||||
|
{
|
||||||
|
using (var a = (Stream)File.OpenRead(gzArchiveName))
|
||||||
|
using (var b = (Stream)new GZipInputStream(a))
|
||||||
|
using (var c = TarArchive.CreateInputTarArchive(b))
|
||||||
|
c.ExtractContents(destFolder);
|
||||||
|
}
|
||||||
|
private static void ExtractTar(String tarFileName, String destFolder)
|
||||||
|
{
|
||||||
|
using (var a = (Stream)File.OpenRead(tarFileName))
|
||||||
|
using (var b = TarArchive.CreateInputTarArchive(a))
|
||||||
|
b.ExtractContents(destFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Protect[] GetProtects(DateTime date, int vdp)
|
||||||
|
{
|
||||||
|
var result = new List<Protect>();
|
||||||
|
var byte_arr = GetFileBytes(
|
||||||
|
date.Year.ToString("D4") +
|
||||||
|
date.Month.ToString("D2") +
|
||||||
|
date.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
vdp.ToString("D2") +
|
||||||
|
"4"
|
||||||
|
);
|
||||||
|
for (var i = 0; i < byte_arr.Length; i++)
|
||||||
|
{
|
||||||
|
if (i + 3 >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
var unix_date = BitConverter.ToUInt32(byte_arr, i);
|
||||||
|
i += 4;
|
||||||
|
var date_time = new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
||||||
|
date_time = date_time.AddSeconds(unix_date).ToLocalTime();
|
||||||
|
|
||||||
|
if (i + 3 >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
var nanosec = BitConverter.ToUInt32(byte_arr, i);
|
||||||
|
i += 4;
|
||||||
|
date_time.AddMilliseconds(nanosec / 1000000);
|
||||||
|
|
||||||
|
while (byte_arr[i] != 0xff)
|
||||||
|
{
|
||||||
|
if (i >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
var index = byte_arr[i];
|
||||||
|
i++;
|
||||||
|
|
||||||
|
if (i >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
var state = byte_arr[i];
|
||||||
|
i++;
|
||||||
|
|
||||||
|
result.Add(
|
||||||
|
new Protect()
|
||||||
|
{
|
||||||
|
Index = index,
|
||||||
|
start = date_time,
|
||||||
|
State = state
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
public static Discret[] GetDiscrets(DateTime date, int vdp)
|
||||||
|
{
|
||||||
|
var desc_struct = Configuration.GetDiscretParams(vdp.ToString("D2"));
|
||||||
|
var result = new List<Discret>();
|
||||||
|
var byte_arr = GetFileBytes(
|
||||||
|
date.Year.ToString("D4") +
|
||||||
|
date.Month.ToString("D2") +
|
||||||
|
date.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
vdp.ToString("D2") +
|
||||||
|
"1"
|
||||||
|
);
|
||||||
|
|
||||||
|
var date_bytes_struct = new List<(DateTime dt, byte?[] arr)>();
|
||||||
|
var curr_date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
|
||||||
|
var curr_byte_arr = new List<byte?>();
|
||||||
|
var halfsec = 0D;
|
||||||
|
var curr_byte = 0;
|
||||||
|
while (curr_byte < byte_arr.Length)
|
||||||
|
{
|
||||||
|
switch (byte_arr[curr_byte])
|
||||||
|
{
|
||||||
|
case 0xfb:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfc:
|
||||||
|
curr_byte_arr = new List<byte?>();
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfe:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 1 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec += BitConverter.ToInt16(byte_arr, curr_byte);
|
||||||
|
curr_byte += 2;
|
||||||
|
break;
|
||||||
|
case 0xff:
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
halfsec++;
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
while (curr_byte_arr.Count <= byte_arr[curr_byte])
|
||||||
|
curr_byte_arr.Add(null);
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
curr_byte_arr[byte_arr[curr_byte - 1]] = byte_arr[curr_byte];
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var dm in date_bytes_struct)
|
||||||
|
{
|
||||||
|
foreach (var dp in desc_struct)
|
||||||
|
{
|
||||||
|
if (dp.Skip)
|
||||||
|
continue;
|
||||||
|
byte? state = 0;
|
||||||
|
for (var i = 0; i < dp.Bits.Length; i++)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
dm.arr.Length <= dp.Bits[i].ByteIndex ||
|
||||||
|
!dm.arr[dp.Bits[i].ByteIndex].HasValue
|
||||||
|
)
|
||||||
|
{
|
||||||
|
state = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
var curr_bit = (dm.arr[dp.Bits[i].ByteIndex].Value >> dp.Bits[i].BitIndex) & 1;
|
||||||
|
state += (byte)(curr_bit * Math.Pow(2, i));
|
||||||
|
}
|
||||||
|
var last = result.FindLastIndex(x => x.Index == dp.Index);
|
||||||
|
if (last != -1 && result[last].State == state)
|
||||||
|
continue;
|
||||||
|
result.Add(new Discret()
|
||||||
|
{
|
||||||
|
Index = dp.Index,
|
||||||
|
start = dm.dt,
|
||||||
|
State = state
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
public static AnalogArr[] GetAnalogs(DateTime date, int vdp)
|
||||||
|
{
|
||||||
|
var analog_struct = Configuration.GetAnalogParams(vdp.ToString("D2"));
|
||||||
|
var result = new List<AnalogArr>();
|
||||||
|
var byte_arr = GetFileBytes(
|
||||||
|
date.Year.ToString("D4") +
|
||||||
|
date.Month.ToString("D2") +
|
||||||
|
date.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
vdp.ToString("D2") +
|
||||||
|
"1"
|
||||||
|
);
|
||||||
|
|
||||||
|
var date_bytes_struct = new List<(DateTime dt, byte?[] arr)>();
|
||||||
|
var curr_date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
|
||||||
|
var curr_byte_arr = new List<byte?>();
|
||||||
|
var halfsec = 0D;
|
||||||
|
var curr_byte = 0;
|
||||||
|
while (curr_byte < byte_arr.Length)
|
||||||
|
{
|
||||||
|
switch (byte_arr[curr_byte])
|
||||||
|
{
|
||||||
|
case 0xfb:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfc:
|
||||||
|
curr_byte_arr = new List<byte?>();
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfe:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 1 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec += BitConverter.ToInt16(byte_arr, curr_byte);
|
||||||
|
curr_byte += 2;
|
||||||
|
break;
|
||||||
|
case 0xff:
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
halfsec++;
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
while (curr_byte_arr.Count <= byte_arr[curr_byte])
|
||||||
|
curr_byte_arr.Add(null);
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
curr_byte_arr[byte_arr[curr_byte - 1]] = byte_arr[curr_byte];
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var sub_res = new Dictionary<int, List<Analog>>();
|
||||||
|
foreach (var dm in date_bytes_struct)
|
||||||
|
{
|
||||||
|
foreach (var dp in analog_struct)
|
||||||
|
{
|
||||||
|
if (dp.Skip)
|
||||||
|
continue;
|
||||||
|
double? value = 0;
|
||||||
|
var val_arr = new List<byte>();
|
||||||
|
for (var i = 0; i < dp.Bytes.Length; i++)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
dm.arr.Length <= dp.Bytes[i] ||
|
||||||
|
!dm.arr[dp.Bytes[i]].HasValue
|
||||||
|
)
|
||||||
|
{
|
||||||
|
value = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
val_arr.Add(dm.arr[dp.Bytes[i]].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val_arr != null)
|
||||||
|
{
|
||||||
|
if (val_arr.Count == 1)
|
||||||
|
value = val_arr[0];
|
||||||
|
else if (val_arr.Count == 2)
|
||||||
|
value = BitConverter.ToInt16(val_arr.ToArray(), 0);
|
||||||
|
else if (val_arr.Count == 4)
|
||||||
|
value = BitConverter.ToInt32(val_arr.ToArray(), 0);
|
||||||
|
else if (val_arr.Count == 8)
|
||||||
|
value = BitConverter.ToInt64(val_arr.ToArray(), 0);
|
||||||
|
else
|
||||||
|
for (var i = 0; i < val_arr.Count; i++)
|
||||||
|
value += (val_arr[i] * Math.Pow(256, i));
|
||||||
|
}
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
value = Math.Round(value.Value);
|
||||||
|
value = value.Value * dp.Mul;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!sub_res.ContainsKey(dp.Index))
|
||||||
|
sub_res.Add(dp.Index, new List<Analog>());
|
||||||
|
if (sub_res[dp.Index].Count != 0 &&
|
||||||
|
sub_res[dp.Index][sub_res[dp.Index].Count - 1].Value == value)
|
||||||
|
continue;
|
||||||
|
sub_res[dp.Index].Add(new Analog()
|
||||||
|
{
|
||||||
|
start = dm.dt,
|
||||||
|
Value = value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var d in sub_res)
|
||||||
|
result.Add(new AnalogArr()
|
||||||
|
{
|
||||||
|
Index = d.Key,
|
||||||
|
Analogs = d.Value.ToArray()
|
||||||
|
});
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static DiscretMatrix[] GetDiscretsMatrix(DateTime date, int vdp)
|
||||||
|
{
|
||||||
|
log.Info("Load discret struct for vpd " + vdp);
|
||||||
|
var desc_struct = Configuration.GetDiscretParams(vdp.ToString("D2"));
|
||||||
|
var result = new List<DiscretMatrix>();
|
||||||
|
log.Info("Load file " +
|
||||||
|
date.Year.ToString("D4") +
|
||||||
|
date.Month.ToString("D2") +
|
||||||
|
date.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
vdp.ToString("D2") +
|
||||||
|
"1");
|
||||||
|
var byte_arr = GetFileBytes(
|
||||||
|
date.Year.ToString("D4") +
|
||||||
|
date.Month.ToString("D2") +
|
||||||
|
date.Day.ToString("D2") +
|
||||||
|
"." +
|
||||||
|
vdp.ToString("D2") +
|
||||||
|
"1"
|
||||||
|
);
|
||||||
|
|
||||||
|
var date_bytes_struct = new List<(DateTime dt, byte?[] arr)>();
|
||||||
|
var curr_date = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
|
||||||
|
var curr_byte_arr = new List<byte?>();
|
||||||
|
var halfsec = 0D;
|
||||||
|
var curr_byte = 0;
|
||||||
|
log.Info("Parse file to structs.");
|
||||||
|
while (curr_byte < byte_arr.Length)
|
||||||
|
{
|
||||||
|
switch (byte_arr[curr_byte])
|
||||||
|
{
|
||||||
|
case 0xfb:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfc:
|
||||||
|
curr_byte_arr = new List<byte?>();
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 3 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte += 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec = BitConverter.ToUInt32(byte_arr, curr_byte);
|
||||||
|
curr_byte += 4;
|
||||||
|
break;
|
||||||
|
case 0xfe:
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte + 1 >= byte_arr.Length)
|
||||||
|
{
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
halfsec += BitConverter.ToInt16(byte_arr, curr_byte);
|
||||||
|
curr_byte += 2;
|
||||||
|
break;
|
||||||
|
case 0xff:
|
||||||
|
date_bytes_struct.Add((
|
||||||
|
curr_date.AddSeconds(halfsec / 2),
|
||||||
|
curr_byte_arr.ToArray()
|
||||||
|
));
|
||||||
|
halfsec++;
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
while (curr_byte_arr.Count <= byte_arr[curr_byte])
|
||||||
|
curr_byte_arr.Add(null);
|
||||||
|
curr_byte++;
|
||||||
|
if (curr_byte >= byte_arr.Length)
|
||||||
|
break;
|
||||||
|
curr_byte_arr[byte_arr[curr_byte - 1]] = byte_arr[curr_byte];
|
||||||
|
curr_byte++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var b_matrix = new List<byte?>();
|
||||||
|
foreach(var d_slice in date_bytes_struct)
|
||||||
|
{
|
||||||
|
var sub_res = new DiscretMatrix() { start = d_slice.dt };
|
||||||
|
foreach (var d_struct in desc_struct)
|
||||||
|
{
|
||||||
|
while (b_matrix.Count <= d_struct.Index)
|
||||||
|
b_matrix.Add(null);
|
||||||
|
byte? state = 0;
|
||||||
|
for (var i = 0; i < d_struct.Bits.Length; i++)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
d_slice.arr.Length <= d_struct.Bits[i].ByteIndex ||
|
||||||
|
!d_slice.arr[d_struct.Bits[i].ByteIndex].HasValue
|
||||||
|
)
|
||||||
|
{
|
||||||
|
state = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
var curr_bit = (d_slice.arr[d_struct.Bits[i].ByteIndex].Value >> d_struct.Bits[i].BitIndex) & 1;
|
||||||
|
state += (byte)(curr_bit * Math.Pow(2, i));
|
||||||
|
}
|
||||||
|
b_matrix[d_struct.Index] = state;
|
||||||
|
}
|
||||||
|
sub_res.M = b_matrix.ToArray();
|
||||||
|
result.Add(sub_res);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
9
ApiServer/appsettings.Development.json
Normal file
9
ApiServer/appsettings.Development.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
ApiServer/appsettings.json
Normal file
10
ApiServer/appsettings.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
3624
ApiServer/bin/Debug/net5.0/ApiServer.deps.json
Normal file
3624
ApiServer/bin/Debug/net5.0/ApiServer.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ApiServer/bin/Debug/net5.0/ApiServer.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/ApiServer.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/ApiServer.exe
Normal file
BIN
ApiServer/bin/Debug/net5.0/ApiServer.exe
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/ApiServer.pdb
Normal file
BIN
ApiServer/bin/Debug/net5.0/ApiServer.pdb
Normal file
Binary file not shown.
10
ApiServer/bin/Debug/net5.0/ApiServer.runtimeconfig.dev.json
Normal file
10
ApiServer/bin/Debug/net5.0/ApiServer.runtimeconfig.dev.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"additionalProbingPaths": [
|
||||||
|
"C:\\Users\\Admin\\.dotnet\\store\\|arch|\\|tfm|",
|
||||||
|
"C:\\Users\\Admin\\.nuget\\packages",
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
|
||||||
|
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
13
ApiServer/bin/Debug/net5.0/ApiServer.runtimeconfig.json
Normal file
13
ApiServer/bin/Debug/net5.0/ApiServer.runtimeconfig.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net5.0",
|
||||||
|
"framework": {
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "5.0.0"
|
||||||
|
},
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
ApiServer/bin/Debug/net5.0/Config/Colors.json
Normal file
3
ApiServer/bin/Debug/net5.0/Config/Colors.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"red" : "#ff0000"
|
||||||
|
}
|
87
ApiServer/bin/Debug/net5.0/Config/Discret/all.json
Normal file
87
ApiServer/bin/Debug/net5.0/Config/Discret/all.json
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Âîäà êàìåðû (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Âîäà øòîêà (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
823
ApiServer/bin/Debug/net5.0/Config/Discret/default.json
Normal file
823
ApiServer/bin/Debug/net5.0/Config/Discret/default.json
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Дискрет №0",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "P1 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "P2 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Вода камеры",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Вода штока",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Дверь - А",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Дверь - Б",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Дверь - В",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Дверь - Г",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Дверь - Д",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Люк",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "Пенал",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Упоры",
|
||||||
|
"state_struct": "out_in_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Прижимы",
|
||||||
|
"state_struct": "spinn_clamp_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумный выключатель",
|
||||||
|
"state_struct": "none_on_off_err_3_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "\"Автоматика\"",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "БПС",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Соленоид",
|
||||||
|
"state_struct": "none_err_const_puls_1_2",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "ARPW",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "ДВН",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "SZO",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "ДУ-260",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "ДУ-100",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "ДУ-32",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Шток вверху",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Шток внизу",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Плохой вакуум",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Напряжение аварийной сигнализации",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Взрывной клапан",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Ключ УП в положении \"Автоматика\"",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "off_on_err",
|
||||||
|
"state_struct": "Реле \"Авария источника\"",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Сброс звуковой сигнализации",
|
||||||
|
"state_struct": "spinn_press",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Вакуум по ЭКМВ",
|
||||||
|
"state_struct": "have_no_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 42,
|
||||||
|
"name": "Реле \"Имитация тока дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Реле \"АУ током дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Реле \"Имитация напряжения дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Реле \"Имитация вакуума печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "Реле \"Имитация T воды кристаллизатора\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 47,
|
||||||
|
"name": "Реле \"Имитация T воды вакуумкамеры\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Реле \"Имитация T воды штока\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "Реле 1 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Реле 2 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Реле 3 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Реле 4 \"Контроль метрологии\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Реле 5 \"Измерение изоляции (соленоид)\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Реле \"АУ штоком\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Реле \"Включение Uкалибровки\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Реле \"Движение штока вверх\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "УП в положении КЗ",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Нет питания, включено \"резервное\" UPS",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Вода подставки",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Реле \"Разрешение на вакуумирование печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Низкий заряд аккумулятора UPS",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Источник: +24В",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Реле \"Движение штока вниз\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Проверка источника",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Станция",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Постоянное U=220В",
|
||||||
|
"state_struct": "no_have",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Источник готов",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Авария привода",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Реле \"Напуск газа в печь\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Реле \"АУ током дуги ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Готовность привода",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 78,
|
||||||
|
"name": "Реле \"Авария источника ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 79,
|
||||||
|
"name": "Клапан подачи аргона",
|
||||||
|
"state_struct": "close_open_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 95,
|
||||||
|
"name": "Разрешение на вкл. вакуумного выключателя",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 57,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
127
ApiServer/bin/Debug/net5.0/Config/Discret/power_new.json
Normal file
127
ApiServer/bin/Debug/net5.0/Config/Discret/power_new.json
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"power_new": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Àâàðèéíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Ñòàíöèÿ âêëþ÷åíà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Ïðîáîé òèðèñòîðà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "Ìàêñ. òîê âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Ïåðåãðóçêà âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Ðåëå ìàêñèìàëüíîãî òîêà",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 72,
|
||||||
|
"name": "Íåèñïðàâíîñòü ÓÇÏ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 73,
|
||||||
|
"name": "Íåèñïðàâíîñòü èñòî÷íèêà ïèòàíèÿ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Ãîòîâíîñòü èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Ïåðåãðåâ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 77,
|
||||||
|
"name": "Ïðåäóïðåäèòåëüíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
13
ApiServer/bin/Debug/net5.0/Config/Metrics.json
Normal file
13
ApiServer/bin/Debug/net5.0/Config/Metrics.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"кА": false,
|
||||||
|
"В": false,
|
||||||
|
"А": false,
|
||||||
|
"гр.С": false,
|
||||||
|
"мм": false,
|
||||||
|
"мкм.рт.ст": true,
|
||||||
|
"м^3/ч": false,
|
||||||
|
"кгс/см^2": false,
|
||||||
|
"мм.рт.ст": true,
|
||||||
|
"МВт": false,
|
||||||
|
"Гц": true
|
||||||
|
}
|
56
ApiServer/bin/Debug/net5.0/Config/Protect/all.json
Normal file
56
ApiServer/bin/Debug/net5.0/Config/Protect/all.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": { "parent": [ "default" ] },
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": { "parent": [ "default" ] },
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
356
ApiServer/bin/Debug/net5.0/Config/Protect/default.json
Normal file
356
ApiServer/bin/Debug/net5.0/Config/Protect/default.json
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Alarm ! Zero signal !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":1,
|
||||||
|
"name": "Шток внизу !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":2,
|
||||||
|
"name": "Шток вверху !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Uдуги > Uмакс !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Uдуги < Uмин !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Qводы кристаллизатора !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "P2 воды кристаллизатора ЭКМ отметка -5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Вода штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":10,
|
||||||
|
"name": "tводы штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":11,
|
||||||
|
"name": "Вода вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":12,
|
||||||
|
"name": "tводы вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":13,
|
||||||
|
"name": "Ухудшение вакуума !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Нет готовности к токовой операции!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Дверь А открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Дверь Б открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Дверь В открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Дверь Г открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"name": "Дверь Д открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "Прижимы !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "Упоры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "Люк открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"name": "Пенал открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "Вода подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Нет U аварийной сигнализации !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "Плохой вакуум !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"name": "tводы подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "Давление газа в печи выше атмосферного !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Вода фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Отключение ВВ!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"name": "tводы фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"name": "P воды поддона !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Отсутствует связь с сервером 1 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"name": "Отсутствует связь с сервером 2 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"name": "Отсутствует связь с контроллером ГМП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Неисправность в работе ARPW !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Неисправность в работе ДВН !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Неисправность в работе ВВ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Неисправность в работе ДУ-260 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Неисправность в работе ДУ-100 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Неисправность в работе ДУ-32 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Неисправность в работе БПС !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Неисправность в режиме работы соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Нет питания сети !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Нет сигнала датчика (МЕТРАН отм.+1.5м) !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "БПС ГМП отключен!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Неисправность источника питания ВДП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Нет принимаемых данных !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Разрыв дуги !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Нет готовности привода!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Alarm ! Signal A1_22 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Короткое замыкание !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Переключатель УП не в положении АВТ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "Проверить перевод разьединителей печей!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Снижение протока воды штока!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Снижение протока воды камеры!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Снижение протока воды фланца!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Запрет зажигания дуги по времени вакуумирования!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "Отсутствует ток соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Отсутствует перемещение штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Отсутствует перемещение штока > 15 минут!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Запрет на включение вакуумных насосов !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "ВДП развакуумирована !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Смещение начала архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Смещение конца архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Alarm ! Signal A1_43 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Alarm ! Signal A1_44 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
265
ApiServer/bin/Debug/net5.0/Config/StateStruct.json
Normal file
265
ApiServer/bin/Debug/net5.0/Config/StateStruct.json
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
{
|
||||||
|
"protect_1": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отсутствует",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Сработало",
|
||||||
|
"color": "#ffff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Сброс тока",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"have_no_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"open_close_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"close_open_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"out_in_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Не введ",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Введ",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_clamp_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Приж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_press": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Наж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_3_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_err_const_puls_1_2": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Пост",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Пульс",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_open_close_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
94
ApiServer/bin/Debug/net5.0/Config/TechCycle.json
Normal file
94
ApiServer/bin/Debug/net5.0/Config/TechCycle.json
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"tech_cycle_conf": [
|
||||||
|
{
|
||||||
|
"index": -1,
|
||||||
|
"name": "Конец технологического цикла (ручной)",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Конец технологического цикла",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Выгрузка-загрузка",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Вакуумирование на приварку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Приварка",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Охлаждение приварки",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Осмотр приварки",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Вакуумирование на плавку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Разведение ванны",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Плавка (основной режим)",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "ВУР",
|
||||||
|
"color": "#ff00ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Охлаждение слитка",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Выгрузка комплекта",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумирование на оплавление",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Оплавление",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Охлаждение оплавыша",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Слив металла",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Проверка защит",
|
||||||
|
"color": "#00ffff"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
56
ApiServer/bin/Debug/net5.0/Config/analog/all.json
Normal file
56
ApiServer/bin/Debug/net5.0/Config/analog/all.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": { "parent": [ "default" ] },
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": { "parent": [ "default" ] },
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
380
ApiServer/bin/Debug/net5.0/Config/analog/default.json
Normal file
380
ApiServer/bin/Debug/net5.0/Config/analog/default.json
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Ток дуги",
|
||||||
|
"s_name": "I д",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 0, 1 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Напряжение дуги",
|
||||||
|
"s_name": "U д",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 2, 3 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Ток рабочего двигателя",
|
||||||
|
"s_name": "I рд",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 4, 5 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "U рабочего двигателя",
|
||||||
|
"s_name": "U рд",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 6, 7 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Ток соленоида",
|
||||||
|
"s_name": "I сол",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 8, 9 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "U соленоида",
|
||||||
|
"s_name": "U сол",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 10, 11 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Ток задания",
|
||||||
|
"s_name": "I рз",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 12, 13 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "t кристаллизатора на входе",
|
||||||
|
"s_name": "t кр.вых",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 14, 15 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "t кристаллизатора на выходе",
|
||||||
|
"s_name": "t кр.вх",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 16, 17 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "t вакуум-камеры",
|
||||||
|
"s_name": "t вак-кам",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 18, 19 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "t штока",
|
||||||
|
"s_name": "t шт",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 20, 21 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "U контроля",
|
||||||
|
"s_name": "U конт",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 22, 23 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Перемещение",
|
||||||
|
"s_name": "S шт",
|
||||||
|
"metric": "мм",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 24, 25 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Вакуум",
|
||||||
|
"s_name": "Вакуум",
|
||||||
|
"metric": "мкм.рт.ст",
|
||||||
|
"mul": -1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 26, 27 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Изоляция шток-крышка",
|
||||||
|
"s_name": "R шт-кр",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 28, 29 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Изоляция крышка-камера",
|
||||||
|
"s_name": "R кр-кам",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 30, 31 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Расход воды",
|
||||||
|
"s_name": "Q в.кр",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 32, 33 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Капельные замыкания",
|
||||||
|
"s_name": "Кап.зам.",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 34, 35 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Усреднённая ширина импульсов КЗ",
|
||||||
|
"s_name": "Кап.зым.",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 36, 37 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"name": "Проток воды фланца",
|
||||||
|
"s_name": "Qв. фл.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 38, 39 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "Проток воды штока",
|
||||||
|
"s_name": "Qв. шт.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 40, 41 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "Давление воды крист.+1,5",
|
||||||
|
"s_name": "P в.кр",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 42, 43 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "Проток воды камеры",
|
||||||
|
"s_name": "Qв. кам.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 44, 45 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"name": "Ток задания источника(САУ)",
|
||||||
|
"s_name": "I з.ист САУ",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 58, 59 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "",
|
||||||
|
"s_name": "",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 60, 61 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "ПИД-рег. основная уставка",
|
||||||
|
"s_name": "ПИД-осн",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 62, 63 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "ПИД-рег. макс. скорость",
|
||||||
|
"s_name": "ПИД-макс",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 64, 65 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"name": "t фланца вакуум-камеры",
|
||||||
|
"s_name": "t фл.",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 66, 67 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "t подставки",
|
||||||
|
"s_name": "t под.",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 68, 69 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Проток воды подставки",
|
||||||
|
"s_name": "Qв. под.",
|
||||||
|
"metric": "м^3/ч",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 70, 71 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Задание соленоида",
|
||||||
|
"s_name": "Зад. сол.",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 72, 73 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"name": "Ток задания источника(преобраз.)",
|
||||||
|
"s_name": "I з.ист. преоб.",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 74, 75 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"name": "Резерв",
|
||||||
|
"s_name": "",
|
||||||
|
"metric": "УЕ",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 76, 77 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Вакуум по МЕТРАН-1200",
|
||||||
|
"s_name": "МЕТРАН-1200",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.1,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 78, 79 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"name": "Вакуум по МЕТРАН-18,75",
|
||||||
|
"s_name": "МЕТРАН-18,25",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.001,
|
||||||
|
"show_default": true,
|
||||||
|
"bytes": [ 80, 81 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"name": "Давление газа в баллоне",
|
||||||
|
"s_name": "P г.балл.",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 82, 83 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Давление воды поддона",
|
||||||
|
"s_name": "P в.подд.",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 84, 85 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Задание тока дуги (ЦАП)",
|
||||||
|
"s_name": "Зад.I, ЦАП",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 86, 87 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Задкние скорости рабочего двигателя",
|
||||||
|
"s_name": "Зад.ск.раб.дв",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 88, 89 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Ток двигателя насоса ARPW",
|
||||||
|
"s_name": "I дв. ARPW",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": [ 90, 91 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Энергия плавильного пролёта",
|
||||||
|
"s_name": "Эн.пролёта, МВт",
|
||||||
|
"metric": "МВт",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 92, 93 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Среднее напряжение плавления",
|
||||||
|
"s_name": "U средн, В",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": [ 94, 95 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 42,
|
||||||
|
"name": "ГМП: ток катушки 1",
|
||||||
|
"s_name": "I кат1 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 96, 97 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "ГМП: ток катушки 2",
|
||||||
|
"s_name": "I кат2 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 98, 99 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "ГМП: ток катушки 3",
|
||||||
|
"s_name": "I кат3 ГМП",
|
||||||
|
"metric": "А",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 100, 101 ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "ГМП: частота",
|
||||||
|
"s_name": "Част. ГМП",
|
||||||
|
"metric": "Гц",
|
||||||
|
"mul": 1,
|
||||||
|
"bytes": [ 102, 103 ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
110
ApiServer/bin/Debug/net5.0/Config/analog/global.json
Normal file
110
ApiServer/bin/Debug/net5.0/Config/analog/global.json
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{
|
||||||
|
"00": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Общий: t воды водооборота",
|
||||||
|
"s_name": "t в",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Общий: Давление воды водооборота",
|
||||||
|
"s_name": "P в",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Общий: Давление масла в бутыли",
|
||||||
|
"s_name": "P масла бут",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Общий: t воздуха в машинном зале",
|
||||||
|
"s_name": "t машзал",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Общий: t воздуха на улице",
|
||||||
|
"s_name": "t улица",
|
||||||
|
"metric": "гр.С",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Общий: Атмосферное давление",
|
||||||
|
"s_name": "p атм",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Общий: Давление масла в магистрали",
|
||||||
|
"s_name": "P масла маг",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Общий: Давление воды водооборота-К90",
|
||||||
|
"s_name": "P в-90",
|
||||||
|
"metric": "кгс/см^2",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Скорость штока за 1 мин",
|
||||||
|
"s_name": "V шт",
|
||||||
|
"metric": "мм/мин",
|
||||||
|
"mul": 0.01,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Вакуум по МЕТРАН 1,2",
|
||||||
|
"s_name": "МЕТРАН1,2",
|
||||||
|
"metric": "мм.рт.ст",
|
||||||
|
"mul": 0.001,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "ВС: Ток дуги",
|
||||||
|
"s_name": "ВС:I д",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "ВС: Напряжение дуги",
|
||||||
|
"s_name": "ВС:U д",
|
||||||
|
"metric": "В",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "ВС: Ток задания",
|
||||||
|
"s_name": "ВС:I рз",
|
||||||
|
"metric": "кА",
|
||||||
|
"mul": 0.1,
|
||||||
|
"bytes": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
1
ApiServer/bin/Debug/net5.0/Config/bufer.json
Normal file
1
ApiServer/bin/Debug/net5.0/Config/bufer.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
16
ApiServer/bin/Debug/net5.0/Config/config.json
Normal file
16
ApiServer/bin/Debug/net5.0/Config/config.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"name": "STP 1",
|
||||||
|
"ip": "10.10.45.151",
|
||||||
|
"port": 1070,
|
||||||
|
"dir": "Y:\\data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "STP 2",
|
||||||
|
"ip": "10.10.45.152",
|
||||||
|
"port": 1070,
|
||||||
|
"dir": "Z:\\data"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
ApiServer/bin/Debug/net5.0/DataClient.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/DataClient.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/DataClient.pdb
Normal file
BIN
ApiServer/bin/Debug/net5.0/DataClient.pdb
Normal file
Binary file not shown.
249
ApiServer/bin/Debug/net5.0/DataClient.xml
Normal file
249
ApiServer/bin/Debug/net5.0/DataClient.xml
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>DataClient</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:DataClient.NETClient">
|
||||||
|
<summary>Класс для связи с СТП сервером по проботоколу TCP.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.NETClient.Status">
|
||||||
|
<summary>
|
||||||
|
Статус процесса выполнения запроса.
|
||||||
|
Предполагается использовать только на больших
|
||||||
|
загрузках и в ассинхронных задачах
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:DataClient.NETClient.Code">
|
||||||
|
<summary>Коды для работы с СТП.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.version">
|
||||||
|
<summary>Версия.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.download">
|
||||||
|
<summary>Загрузка.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.pasp_download">
|
||||||
|
<summary>Загрузка паспорта.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.server_time">
|
||||||
|
<summary>Время сервера.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.keep_alive">
|
||||||
|
<summary>Оставаться на связи.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.download_nh">
|
||||||
|
<summary>Загрузка (nh).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.dir_browse">
|
||||||
|
<summary>Структура директории.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:DataClient.NETClient.Code.by_name">
|
||||||
|
<summary>Поиск команды по имени.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.NETClient.Ip">
|
||||||
|
<summary>IP адрес СТП.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.NETClient.Port">
|
||||||
|
<summary>Порт СТП.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.NETClient.RetryCount">
|
||||||
|
<summary>Количество попыток переподключения.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.NETClient.RetryInterval">
|
||||||
|
<summary>Время в секундах между попытками переподключения.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.#ctor">
|
||||||
|
<summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.#ctor(System.String,System.Int32)">
|
||||||
|
<summary>Конструктор класса NetClient с параметрами.</summary><param name="ip">Ip-адрес сервера.</param><param name="port">Порт сервера.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.ReceiveBytesFull(System.Net.Sockets.NetworkStream)">
|
||||||
|
<summary>Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.</summary><param name="ns">Открытый сетевой поток.</param><returns>Массив байт.</returns><exception cref="T:System.InvalidOperationException">
|
||||||
|
Соединение с сервером закрыто.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Стрим недоступен для Чтения.
|
||||||
|
</exception><exception cref="T:System.TimeoutException">
|
||||||
|
Сервер сбросил соединение.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.ReceiveBytesFixSize(System.Net.Sockets.NetworkStream,System.UInt32)">
|
||||||
|
<summary>Получение определенного количество байт с сервера.</summary><param name="ns">Открытый сетевой поток.</param><param name="size">Кол-во получаемых байт.</param><returns>Массив байт. Может быть меньше заданного количества.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Размер байт не должен равняться нулю.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Стрим недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.TimeoutException">
|
||||||
|
Сервер сбросил соединение.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.SendBytes(System.Net.Sockets.NetworkStream,System.Byte[])">
|
||||||
|
<summary>Отправка массива байт на СТП.</summary><param name="ns">Открытый сетевой поток.</param><param name="arr">Массив байт.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Размер байт не должен равняться нулю.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Стрим недоступен для записи.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.CreateCode(System.UInt32,System.String,System.Byte[],System.Byte[])">
|
||||||
|
<summary>Формирование массива байт на отправку.</summary><param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param><param name="val">Передаваемая строка.</param><param name="prefix">Байты перед передаваемой строкой.</param><param name="postfix">Байты после передаваемой строкой.</param><returns>Массив байт для отправки на СТП.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Connect">
|
||||||
|
<summary>Открытие соединения к серверу.</summary><remarks>Информирует только о подключении к серверу. Исключения опускает.</remarks><returns>Состояние подключения.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Connected">
|
||||||
|
<summary>Проверка подключения.</summary><returns>Состояние подключения.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Close">
|
||||||
|
<summary>Закрыть подключение.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.SendBytes(System.Byte[])">
|
||||||
|
<summary>Отправка массива байт на СТП.</summary><param name="send">Массив байт для отправки.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Размер байт не должен равняться нулю.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.ReceiveBytes">
|
||||||
|
<summary>Получение неизвестного количество байт.</summary><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.ReceiveBytes(System.UInt32)">
|
||||||
|
<summary>Получение определенного количество байт.</summary><param name="size">Количество байт.</param><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.My_Connect">
|
||||||
|
<summary>Внутренняя функция для создания подключения.</summary><returns>Возвращает флаг необходимости закрытия соединения.</returns><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.My_Close(System.Boolean)">
|
||||||
|
<summary>Внетренняя функция для закрытия соединения.</summary><param name="needClose">Флаг о необходимости закрыть соединение.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.GetFile(DataClient.NETClient.Code,System.DateTime,System.Int32,System.Int32)">
|
||||||
|
<summary>Внутренняя функция получения файлов.</summary><param name="code">Код, который будет отправлен на сервер.</param><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><returns>Массив байт, соответствующий запрашиваемому файлу.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный код, для получения файла.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Download_NH(System.DateTime,System.Int32,System.Int32)">
|
||||||
|
<summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный код, для получения файла.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Download(System.DateTime,System.Int32,System.Int32)">
|
||||||
|
<summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный код, для получения файла.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_By_Name(System.String)">
|
||||||
|
<summary>Получение файла данных (байтами) с СТП.</summary><param name="val">Название команды.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив байт, соответствующий этой команде. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Dir_Browse(System.String)">
|
||||||
|
<summary>Получение структуры файлов и папок в запрашиваемой директории.</summary><param name="dir">Путь, структуру которого надо отобразить.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив строк. Полные пути к файлам и папкам. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный флаг окончания строки.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Server_Time">
|
||||||
|
<summary>Получение текущее время на сервере.</summary><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Текущее время на сервере.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный флаг окончания строки.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Version">
|
||||||
|
<summary>Получение текущую версию сервера.</summary><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>строку с названием версии сервера.</returns><exception cref="T:System.ArgumentException">
|
||||||
|
Неверный флаг окончания строки.
|
||||||
|
Неверный флаг во время получения файла.
|
||||||
|
</exception><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.NETClient.Full_Keep_Alive">
|
||||||
|
<summary>Отправка команды для поддержания соединения.</summary><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><exception cref="T:System.IO.IOException">
|
||||||
|
Предыдущий запрос не закончен.
|
||||||
|
Поток недоступен для записи.
|
||||||
|
</exception><exception cref="T:System.InvalidOperationException">
|
||||||
|
Не получилось соединиться с сервером.
|
||||||
|
</exception>
|
||||||
|
</member>
|
||||||
|
<member name="T:DataClient.STPClient">
|
||||||
|
<summary>Класс для связи с СТП. Содержит все инструменты, для получения данных.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.Config">
|
||||||
|
<summary>Чтение конфигурационнного файла и установка параметров по умолчанию.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.STPClient.UseServer">
|
||||||
|
<summary>Номер сервера, используемого по умолчанию.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.STPClient.ListServers">
|
||||||
|
<summary>Массив серверов, инициализированных в экземпляре класса.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:DataClient.STPClient.Server">
|
||||||
|
<summary> Текущий рабочий сервер </summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.CheckDataServer(System.String,System.Int32,System.String)">
|
||||||
|
<summary>
|
||||||
|
Проверка параметров сервера.
|
||||||
|
</summary>
|
||||||
|
<param name="ip">Ip адрес сервера СТП.</param>
|
||||||
|
<param name="port">Порт сервера СТП.</param>
|
||||||
|
<param name="dir">Путь к архивным данным.</param>
|
||||||
|
<returns>Результат проверки.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.AddServer(System.String,System.String,System.Int32,System.String)">
|
||||||
|
<summary>Добавление сервера в список серверов.</summary>
|
||||||
|
<param name="name">Название сервера</param>
|
||||||
|
<param name="ip">IP адресс сервера.</param>
|
||||||
|
<param name="port">Порт сервера.</param>
|
||||||
|
<param name="dir">Путь к архиву.</param>
|
||||||
|
<returns>Результат выполнения функции.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.RemoveServer(System.Int32)">
|
||||||
|
<summary>Удаление сервера из списка серверов по его номеру.</summary>
|
||||||
|
<param name="id">Номер сервера в списке серверов.</param>
|
||||||
|
<returns>Результат выполнения функции.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.#ctor">
|
||||||
|
<summary>Создание экземпляра класса.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:DataClient.STPClient.#ctor(System.String)">
|
||||||
|
<summary>Создание экземпляра класса с указанием конфигурационного файла.</summary>
|
||||||
|
<param name="confDir">Путь к файлу конфигурации.</param>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
BIN
ApiServer/bin/Debug/net5.0/ICSharpCode.SharpZipLib.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/ICSharpCode.SharpZipLib.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/NLog.Extensions.Logging.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/NLog.Extensions.Logging.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/NLog.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/NLog.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Debug/net5.0/Newtonsoft.Json.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/Newtonsoft.Json.dll
Normal file
Binary file not shown.
9
ApiServer/bin/Debug/net5.0/appsettings.Development.json
Normal file
9
ApiServer/bin/Debug/net5.0/appsettings.Development.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
ApiServer/bin/Debug/net5.0/appsettings.json
Normal file
10
ApiServer/bin/Debug/net5.0/appsettings.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
BIN
ApiServer/bin/Debug/net5.0/ref/ApiServer.dll
Normal file
BIN
ApiServer/bin/Debug/net5.0/ref/ApiServer.dll
Normal file
Binary file not shown.
3624
ApiServer/bin/Release/net5.0/ApiServer.deps.json
Normal file
3624
ApiServer/bin/Release/net5.0/ApiServer.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ApiServer/bin/Release/net5.0/ApiServer.dll
Normal file
BIN
ApiServer/bin/Release/net5.0/ApiServer.dll
Normal file
Binary file not shown.
BIN
ApiServer/bin/Release/net5.0/ApiServer.exe
Normal file
BIN
ApiServer/bin/Release/net5.0/ApiServer.exe
Normal file
Binary file not shown.
BIN
ApiServer/bin/Release/net5.0/ApiServer.pdb
Normal file
BIN
ApiServer/bin/Release/net5.0/ApiServer.pdb
Normal file
Binary file not shown.
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"additionalProbingPaths": [
|
||||||
|
"C:\\Users\\Admin\\.dotnet\\store\\|arch|\\|tfm|",
|
||||||
|
"C:\\Users\\Admin\\.nuget\\packages",
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
|
||||||
|
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
13
ApiServer/bin/Release/net5.0/ApiServer.runtimeconfig.json
Normal file
13
ApiServer/bin/Release/net5.0/ApiServer.runtimeconfig.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net5.0",
|
||||||
|
"framework": {
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "5.0.0"
|
||||||
|
},
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
ApiServer/bin/Release/net5.0/Config/Colors.json
Normal file
3
ApiServer/bin/Release/net5.0/Config/Colors.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"red" : "#ff0000"
|
||||||
|
}
|
87
ApiServer/bin/Release/net5.0/Config/Discret/all.json
Normal file
87
ApiServer/bin/Release/net5.0/Config/Discret/all.json
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Âîäà êàìåðû (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": {
|
||||||
|
"parent": [ "default" ],
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Âîäà øòîêà (ýêñï.)",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
823
ApiServer/bin/Release/net5.0/Config/Discret/default.json
Normal file
823
ApiServer/bin/Release/net5.0/Config/Discret/default.json
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Дискрет №0",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "P1 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "P2 воды кристаллизатора",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Вода камеры",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Вода штока",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Дверь - А",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Дверь - Б",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Дверь - В",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 46,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Дверь - Г",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Дверь - Д",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Люк",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "Пенал",
|
||||||
|
"state_struct": "open_close_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Упоры",
|
||||||
|
"state_struct": "out_in_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Прижимы",
|
||||||
|
"state_struct": "spinn_clamp_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумный выключатель",
|
||||||
|
"state_struct": "none_on_off_err_3_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 47,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "\"Автоматика\"",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "БПС",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Соленоид",
|
||||||
|
"state_struct": "none_err_const_puls_1_2",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "ARPW",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "ДВН",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "SZO",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 48,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "ДУ-260",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "ДУ-100",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "ДУ-32",
|
||||||
|
"state_struct": "none_open_close_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Шток вверху",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Шток внизу",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 49,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Плохой вакуум",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Напряжение аварийной сигнализации",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Взрывной клапан",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Ключ УП в положении \"Автоматика\"",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "off_on_err",
|
||||||
|
"state_struct": "Реле \"Авария источника\"",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Сброс звуковой сигнализации",
|
||||||
|
"state_struct": "spinn_press",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Вакуум по ЭКМВ",
|
||||||
|
"state_struct": "have_no_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 42,
|
||||||
|
"name": "Реле \"Имитация тока дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Реле \"АУ током дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Реле \"Имитация напряжения дуги\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Реле \"Имитация вакуума печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "Реле \"Имитация T воды кристаллизатора\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 47,
|
||||||
|
"name": "Реле \"Имитация T воды вакуумкамеры\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 51,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Реле \"Имитация T воды штока\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "Реле 1 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Реле 2 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Реле 3 \"Измерение изоляции\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Реле 4 \"Контроль метрологии\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Реле 5 \"Измерение изоляции (соленоид)\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Реле \"АУ штоком\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Реле \"Включение Uкалибровки\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 52,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Реле \"Движение штока вверх\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "УП в положении КЗ",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Нет питания, включено \"резервное\" UPS",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Вода подставки",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Реле \"Разрешение на вакуумирование печи\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Низкий заряд аккумулятора UPS",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Источник: +24В",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Реле \"Движение штока вниз\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Проверка источника",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Станция",
|
||||||
|
"state_struct": "none_on_off_err_4",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"skip": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Постоянное U=220В",
|
||||||
|
"state_struct": "no_have",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Источник готов",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Авария привода",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Реле \"Напуск газа в печь\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Реле \"АУ током дуги ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Готовность привода",
|
||||||
|
"state_struct": "no_have_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 78,
|
||||||
|
"name": "Реле \"Авария источника ВДП №46\"",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 79,
|
||||||
|
"name": "Клапан подачи аргона",
|
||||||
|
"state_struct": "close_open_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 95,
|
||||||
|
"name": "Разрешение на вкл. вакуумного выключателя",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 57,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
127
ApiServer/bin/Release/net5.0/Config/Discret/power_new.json
Normal file
127
ApiServer/bin/Release/net5.0/Config/Discret/power_new.json
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"power_new": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Àâàðèéíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 50,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Ñòàíöèÿ âêëþ÷åíà",
|
||||||
|
"state_struct": "no_yes",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 53,
|
||||||
|
"bit_index": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 66,
|
||||||
|
"name": "Ïðîáîé òèðèñòîðà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "Ìàêñ. òîê âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 68,
|
||||||
|
"name": "Ïåðåãðóçêà âûïðÿìèòåëüíîãî áëîêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 69,
|
||||||
|
"name": "Ðåëå ìàêñèìàëüíîãî òîêà",
|
||||||
|
"state_struct": "off_on_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 54,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 72,
|
||||||
|
"name": "Íåèñïðàâíîñòü ÓÇÏ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 73,
|
||||||
|
"name": "Íåèñïðàâíîñòü èñòî÷íèêà ïèòàíèÿ",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "Ãîòîâíîñòü èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_ok",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Ïåðåãðåâ èñòî÷íèêà",
|
||||||
|
"state_struct": "no_yes_err",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 77,
|
||||||
|
"name": "Ïðåäóïðåäèòåëüíàÿ ñèãíàëèçàöèÿ èñòî÷íèêà",
|
||||||
|
"state_struct": "off_on",
|
||||||
|
"bits": [
|
||||||
|
{
|
||||||
|
"byte_index": 55,
|
||||||
|
"bit_index": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
13
ApiServer/bin/Release/net5.0/Config/Metrics.json
Normal file
13
ApiServer/bin/Release/net5.0/Config/Metrics.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"кА": false,
|
||||||
|
"В": false,
|
||||||
|
"А": false,
|
||||||
|
"гр.С": false,
|
||||||
|
"мм": false,
|
||||||
|
"мкм.рт.ст": true,
|
||||||
|
"м^3/ч": false,
|
||||||
|
"кгс/см^2": false,
|
||||||
|
"мм.рт.ст": true,
|
||||||
|
"МВт": false,
|
||||||
|
"Гц": true
|
||||||
|
}
|
56
ApiServer/bin/Release/net5.0/Config/Protect/all.json
Normal file
56
ApiServer/bin/Release/net5.0/Config/Protect/all.json
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"01": { "parent": [ "default" ] },
|
||||||
|
"02": { "parent": [ "default" ] },
|
||||||
|
"03": { "parent": [ "default" ] },
|
||||||
|
"04": { "parent": [ "default" ] },
|
||||||
|
"05": { "parent": [ "default" ] },
|
||||||
|
"06": { "parent": [ "default" ] },
|
||||||
|
"07": { "parent": [ "default" ] },
|
||||||
|
"08": { "parent": [ "default" ] },
|
||||||
|
"09": { "parent": [ "default" ] },
|
||||||
|
"10": { "parent": [ "default" ] },
|
||||||
|
"11": { "parent": [ "default" ] },
|
||||||
|
"12": { "parent": [ "default" ] },
|
||||||
|
"13": { "parent": [ "default" ] },
|
||||||
|
"14": { "parent": [ "default" ] },
|
||||||
|
"15": { "parent": [ "default" ] },
|
||||||
|
"16": { "parent": [ "default" ] },
|
||||||
|
"17": { "parent": [ "default" ] },
|
||||||
|
"18": { "parent": [ "default" ] },
|
||||||
|
"19": { "parent": [ "default" ] },
|
||||||
|
"20": { "parent": [ "default" ] },
|
||||||
|
"21": { "parent": [ "default" ] },
|
||||||
|
"22": { "parent": [ "default" ] },
|
||||||
|
"23": { "parent": [ "default" ] },
|
||||||
|
"24": { "parent": [ "default" ] },
|
||||||
|
"25": { "parent": [ "default" ] },
|
||||||
|
"26": { "parent": [ "default" ] },
|
||||||
|
"27": { "parent": [ "default" ] },
|
||||||
|
"28": { "parent": [ "default" ] },
|
||||||
|
"29": { "parent": [ "default" ] },
|
||||||
|
"30": { "parent": [ "default" ] },
|
||||||
|
"31": { "parent": [ "default" ] },
|
||||||
|
"32": { "parent": [ "default" ] },
|
||||||
|
"33": { "parent": [ "default" ] },
|
||||||
|
"34": { "parent": [ "default" ] },
|
||||||
|
"35": { "parent": [ "default" ] },
|
||||||
|
"36": { "parent": [ "default" ] },
|
||||||
|
"37": { "parent": [ "default" ] },
|
||||||
|
"38": { "parent": [ "default" ] },
|
||||||
|
"39": { "parent": [ "default" ] },
|
||||||
|
"40": { "parent": [ "default" ] },
|
||||||
|
"41": { "parent": [ "default" ] },
|
||||||
|
"42": { "parent": [ "default" ] },
|
||||||
|
"43": { "parent": [ "default" ] },
|
||||||
|
"44": { "parent": [ "default" ] },
|
||||||
|
"45": { "parent": [ "default" ] },
|
||||||
|
"46": { "parent": [ "default" ] },
|
||||||
|
"47": { "parent": [ "default" ] },
|
||||||
|
"48": { "parent": [ "default" ] },
|
||||||
|
"49": { "parent": [ "default" ] },
|
||||||
|
"50": { "parent": [ "default" ] },
|
||||||
|
"91": { "parent": [ "default" ] },
|
||||||
|
"92": { "parent": [ "default" ] },
|
||||||
|
"93": { "parent": [ "default" ] },
|
||||||
|
"94": { "parent": [ "default" ] }
|
||||||
|
}
|
356
ApiServer/bin/Release/net5.0/Config/Protect/default.json
Normal file
356
ApiServer/bin/Release/net5.0/Config/Protect/default.json
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"default": {
|
||||||
|
"struct": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Alarm ! Zero signal !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":1,
|
||||||
|
"name": "Шток внизу !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":2,
|
||||||
|
"name": "Шток вверху !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Uдуги > Uмакс !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 4,
|
||||||
|
"name": "Uдуги < Uмин !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Qводы кристаллизатора !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "P2 воды кристаллизатора ЭКМ отметка -5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "P1 воды кристаллизатора ЭКМ отметка +1.5м !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Вода штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":10,
|
||||||
|
"name": "tводы штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":11,
|
||||||
|
"name": "Вода вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":12,
|
||||||
|
"name": "tводы вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index":13,
|
||||||
|
"name": "Ухудшение вакуума !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Нет готовности к токовой операции!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Дверь А открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Дверь Б открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Дверь В открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 18,
|
||||||
|
"name": "Дверь Г открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 19,
|
||||||
|
"name": "Дверь Д открыта !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 20,
|
||||||
|
"name": "Прижимы !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 21,
|
||||||
|
"name": "Упоры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 22,
|
||||||
|
"name": "Люк открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 23,
|
||||||
|
"name": "Пенал открыт !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 24,
|
||||||
|
"name": "Вода подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Нет U аварийной сигнализации !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 26,
|
||||||
|
"name": "Плохой вакуум !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 27,
|
||||||
|
"name": "tводы подставки !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 28,
|
||||||
|
"name": "Давление газа в печи выше атмосферного !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 29,
|
||||||
|
"name": "Вода фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 30,
|
||||||
|
"name": "Отключение ВВ!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 31,
|
||||||
|
"name": "tводы фланца вакуум-камеры !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 32,
|
||||||
|
"name": "P воды поддона !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 33,
|
||||||
|
"name": "Отсутствует связь с сервером 1 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 34,
|
||||||
|
"name": "Отсутствует связь с сервером 2 %s!*3",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 35,
|
||||||
|
"name": "Отсутствует связь с контроллером ГМП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 36,
|
||||||
|
"name": "Неисправность в работе ARPW !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 37,
|
||||||
|
"name": "Неисправность в работе ДВН !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 38,
|
||||||
|
"name": "Неисправность в работе ВВ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 39,
|
||||||
|
"name": "Неисправность в работе ДУ-260 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 40,
|
||||||
|
"name": "Неисправность в работе ДУ-100 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 41,
|
||||||
|
"name": "Неисправность в работе ДУ-32 !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 43,
|
||||||
|
"name": "Неисправность в работе БПС !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 44,
|
||||||
|
"name": "Неисправность в режиме работы соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 45,
|
||||||
|
"name": "Нет питания сети !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 46,
|
||||||
|
"name": "КВ рамы",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 48,
|
||||||
|
"name": "Нет сигнала датчика (МЕТРАН отм.+1.5м) !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 49,
|
||||||
|
"name": "БПС ГМП отключен!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 50,
|
||||||
|
"name": "Неисправность источника питания ВДП !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 51,
|
||||||
|
"name": "Нет принимаемых данных !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 52,
|
||||||
|
"name": "Разрыв дуги !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 53,
|
||||||
|
"name": "Нет готовности привода!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 54,
|
||||||
|
"name": "Alarm ! Signal A1_22 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 55,
|
||||||
|
"name": "Короткое замыкание !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 56,
|
||||||
|
"name": "Переключатель УП не в положении АВТ !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 57,
|
||||||
|
"name": "Проверить перевод разьединителей печей!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 58,
|
||||||
|
"name": "Снижение протока воды штока!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 59,
|
||||||
|
"name": "Снижение протока воды камеры!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 60,
|
||||||
|
"name": "Снижение протока воды фланца!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 61,
|
||||||
|
"name": "Запрет зажигания дуги по времени вакуумирования!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 62,
|
||||||
|
"name": "Отсутствует ток соленоида !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 63,
|
||||||
|
"name": "Отсутствует перемещение штока !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 64,
|
||||||
|
"name": "Отсутствует перемещение штока > 15 минут!",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 65,
|
||||||
|
"name": "Запрет на включение вакуумных насосов !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 67,
|
||||||
|
"name": "ВДП развакуумирована !",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 70,
|
||||||
|
"name": "Смещение начала архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 71,
|
||||||
|
"name": "Смещение конца архивации %s !*1",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 74,
|
||||||
|
"name": "",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 75,
|
||||||
|
"name": "Alarm ! Signal A1_43 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 76,
|
||||||
|
"name": "Alarm ! Signal A1_44 is set.",
|
||||||
|
"state_struct": "protect_1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
265
ApiServer/bin/Release/net5.0/Config/StateStruct.json
Normal file
265
ApiServer/bin/Release/net5.0/Config/StateStruct.json
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
{
|
||||||
|
"protect_1": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отсутствует",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Сработало",
|
||||||
|
"color": "#ffff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Сброс тока",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_yes": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Да",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"have_no_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"no_have": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Нет",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Есть",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on_err": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"off_on": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"open_close_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"close_open_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"out_in_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Не введ",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Введ",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_clamp_ok": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Приж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spinn_press": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Отж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Наж",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_3_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_on_off_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Вкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Выкл",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_err_const_puls_1_2": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Пост",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Пульс",
|
||||||
|
"color": "#00ff00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"none_open_close_err_4": [
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Неопр",
|
||||||
|
"color": "#ffffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Откр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Закр",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 3,
|
||||||
|
"name": "Авария",
|
||||||
|
"color": "#ff0000"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
94
ApiServer/bin/Release/net5.0/Config/TechCycle.json
Normal file
94
ApiServer/bin/Release/net5.0/Config/TechCycle.json
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"tech_cycle_conf": [
|
||||||
|
{
|
||||||
|
"index": -1,
|
||||||
|
"name": "Конец технологического цикла (ручной)",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"name": "Конец технологического цикла",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"name": "Выгрузка-загрузка",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 2,
|
||||||
|
"name": "Вакуумирование на приварку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 5,
|
||||||
|
"name": "Приварка",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 6,
|
||||||
|
"name": "Охлаждение приварки",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 7,
|
||||||
|
"name": "Осмотр приварки",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 8,
|
||||||
|
"name": "Вакуумирование на плавку",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 9,
|
||||||
|
"name": "Разведение ванны",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 10,
|
||||||
|
"name": "Плавка (основной режим)",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 11,
|
||||||
|
"name": "ВУР",
|
||||||
|
"color": "#ff00ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 12,
|
||||||
|
"name": "Охлаждение слитка",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 13,
|
||||||
|
"name": "Выгрузка комплекта",
|
||||||
|
"color": "#00ffff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 14,
|
||||||
|
"name": "Вакуумирование на оплавление",
|
||||||
|
"color": "#0000ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 15,
|
||||||
|
"name": "Оплавление",
|
||||||
|
"color": "#ff0000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 16,
|
||||||
|
"name": "Охлаждение оплавыша",
|
||||||
|
"color": "#00ff00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 17,
|
||||||
|
"name": "Слив металла",
|
||||||
|
"color": "#8500b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": 25,
|
||||||
|
"name": "Проверка защит",
|
||||||
|
"color": "#00ffff"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user