Compare commits
375 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50e76bd30c | |||
| 6f6559ce67 | |||
| 5c2f69b8d2 | |||
| 0f7ce076f9 | |||
| 127b4ba1de | |||
| 9e2ee7d5b6 | |||
| 2a0b3f7e72 | |||
| 36dc4171e5 | |||
| 29057c5431 | |||
| a1336f9918 | |||
| 7ded45280f | |||
| ef139a2365 | |||
| fe6498f6ed | |||
| 22ad46ab8c | |||
| e098409b83 | |||
| 083be20f02 | |||
| f7ff6629ce | |||
| 2a4c0e8335 | |||
| bd1488bc02 | |||
| bab9bf504a | |||
| c7f7c4f9c8 | |||
| 36e0927bd1 | |||
| 7b132793d0 | |||
| d01fcf7578 | |||
| 539ed2508d | |||
| cacae4eebf | |||
| 34e31666cd | |||
| 3b0dd98018 | |||
| 76fdf01d38 | |||
| 7918787ac6 | |||
| e797afabcb | |||
| c31edb94d5 | |||
| 86fd710aaa | |||
| f1f8f3aa97 | |||
| 83d6f40491 | |||
| 21cb4050b0 | |||
| 027eed8770 | |||
| 43de959bca | |||
| 5a56d53d90 | |||
| 89b0ce5f96 | |||
| e57d16d690 | |||
| fe25ae54e6 | |||
| 614acd2e40 | |||
| d70474c01f | |||
| 045dd808e5 | |||
| 92cb66d539 | |||
| 941535056d | |||
| f6d794d90c | |||
| 1f769677d1 | |||
| 9de1286290 | |||
| 59bacaa1a6 | |||
| abc8564f2f | |||
| 8bfd294525 | |||
| 47119e7828 | |||
| a8dbf3d15d | |||
| 7bbe807359 | |||
| 5884f229b1 | |||
| 8842111125 | |||
| 7110d05782 | |||
| fa41a5f577 | |||
| e09ca359dd | |||
| e01731685e | |||
| 9a9fa64200 | |||
| 83492b3a00 | |||
| 954224c80f | |||
| 64fbb2e106 | |||
| 95559497af | |||
| 71667b87a9 | |||
| 6919827661 | |||
| 76044293af | |||
| bc817fcbf6 | |||
| 45e62c635f | |||
| 0440202342 | |||
| 9a0705130a | |||
| bdf80680c2 | |||
| 729fa17209 | |||
| bf6e16a4d6 | |||
| e9af483682 | |||
| 5ee41656b7 | |||
| f1aff9393f | |||
| 2e745a53b7 | |||
| 34651b7c7c | |||
| 24db3c589e | |||
| 31f8e90325 | |||
| a1284af386 | |||
| 6aa6df7e39 | |||
| 9aa360bb5f | |||
| 19951eeb7c | |||
| 2841738be8 | |||
| 5a3e8c297a | |||
| a2fbaf9a61 | |||
| 1f8b751d0f | |||
| 24d8986a50 | |||
| 9fa289194f | |||
| 152a5489ee | |||
| 5a0518af42 | |||
| 878bf9e229 | |||
| a9843c3a5b | |||
| d4cfe8d27c | |||
| 8e03c97f8f | |||
| f9e9234d55 | |||
| 5122bb5b79 | |||
| 5091401096 | |||
| 2907387e09 | |||
| 11d5d547f6 | |||
| 885742bb88 | |||
| 81037fa8b1 | |||
| 1f04b99414 | |||
| 0eab7c119b | |||
| bf9bb455af | |||
| f36143336f | |||
| 2eb2440204 | |||
| cd2cb99bd8 | |||
| b1333263c2 | |||
| 2d8a9b9ea6 | |||
| 7c999c712b | |||
| 1ee0d5add8 | |||
| 548f36ccf8 | |||
| 3ed4fc8312 | |||
| 67eb8a9de7 | |||
| 1914658e5c | |||
| e2c1a6ef19 | |||
| 747ac452d9 | |||
| 54930860bd | |||
| 0e89edbfb8 | |||
| db320d3fb1 | |||
| 04df04d15c | |||
| 60bddba24f | |||
| 01e7f87c82 | |||
| daa8f42762 | |||
| 5205593f9f | |||
| 9fe9ffa736 | |||
| 12a3bde770 | |||
| 1f04efa0ee | |||
| 9a87ddee9f | |||
| 7ebf5013b3 | |||
| 57a60f9d12 | |||
| aa03bd0a1a | |||
| 9c54f3aaa9 | |||
| 093e50b006 | |||
| 37ef6055dc | |||
| 5fbbb5e61f | |||
| 0ba2c8305c | |||
| 7d1f9b4d4c | |||
| 72a762b24c | |||
| eeeeba88a4 | |||
| e85bccf0b1 | |||
| 79035f49d2 | |||
| 38cbb34921 | |||
| 3ef60f8ead | |||
| 3db4f8ded4 | |||
| fe972b16dd | |||
| 9a0e5729bf | |||
| cc2dd06c53 | |||
| da2839b3b2 | |||
| a540ef1768 | |||
| b3d0be026a | |||
| 604e1c8f8e | |||
| 4d210ddf9b | |||
| b6dbe49a47 | |||
| 782ea9f03e | |||
| 666feefbd1 | |||
| 3172febf24 | |||
| d0e1b138f2 | |||
| 8a5035b23b | |||
| b603072618 | |||
| 8f293b8fa9 | |||
| 3d0e261ceb | |||
| ad7abfa4b0 | |||
| 93e767563f | |||
| 34702f322d | |||
| 1d8e405862 | |||
| 0f7e94b758 | |||
| 68d8ff4480 | |||
| d15719c1bd | |||
| c4faa9b6cc | |||
| cbd3561cb5 | |||
| 4725f63181 | |||
| 2f753cc8c4 | |||
| 2c8e54c9a6 | |||
| 0153bd1759 | |||
| ac9fc3ddd2 | |||
| ffca754194 | |||
| fc0a3d64af | |||
| 4ed3a26768 | |||
| 1a3d2fc733 | |||
| 631ae60294 | |||
| ad1a53c4fc | |||
| b2a300a7a1 | |||
| 1b76c379c4 | |||
| c530a9823c | |||
| c47b7c0c57 | |||
| f194225bdc | |||
| 274cfdfc6b | |||
| 4a2d40308c | |||
| 3f412e9e17 | |||
| 59eb4b2357 | |||
| 0849871914 | |||
| 6c9bfacf6f | |||
| 1cf33caac3 | |||
| a67381c9b8 | |||
| 57baeaf849 | |||
| 24a8b7db12 | |||
| 8163e6867b | |||
| cbb9a758b1 | |||
| 71cbab86de | |||
| f650b4a1d2 | |||
| 32d8a52c6d | |||
| 78e7af66e2 | |||
| 5ef2f30938 | |||
| eaca7781cd | |||
| dfb6b5b4da | |||
| fc04bf50f5 | |||
| f9ce06f2b1 | |||
| a356169539 | |||
| 12ad1388b9 | |||
| 344f976017 | |||
| a970592c12 | |||
| 40a7a40678 | |||
| 490c95ac9c | |||
| 1536042a38 | |||
| a2c019837a | |||
| 4280254535 | |||
| cffb93d09d | |||
| 72a5ff1879 | |||
| 2ac7fa4361 | |||
| a09b593fb8 | |||
| 9a36d1568a | |||
| ac212a3a6e | |||
| b8b64189fc | |||
| 5be2108efb | |||
| eac94482b9 | |||
| 67298b0899 | |||
| 4b346d8ba7 | |||
| 0b47c548f8 | |||
| fe518b2ce7 | |||
| b69927bc70 | |||
| dc8f2d6b8d | |||
| bb4ac545a0 | |||
| b60fa9b07e | |||
| 5789360908 | |||
| c9c1f20f9e | |||
| 22c25ee2bb | |||
| c7018202c3 | |||
| 134f891f03 | |||
| f073e37254 | |||
| 14dfcf35c7 | |||
| eebbd98280 | |||
| 8e0821ca72 | |||
| 1b869c4408 | |||
| 189b29540b | |||
| 40ff5dae6f | |||
| fac46ce12e | |||
| c9efa885d9 | |||
| 21a262b3fb | |||
| 8e4b2d5913 | |||
| 0b6c5475bd | |||
| c0a2084edf | |||
| f385141d05 | |||
| abba69d0d7 | |||
| 38311df33a | |||
| 7a41ce29fa | |||
| 2aa6112113 | |||
| 83341c6004 | |||
| 00c5b8b97a | |||
| 7501ee38ec | |||
| f1b3a90c2e | |||
| 4d847c2add | |||
| 53a0084df1 | |||
| 9f6ebc84bf | |||
| bc54666dbd | |||
| b7fd90d300 | |||
| bc7a45f514 | |||
| 6059670422 | |||
| 3d616d83b0 | |||
| 81bf6a308b | |||
| b0ffae1969 | |||
| 4926394bfb | |||
| 381adc93a5 | |||
| ea29ef5f92 | |||
| 967846f83d | |||
| 3ed92738d2 | |||
| a4ce9b63a5 | |||
| 939d37eb63 | |||
| 47579dc6af | |||
| ba2359469d | |||
| 45c25b7835 | |||
| fbc5e09f04 | |||
| df9e5fc477 | |||
| 9ad36718bb | |||
| 147c64f88a | |||
| 6154e5fa14 | |||
| 8fc103563d | |||
| f861534e01 | |||
| fe4d3a1635 | |||
| 854b28f588 | |||
| ba6894e15d | |||
| 617802ddf6 | |||
| ee6fc599d8 | |||
| 9bdcb6ef14 | |||
| 648ef062c5 | |||
| a5519a7e23 | |||
| 6bd0d8ef96 | |||
| de3c615801 | |||
| 0ccab81063 | |||
| 695f363b88 | |||
| 30ad2fc050 | |||
| 7e464a8638 | |||
| 28444f60c0 | |||
| ead221b0ac | |||
| c864cec1d4 | |||
| 48d973fc01 | |||
| ae87d3cd07 | |||
| dd7ca930ae | |||
| 83e2ab062d | |||
| 69629c257d | |||
| b0aa56d06d | |||
| 302c74c64e | |||
| 7578bc4b5b | |||
| 9f05b65ca6 | |||
| b6dc59ea93 | |||
| 45ea2a309e | |||
| fbe3f56bc3 | |||
| 73124002a6 | |||
| 8d31628cc2 | |||
| ee11717644 | |||
| 4aec0ca0d9 | |||
| f7fdfd7f55 | |||
| 7d6cdeb612 | |||
| b85ed71319 | |||
| a6a078faac | |||
| b8462438c1 | |||
| 7a0099336c | |||
| 490c4ed21b | |||
| c44465430d | |||
| 9c427d23a3 | |||
| 6f1e429c4e | |||
| d6d5c10517 | |||
| 89ee203461 | |||
| 50d63545ba | |||
| 3a0ad9db97 | |||
| 2a6410ffdc | |||
| 236443b777 | |||
| d2d20d16a2 | |||
| 272f0823af | |||
| bd1994e6ec | |||
| 5ad7b7990c | |||
| e16fc55c57 | |||
| e77887153d | |||
| 7af6a9726a | |||
| 64e8bd0331 | |||
| fb16f616e5 | |||
| dd869ef966 | |||
| 8fdf8b74c4 | |||
| 256895ad04 | |||
| 6855503714 | |||
| c8773d1418 | |||
| 140599cd1c | |||
| e772745253 | |||
| d487ca5f60 | |||
| 53d0b16205 | |||
| 46dbf00660 | |||
| 7e2649efeb | |||
| 0ab280076f | |||
| 456481e65a | |||
| f28cc72be0 | |||
| 307303f99c | |||
| 9980358636 | |||
| 58c1ef1788 | |||
| fb2f6ac315 | |||
| 8315a632bf | |||
| 9b4119451f | |||
| 65c849315f | |||
| 28198b434f | |||
| 7173eb749f |
@@ -21,3 +21,9 @@ Output/
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
/ConsoleApp1
|
/ConsoleApp1
|
||||||
/WindowsFormsApp1
|
/WindowsFormsApp1
|
||||||
|
!Thermo.Active/wwwroot/thermoprophet/colored/_last.jpg
|
||||||
|
Thermo.Active/wwwroot/thermoprophet/colored/*.jpg
|
||||||
|
!Thermo.Active/wwwroot/thermoprophet/original/_last.jpg
|
||||||
|
Thermo.Active/wwwroot/thermoprophet/original/*.jpg
|
||||||
|
!Thermo.Active/wwwroot/thermoprophet/data/_last.dat
|
||||||
|
Thermo.Active/wwwroot/thermoprophet/data/*.dat
|
||||||
|
|||||||
@@ -0,0 +1,361 @@
|
|||||||
|
#SCRIPT AUTO-BUILD
|
||||||
|
# - Author: Nicola Carminati
|
||||||
|
# - Version: 1.0
|
||||||
|
# - Date: 07/12/2020
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------------------------------------------------------------------
|
||||||
|
# recupera timestamp x logging
|
||||||
|
function Get-TimeStamp
|
||||||
|
{
|
||||||
|
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getFileLog()
|
||||||
|
{
|
||||||
|
return "{0:yyy_MM_dd}_{0:HH_mm}" -f (Get-Date) + "_$pid.log"
|
||||||
|
}
|
||||||
|
|
||||||
|
function ExecuteLog($txt2log)
|
||||||
|
{
|
||||||
|
Write-Output "-------------------------------------------------------------------------------------------------------------------------------------------------" | Out-File -FilePath "$filelog" -Append
|
||||||
|
Write-Output "$(Get-TimeStamp) $txt2log" | Out-File -FilePath "$filelog" -Append
|
||||||
|
Invoke-Expression "$txt2log 2>&1 | Out-File -FilePath $filelog -Append"
|
||||||
|
if( $LASTEXITCODE -ne 0)
|
||||||
|
{
|
||||||
|
Write-Host "Error during cmmand: $txt2log" -ForegroundColor Red ;
|
||||||
|
Write-Host "Exit...." -ForegroundColor Red ;
|
||||||
|
Set-Location $PSScriptRoot
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function askConfirmorDie($message)
|
||||||
|
{
|
||||||
|
if ($silent -eq 0) {
|
||||||
|
while ($confirmation -ne 'y') {
|
||||||
|
$confirmation = Read-Host $message
|
||||||
|
if ($confirmation -eq 'n') {
|
||||||
|
Write-Host "As you like...." -ForegroundColor Red ;
|
||||||
|
Write-Host "Bye...." -ForegroundColor Red ;
|
||||||
|
Set-Location $PSScriptRoot
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ExitOk()
|
||||||
|
{
|
||||||
|
Write-Host "Done!" -ForegroundColor Green
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
function ExitERR($msg)
|
||||||
|
{
|
||||||
|
Write-Host "Error: $msg" -ForegroundColor Red
|
||||||
|
Write-Host "Bye...." -ForegroundColor Red ;
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAssemblyInfo($file)
|
||||||
|
{
|
||||||
|
$regex = "\[assembly\: AssemblyVersion\(""([\.\d+]*)""\)\]"
|
||||||
|
$row = ((Get-Content $file ) | Select-String $regex) | Out-String
|
||||||
|
$found1 = $row.IndexOf("""")
|
||||||
|
$found2 = $row.LastIndexOf("""")
|
||||||
|
RETURN $row.substring($found1+1, $found2 - $found1 -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
function ChangeAssemblyVersion($file,$version)
|
||||||
|
{
|
||||||
|
$regex = "\[assembly\: AssemblyVersion\(""([\.\d+]*)""\)\]"
|
||||||
|
(Get-Content $file) -replace $regex, "[assembly: AssemblyVersion(""$version"")]" | Set-Content $file
|
||||||
|
}
|
||||||
|
|
||||||
|
function CheckNugetScm()
|
||||||
|
{
|
||||||
|
$url = 'https://repository.scmgroup.com/repository/mconnect-nuget/'
|
||||||
|
$ngt = nuget sources -Format Detailed | Out-String
|
||||||
|
$ind = $ngt.LastIndexOf($url)
|
||||||
|
if($ind -lt 0)
|
||||||
|
{
|
||||||
|
ExitERR("Nuget package Scm not found: $url. Add this Repository `r`n -USR: guest`r`n -PSW: mB6SQvj6`r`n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function CheckSingleCommand($cmd)
|
||||||
|
{
|
||||||
|
if ($null -eq (Get-Command $cmd -ErrorAction SilentlyContinue))
|
||||||
|
{
|
||||||
|
ExitERR("Command ""$cmd"" not found in your PATH")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function CheckAllCommand()
|
||||||
|
{
|
||||||
|
CheckSingleCommand "git"
|
||||||
|
CheckSingleCommand "nuget"
|
||||||
|
CheckSingleCommand "devenv"
|
||||||
|
CheckSingleCommand "npm"
|
||||||
|
CheckSingleCommand "7z"
|
||||||
|
CheckSingleCommand "iscc"
|
||||||
|
|
||||||
|
}
|
||||||
|
#---------------------------------------------------------------------------------------------------------------------------
|
||||||
|
# Main Function
|
||||||
|
|
||||||
|
#Setup Variables
|
||||||
|
$outputdir = $PSScriptRoot + "\Thermo.Active\bin"
|
||||||
|
$outputServer = $outputdir + "\Thermo.Active.exe"
|
||||||
|
$outputClient = $outputdir + "\Client\Active_Client.exe"
|
||||||
|
$assemblyInfoFile = $PSScriptRoot + "\Thermo.Active\Properties\AssemblyInfo.cs"
|
||||||
|
$installerFilePath = $PSScriptRoot + "\Thermo.Active\SetupActive_Auto.iss"
|
||||||
|
$outBuildPath = "C:\CMS\AutoBuild\"
|
||||||
|
$branch = "master"
|
||||||
|
$version = ""
|
||||||
|
$branchNeedsToBeSetted = 1;
|
||||||
|
$versionNeedsToBeSetted = 1;
|
||||||
|
$zipOutput = 0;
|
||||||
|
$silent = 0;
|
||||||
|
$excludeClient = 0;
|
||||||
|
$excludeServer = 0;
|
||||||
|
$excludeFrontend = 0;
|
||||||
|
$excludeNodeUpdate = 0;
|
||||||
|
$excludeNugetUpdate = 0;
|
||||||
|
$excludeGit = 0;
|
||||||
|
$filelog = $PSScriptRoot + "\" + $filelog
|
||||||
|
$version = getAssemblyInfo $assemblyInfoFile
|
||||||
|
$outBuild = $outBuildPath + $version
|
||||||
|
$outLogs = $outBuildPath + "_Logs\"
|
||||||
|
|
||||||
|
#Setup Arguments
|
||||||
|
for ( $i = 0; $i -lt $args.count; $i++ ) {
|
||||||
|
if($args[$i] -eq "-branch")
|
||||||
|
{
|
||||||
|
if($args[$i+1].StartsWith("-"))
|
||||||
|
{
|
||||||
|
$err = $args[$i+1]
|
||||||
|
ExitERR "Invalid Branch Name"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$branch = $args[$i +1]
|
||||||
|
$i++;
|
||||||
|
$branchNeedsToBeSetted = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-version")
|
||||||
|
{
|
||||||
|
if($args[$i+1].StartsWith("-"))
|
||||||
|
{
|
||||||
|
$err = $args[$i+1]
|
||||||
|
ExitERR "Invalid Version Name"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$version = $args[$i +1]
|
||||||
|
$outBuild = $outBuildPath + $version
|
||||||
|
$i++;
|
||||||
|
$versionNeedsToBeSetted = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-silent")
|
||||||
|
{
|
||||||
|
$silent = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-portable")
|
||||||
|
{
|
||||||
|
$zipOutput = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludeclient")
|
||||||
|
{
|
||||||
|
$excludeClient = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludenodeupdate")
|
||||||
|
{
|
||||||
|
$excludeNodeUpdate = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludenugetupdate")
|
||||||
|
{
|
||||||
|
$excludeNugetUpdate = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludegit")
|
||||||
|
{
|
||||||
|
$excludeGit = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludeserver")
|
||||||
|
{
|
||||||
|
$excludeServer = 1;
|
||||||
|
}
|
||||||
|
elseif($args[$i] -eq "-excludefrontend")
|
||||||
|
{
|
||||||
|
$excludeFrontend = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$err = $args[$i]
|
||||||
|
ExitERR "Invalid parameter: $err"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#Operations...
|
||||||
|
CheckAllCommand
|
||||||
|
|
||||||
|
Write-Host "CMS-Active Builder...." -ForegroundColor Green
|
||||||
|
|
||||||
|
$tempname = getFileLog
|
||||||
|
$filelog = $outLogs + $tempname
|
||||||
|
New-Item -ItemType "directory" -Path "$outLogs" -Force | Out-Null
|
||||||
|
Write-Host "Log File: " $filelog -ForegroundColor Green
|
||||||
|
|
||||||
|
|
||||||
|
if (($silent -eq 0) -and ($branchNeedsToBeSetted -eq 1)) {
|
||||||
|
$branch = git branch --show-current
|
||||||
|
$response = Read-Host "insert the name of the Git Branch [$branch]"
|
||||||
|
if ($response -ne '') {
|
||||||
|
$branch = $response
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (($silent -eq 0) -and ($versionNeedsToBeSetted -eq 1)) {
|
||||||
|
$response = Read-Host "insert the name of the New Version [$version]"
|
||||||
|
if ($response -ne '') {
|
||||||
|
$version = $response
|
||||||
|
$outBuild = $outBuildPath + $version
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
if ($excludeGit -ne 1) {
|
||||||
|
Write-Host "Git Feching"
|
||||||
|
ExecuteLog "git fetch --all"
|
||||||
|
|
||||||
|
Write-Host "Moving to branch '$branch'"
|
||||||
|
ExecuteLog "git checkout $branch"
|
||||||
|
|
||||||
|
$mail = git log -1 --pretty=format:'%ae'
|
||||||
|
$author = git log -1 --pretty=format:'%an'
|
||||||
|
Write-Host "This is your last commit message from '$author' [$mail]:"
|
||||||
|
git log --oneline -n 1 HEAD
|
||||||
|
askConfirmorDie "`r`nAre you sure do you want to continue [y,n]"
|
||||||
|
|
||||||
|
ExecuteLog "git checkout ."
|
||||||
|
Write-Host "Pulling"
|
||||||
|
ExecuteLog "git pull"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
Write-Host "Clean the Solution"
|
||||||
|
ExecuteLog "devenv Thermo.Active.sln /Clean"
|
||||||
|
$outFile = Test-Path $outputdir
|
||||||
|
if($outFile -eq "True")
|
||||||
|
{
|
||||||
|
Remove-Item $outputdir -Recurse -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($excludeNugetUpdate -ne 1) {
|
||||||
|
Write-Host "Update the Nuget Packages"
|
||||||
|
CheckNugetScm
|
||||||
|
ExecuteLog "nuget restore Thermo.Active.sln "
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($version -ne "") {
|
||||||
|
ExecuteLog "ChangeAssemblyVersion $assemblyInfoFile $version"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($excludeServer -ne 1) {
|
||||||
|
Write-Host "Build the Server APP"
|
||||||
|
ExecuteLog "devenv Thermo.Active.sln /Build Release /Projectconfig ""Release"" /project ""Thermo.Active\Thermo.Active.csproj"""
|
||||||
|
$newv = (Get-Item $outputServer).VersionInfo.FileVersion
|
||||||
|
$outBuild = $outBuildPath + $newv
|
||||||
|
$outFile = Test-Path $outputServer
|
||||||
|
if($outFile -ne "True")
|
||||||
|
{
|
||||||
|
ExitERR "Error while building Server APP (Exe not created)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($excludeClient -ne 1) {
|
||||||
|
Write-Host "Build the Client APP"
|
||||||
|
ExecuteLog "devenv Thermo.Active.sln /Build Release /Projectconfig ""Release|x64"" /project ""Client2020\Client2020.csproj"""
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\bin\Client\x64"" -Destination ""$PSScriptRoot\tmp"" -Recurse"
|
||||||
|
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\Thermo.Active\bin\Client\x64*"" -Force -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\tmp\*"" -Destination ""$PSScriptRoot\Thermo.Active\bin\Client"" -Recurse"
|
||||||
|
$outFile = Test-Path $outputClient
|
||||||
|
if($outFile -ne "True")
|
||||||
|
{
|
||||||
|
ExitERR "Error while building Client APP (Exe not created)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
if ($excludeFrontend -ne 1) {
|
||||||
|
Set-Location .\Thermo.Active\wwwroot\
|
||||||
|
if ($excludeNodeUpdate -ne 1) {
|
||||||
|
Write-Host "Update the Node dependencies"
|
||||||
|
ExecuteLog "npm install"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Build the Frontend"
|
||||||
|
ExecuteLog "npm run build"
|
||||||
|
|
||||||
|
Set-Location $PSScriptRoot
|
||||||
|
}
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
Write-Host "Create the output directory"
|
||||||
|
ExecuteLog "New-Item -ItemType ""directory"" -Path $outBuild -Force"
|
||||||
|
ExecuteLog "Remove-Item $outBuild -Recurse -Force"
|
||||||
|
|
||||||
|
|
||||||
|
if ($zipOutput -ne 1) {
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
Write-Host "Create the installer"
|
||||||
|
ExecuteLog "iscc ""$installerFilePath"""
|
||||||
|
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\tmp"" -Force -Recurse"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($zipOutput -eq 1) {
|
||||||
|
Write-Host "-------------------------------"
|
||||||
|
Write-Host "Create the Zip file"
|
||||||
|
$outFile = Test-Path $outputdir
|
||||||
|
if($outFile -eq "True")
|
||||||
|
{
|
||||||
|
ExecuteLog "7z a ""$outBuild\Active_Portable_$version.zip"" $outputdir\* "
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Create the view Folder"
|
||||||
|
ExecuteLog "New-Item -ItemType ""directory"" -Path view -Force"
|
||||||
|
ExecuteLog "Remove-Item -Path ""view\*"" -Force -Recurse"
|
||||||
|
|
||||||
|
Write-Host "Copy the files in View Folder"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\dist"" -Destination ""view"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Scripts"" -Destination ""view"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\libs"" -Destination ""view"" -Recurse"
|
||||||
|
ExecuteLog "New-Item -ItemType ""directory"" -Path view\Assets\styles -Force"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\fonts"" -Destination ""view\Assets"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\images"" -Destination ""view\Assets"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\icons"" -Destination ""view\Assets"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\svg"" -Destination ""view\Assets"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\animations"" -Destination ""view\Assets"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css"" -Destination ""view\Assets\styles"" "
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css.map"" -Destination ""view\Assets\styles"" "
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\iziToast.min.css"" -Destination ""view\Assets\styles"" "
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\index.html"" -Destination ""view"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\favicon.ico"" -Destination ""view"" -Recurse"
|
||||||
|
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\config.development.json"" -Destination ""view"" -Recurse"
|
||||||
|
|
||||||
|
Write-Host "Copy view in Zip file"
|
||||||
|
$outFile = Test-Path ".\View"
|
||||||
|
if($outFile -eq "True")
|
||||||
|
{
|
||||||
|
ExecuteLog "7z a ""$outBuild\Active_Portable_$version.zip"" "".\view"" "
|
||||||
|
ExecuteLog "Remove-Item "".\View"" -Recurse -Force"
|
||||||
|
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\tmp"" -Force -Recurse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Version created: $version" -ForegroundColor Green
|
||||||
|
Write-Host "Output dir: $outBuild"
|
||||||
|
|
||||||
|
if ($silent -eq 0) {
|
||||||
|
explorer.exe $outBuild
|
||||||
|
}
|
||||||
|
|
||||||
|
ExitOk
|
||||||
@@ -26,6 +26,7 @@ namespace Client2020.BrowserTools
|
|||||||
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
||||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||||
|
private const string THERMO_RECIPE_FOLDER_NAME = @"Recipes";
|
||||||
private const string THERMO_SCREENSHOT_PATH = @"C:\CMS\Screenshots";
|
private const string THERMO_SCREENSHOT_PATH = @"C:\CMS\Screenshots";
|
||||||
private const string CMS_PATH = @"C:\CMS";
|
private const string CMS_PATH = @"C:\CMS";
|
||||||
|
|
||||||
@@ -313,6 +314,32 @@ namespace Client2020.BrowserTools
|
|||||||
return JsonConvert.SerializeObject("");
|
return JsonConvert.SerializeObject("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string backupSubRecipes(String p, String folder)
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(p))
|
||||||
|
{
|
||||||
|
return (JsonConvert.SerializeObject(new ErrorContainer("path_not_exists")));
|
||||||
|
}
|
||||||
|
|
||||||
|
folder = folder.Remove(0,THERMO_RECIPE_FOLDER_NAME.Length);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string finalPath = p + "Backup_Recipes_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
|
||||||
|
Directory.CreateDirectory(finalPath);
|
||||||
|
this.CopyFilesRecursively(new DirectoryInfo(THERMO_RECIPE_PATH + folder), new DirectoryInfo(finalPath));
|
||||||
|
File.WriteAllText(finalPath + "\\data.json", JsonConvert.SerializeObject(new FolderBackup(folder)));
|
||||||
|
Process.Start(finalPath);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return (JsonConvert.SerializeObject(new ErrorContainer("error_during_backup")));
|
||||||
|
}
|
||||||
|
|
||||||
|
return JsonConvert.SerializeObject("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Read all files in directory
|
// Read all files in directory
|
||||||
public string getFileList(string p)
|
public string getFileList(string p)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Client2020.BrowserTools.Models
|
||||||
|
{
|
||||||
|
public class FolderBackup
|
||||||
|
{
|
||||||
|
public String AbsolutePath;
|
||||||
|
public FolderBackup(String Str)
|
||||||
|
{
|
||||||
|
this.AbsolutePath = Str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -76,6 +76,7 @@
|
|||||||
<Compile Include="BrowserTools\Models\Drive.cs" />
|
<Compile Include="BrowserTools\Models\Drive.cs" />
|
||||||
<Compile Include="BrowserTools\Models\Errors\ErrorContainer.cs" />
|
<Compile Include="BrowserTools\Models\Errors\ErrorContainer.cs" />
|
||||||
<Compile Include="BrowserTools\Models\File.cs" />
|
<Compile Include="BrowserTools\Models\File.cs" />
|
||||||
|
<Compile Include="BrowserTools\Models\FolderBackup.cs" />
|
||||||
<Compile Include="BrowserTools\Models\InfoFile.cs" />
|
<Compile Include="BrowserTools\Models\InfoFile.cs" />
|
||||||
<Compile Include="BrowserTools\Models\JobToStep.cs" />
|
<Compile Include="BrowserTools\Models\JobToStep.cs" />
|
||||||
<Compile Include="BrowserTools\Models\MetadataToFile.cs" />
|
<Compile Include="BrowserTools\Models\MetadataToFile.cs" />
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
|
|||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
// set of attributes. Change these attribute values to modify the information
|
// set of attributes. Change these attribute values to modify the information
|
||||||
// associated with an assembly.
|
// associated with an assembly.
|
||||||
[assembly: AssemblyTitle("THermo.Active.Thermocamera")]
|
[assembly: AssemblyTitle("Thermo.Active.Thermocamera")]
|
||||||
[assembly: AssemblyDescription("")]
|
[assembly: AssemblyDescription("")]
|
||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("")]
|
[assembly: AssemblyCompany("")]
|
||||||
[assembly: AssemblyProduct("THermo.Active.Thermocamera")]
|
[assembly: AssemblyProduct("Thermo.Active.Thermocamera")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
<ProjectGuid>{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}</ProjectGuid>
|
<ProjectGuid>{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}</ProjectGuid>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>THermo.Active.Thermocamera</RootNamespace>
|
<RootNamespace>Thermo.Active.Thermocamera</RootNamespace>
|
||||||
<AssemblyName>THermo.Active.Thermocamera</AssemblyName>
|
<AssemblyName>Thermo.Active.Thermocamera</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<Deterministic>true</Deterministic>
|
<Deterministic>true</Deterministic>
|
||||||
@@ -30,10 +30,39 @@
|
|||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="Flir.Atlas.Image, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Image.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Flir.Atlas.Live, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Live.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
@@ -43,7 +72,7 @@
|
|||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ThermocameraComunicator.cs" />
|
<Compile Include="ThermoCamComunicator.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -51,6 +80,10 @@
|
|||||||
<Project>{631375DD-06D3-49BB-8130-D9DDB34C429D}</Project>
|
<Project>{631375DD-06D3-49BB-8130-D9DDB34C429D}</Project>
|
||||||
<Name>Thermo.Active.Model</Name>
|
<Name>Thermo.Active.Model</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Thermo.Cam.Utils\Thermo.Cam.Utils.csproj">
|
||||||
|
<Project>{e4587942-498b-4aa7-9cc9-9304eb2d05c8}</Project>
|
||||||
|
<Name>Thermo.Cam.Utils</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectView>ShowAllFiles</ProjectView>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,160 @@
|
|||||||
|
using Flir.Atlas.Live.Device;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Thermo.Active.Model;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThWarmers;
|
||||||
|
using Thermo.Cam.Utils;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Thermocamera
|
||||||
|
{
|
||||||
|
public class ThermoCamComunicator
|
||||||
|
{
|
||||||
|
#region Protected Fields
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Classe gestione ThermoCam (oggetti Image, metodi processing...)
|
||||||
|
/// </summary>
|
||||||
|
protected TCContr TCamLive = new TCContr(BASE_PATH, BASE_PATH);
|
||||||
|
|
||||||
|
#endregion Protected Fields
|
||||||
|
|
||||||
|
#region Public Fields
|
||||||
|
|
||||||
|
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indica se la camera sia connessa
|
||||||
|
/// </summary>
|
||||||
|
public bool CameraIsConnected = false;
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
|
|
||||||
|
#region Public Constructors
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Init classe
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="isLive">Indica aabilitazione a live straming vs load dati storici</param>
|
||||||
|
public ThermoCamComunicator(bool isLive)
|
||||||
|
{
|
||||||
|
// init classe controllo camera
|
||||||
|
TCamLive = new TCContr($"{Constants.WEBSITE_DIRECTORY}\\{Constants.THERMO_DATA_FOLDER}", $"{BASE_PATH}\\{Constants.CONFIG_DIRECTORY}");
|
||||||
|
|
||||||
|
// aggancio evento connesisone/disconnessione
|
||||||
|
TCamLive.eh_CameraConnStatusChanged += TCamLive_eh_CameraConnStatusChanged;
|
||||||
|
|
||||||
|
// avvio classe gestione thermocamera...
|
||||||
|
TCamLive.tryReloadConf();
|
||||||
|
|
||||||
|
if (isLive)
|
||||||
|
{
|
||||||
|
// SOLO PER IL LIVE --> cerco camera
|
||||||
|
TCamLive.discoveryCamera();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TCamLive_eh_CameraConnStatusChanged(object sender, Flir.Atlas.Live.ConnectionStatusChangedEventArgs e)
|
||||||
|
{
|
||||||
|
// salvo stato connessione
|
||||||
|
CameraIsConnected = e.Status == ConnectionStatus.Connected;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Constructors
|
||||||
|
|
||||||
|
#region Protected Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Rilettura da file di tutti i dati
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName">Nome set file (originale + colorized + dati temperatura)</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected bool loadData(string fileName)
|
||||||
|
{
|
||||||
|
bool done = false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
done = TCamLive.fileLoad(fileName);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
return done;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Protected Methods
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chiusura metodi legati a ThermoCam (discovery e connessione)
|
||||||
|
/// </summary>
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
TCamLive.stopDiscovery();
|
||||||
|
TCamLive.DisconnectCamera();
|
||||||
|
TCamLive.DisposeCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Restituisce lettura di tutti i punti richiesti (es centroidi riscaldi)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="setName">Nome dei dati da leggere, se "" --> live</param>
|
||||||
|
/// <param name="points">Dictionary id richiesta + punto (es canali + relativi punti medi come centro calcolato della resistenza di riferimento del canale)</param>
|
||||||
|
/// <param name="temp">Dizionario temperature come id + valore double in °C</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool readMultiTemperatures(string setName, Dictionary<int, ThermoPoint> points, out List<MeasurePoint> temp)
|
||||||
|
{
|
||||||
|
temp = new List<MeasurePoint>();
|
||||||
|
// converto la richiesta in una lista di punti di misura...
|
||||||
|
List<MeasurePoint> reqData = points.Select(item => new MeasurePoint()
|
||||||
|
{
|
||||||
|
Id = item.Key,
|
||||||
|
Coords = new System.Drawing.Point(item.Value.X, item.Value.Y),
|
||||||
|
Temperature = 0
|
||||||
|
}).ToList();
|
||||||
|
bool done = false;
|
||||||
|
if (string.IsNullOrEmpty(setName) || setName == "_live")
|
||||||
|
{
|
||||||
|
done = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// carico file vari...
|
||||||
|
done = TCamLive.fileLoad(setName);
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
temp = TCamLive.getPointsTemperature(false, reqData);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
// fatto!
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Richiesta di acquisizione immagine FLIR (restituisce nome con cui sono stati salvati file)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public string takePicture()
|
||||||
|
{
|
||||||
|
string imgName = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// effettua chiamata x scattare immagine e SALVARE
|
||||||
|
TCamLive.takePicture();
|
||||||
|
TCamLive.calculateTarget();
|
||||||
|
imgName = TCamLive.fileSave();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
return imgName;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,308 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Configuration;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO.MemoryMappedFiles;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net.NetworkInformation;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows;
|
|
||||||
using Thermo.Active.Model.DTOModels.ThWarmers;
|
|
||||||
|
|
||||||
namespace Thermo.Active.Thermocamera
|
|
||||||
{
|
|
||||||
public class ThermocameraComunicator
|
|
||||||
{
|
|
||||||
#region Private Fields
|
|
||||||
|
|
||||||
private const int DIM_MMF = NUM_CHAR_MSG * 2 + 2;
|
|
||||||
private const string MMF_REQ = "CMS_MMF_REQ";
|
|
||||||
private const string MMF_RES = "CMS_MMF_RES";
|
|
||||||
private const int NUM_CHAR_MSG = 5000;
|
|
||||||
private const int REQ = 1;
|
|
||||||
private const int RES = 2;
|
|
||||||
private static ThermocameraComunicator _instance;
|
|
||||||
private MemoryMappedViewAccessor accessor;
|
|
||||||
private MemoryMappedViewAccessor accessorResp;
|
|
||||||
private MemoryMappedFile mmf;
|
|
||||||
private MemoryMappedFile mmfRes;
|
|
||||||
|
|
||||||
#endregion Private Fields
|
|
||||||
|
|
||||||
#region Protected Fields
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Generatore random
|
|
||||||
/// </summary>
|
|
||||||
protected Random rnd = new Random();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Booleana dell'uso sw ext: true = Utilizzo vero sw lettura FLIR / false = simulazione SW RAND
|
|
||||||
/// </summary>
|
|
||||||
protected bool useTCamSw = true;
|
|
||||||
|
|
||||||
#endregion Protected Fields
|
|
||||||
|
|
||||||
#region Private Constructors
|
|
||||||
|
|
||||||
private ThermocameraComunicator()
|
|
||||||
{
|
|
||||||
mmf = MemoryMappedFile.CreateOrOpen(MMF_REQ, DIM_MMF);
|
|
||||||
mmfRes = MemoryMappedFile.CreateOrOpen(MMF_RES, DIM_MMF);
|
|
||||||
accessor = mmf.CreateViewAccessor();
|
|
||||||
accessorResp = mmfRes.CreateViewAccessor();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Private Constructors
|
|
||||||
|
|
||||||
#region Private Properties
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Simulazione valore tra 100 e 300 °C
|
|
||||||
/// </summary>
|
|
||||||
private float simVal
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
float answ = 100 + 200 * (float)rnd.NextDouble();
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Private Properties
|
|
||||||
|
|
||||||
#region Private Methods
|
|
||||||
|
|
||||||
private bool readCommand(MemoryMappedViewAccessor accessor, string command, int timeoutMS, out string resp)
|
|
||||||
{
|
|
||||||
resp = "";
|
|
||||||
byte response = 0;
|
|
||||||
int totalCycle = 0;
|
|
||||||
int sleepTime = 500;
|
|
||||||
byte[] bytesToRead = new byte[NUM_CHAR_MSG];
|
|
||||||
|
|
||||||
if (!accessor.CanRead)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//Read Pre-Command
|
|
||||||
while (response != RES)
|
|
||||||
{
|
|
||||||
totalCycle++;
|
|
||||||
accessor.Read(0, out response);
|
|
||||||
if (response != RES)
|
|
||||||
Thread.Sleep(sleepTime);
|
|
||||||
if (totalCycle * sleepTime > timeoutMS)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Read Command
|
|
||||||
accessor.ReadArray(1, bytesToRead, 0, bytesToRead.Length);
|
|
||||||
|
|
||||||
//Elaborate String
|
|
||||||
string textRecieved = Encoding.UTF8.GetString(bytesToRead);
|
|
||||||
if (textRecieved == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
string[] textSplitted = textRecieved.Replace("\0", string.Empty).Split(';');
|
|
||||||
if (textSplitted.Length < 2)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (textSplitted[0] != command)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
char[] bufferToClean = Enumerable.Repeat('\0', NUM_CHAR_MSG).ToArray();
|
|
||||||
accessor.WriteArray(0, bufferToClean, 0, bufferToClean.Length);
|
|
||||||
|
|
||||||
//Output
|
|
||||||
textSplitted = textSplitted.Skip(1).ToArray();
|
|
||||||
resp = String.Join(";", textSplitted);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool writeCommand(MemoryMappedViewAccessor accessor, string command)
|
|
||||||
{
|
|
||||||
char[] bufferToClean = Enumerable.Repeat('\0', NUM_CHAR_MSG).ToArray();
|
|
||||||
accessor.WriteArray(0, bufferToClean, 0, bufferToClean.Length);
|
|
||||||
|
|
||||||
char[] bufferToWrite = command.ToCharArray();
|
|
||||||
|
|
||||||
//Write Pre-Command
|
|
||||||
accessor.Write(0, REQ);
|
|
||||||
|
|
||||||
//Write Command
|
|
||||||
accessor.WriteArray(1, bufferToWrite, 0, bufferToWrite.Length);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Private Methods
|
|
||||||
|
|
||||||
#region Public Methods
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Swap x/y requesto from FLIR camera
|
|
||||||
/// </summary>
|
|
||||||
public bool flirSwapXY
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
bool answ = false;
|
|
||||||
bool.TryParse(ConfigurationManager.AppSettings["flirSwapXY"], out answ);
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ThermocameraComunicator getInstance()
|
|
||||||
{
|
|
||||||
if (_instance == null)
|
|
||||||
_instance = new ThermocameraComunicator();
|
|
||||||
return _instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Restituisce lettura di tutti i punti (cetroidi) richeisti
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="points">Dictionary dei canali e relativi punti medi (centro calcolato della resistenza di riferimento del canale)</param>
|
|
||||||
/// <param name="timeoutMS">Timeout in ms, 10000 std, da conf</param>
|
|
||||||
/// <param name="temp">°C</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool readMultiTemperatures(Dictionary<int, ThermoPoint> points, int timeoutMS, out Dictionary<int, double> temp)
|
|
||||||
{
|
|
||||||
temp = new Dictionary<int, double>();
|
|
||||||
// modalità impiego vero sw esterno
|
|
||||||
if (useTCamSw)
|
|
||||||
{
|
|
||||||
const string tempCommand = "GetTemperature";
|
|
||||||
string response;
|
|
||||||
|
|
||||||
string cmdRead = "";
|
|
||||||
foreach (var point in points)
|
|
||||||
{
|
|
||||||
if (flirSwapXY)
|
|
||||||
{
|
|
||||||
cmdRead += point.Value.Y + ";" + point.Value.X + ";";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cmdRead += point.Value.X + ";" + point.Value.Y + ";";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!writeCommand(accessor, tempCommand + ";" + cmdRead))
|
|
||||||
return false;
|
|
||||||
if (!readCommand(accessorResp, tempCommand, timeoutMS, out response))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
string[] respSplitted = response.Replace(",", ".").Split(';');
|
|
||||||
int idxResp = 0;
|
|
||||||
foreach (var item in points)
|
|
||||||
{
|
|
||||||
string str = respSplitted[idxResp];
|
|
||||||
double tmp;
|
|
||||||
if (str.Trim() != "")
|
|
||||||
{
|
|
||||||
if (double.TryParse(str.Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out tmp))
|
|
||||||
temp.Add(item.Key, tmp);
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
idxResp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// simulo!
|
|
||||||
foreach (var item in points)
|
|
||||||
{
|
|
||||||
temp.Add(item.Key, simVal);
|
|
||||||
}
|
|
||||||
// attende 5 sec
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Lettura temp singolo punto
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x"></param>
|
|
||||||
/// <param name="y"></param>
|
|
||||||
/// <param name="timeoutMS"></param>
|
|
||||||
/// <param name="temp"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool readTemperature(int x, int y, int timeoutMS, out float temp)
|
|
||||||
{
|
|
||||||
temp = 0f;
|
|
||||||
|
|
||||||
// modalità impiego vero sw esterno
|
|
||||||
if (useTCamSw)
|
|
||||||
{
|
|
||||||
const string tempCommand = "GetTemperature";
|
|
||||||
string response;
|
|
||||||
|
|
||||||
if (!writeCommand(accessor, tempCommand + ";" + x + ";" + y + ";"))
|
|
||||||
return false;
|
|
||||||
if (!readCommand(accessorResp, tempCommand, timeoutMS, out response))
|
|
||||||
return false;
|
|
||||||
response = response.TrimEnd(';');
|
|
||||||
if (!float.TryParse(response, NumberStyles.Float, CultureInfo.InvariantCulture, out temp))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// simulo!
|
|
||||||
temp = simVal;
|
|
||||||
// attende 5 sec
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool showWindow(int x, int y, int dimX, int dimY, int timeoutMS)
|
|
||||||
{
|
|
||||||
const string tempCommand = "ShowWindow";
|
|
||||||
string response;
|
|
||||||
if (!writeCommand(accessor, tempCommand + ";" + x + ";" + y + ";" + dimX + ";" + dimY + ";"))
|
|
||||||
return false;
|
|
||||||
if (!readCommand(accessorResp, tempCommand, timeoutMS, out response))
|
|
||||||
return false;
|
|
||||||
if (!response.StartsWith("1;"))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Richiesta di scattare fotografia
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="timeoutMS">attesa in ms, 10000 std, da conf</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool takePicture(int timeoutMS)
|
|
||||||
{
|
|
||||||
// modalità impiego vero sw esterno
|
|
||||||
if (useTCamSw)
|
|
||||||
{
|
|
||||||
const string tempCommand = "SetParameter_Integer";
|
|
||||||
string response;
|
|
||||||
|
|
||||||
if (!writeCommand(accessor, tempCommand + ";TAKE_IMAGE;"))
|
|
||||||
return false;
|
|
||||||
if (!readCommand(accessorResp, tempCommand, timeoutMS, out response))
|
|
||||||
return false;
|
|
||||||
if (!response.StartsWith("True;"))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// attende 5 sec
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Public Methods
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -79,8 +79,8 @@
|
|||||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<package id="System.IO.Pipelines" version="4.7.3" targetFramework="net462" />
|
<package id="System.IO.Pipelines" version="4.7.3" targetFramework="net462" />
|
||||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net462" />
|
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net462" />
|
||||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||||
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net462" />
|
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net462" />
|
||||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
|
||||||
|
<xs:element name="IOSetup">
|
||||||
|
<!-- Heads -->
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="id" type="xs:int"/>
|
||||||
|
<xs:element name="category" type="io_type" />
|
||||||
|
<xs:element name="bank" type="xs:string" />
|
||||||
|
<xs:element name="position" type="xs:string" />
|
||||||
|
<xs:element name="page" type="xs:string" />
|
||||||
|
<xs:element name="wire" type="xs:string" />
|
||||||
|
<xs:element name="profinet" type="xs:string" />
|
||||||
|
<xs:element name="disableForce" type ="xs:boolean" minOccurs="0" />
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
|
||||||
|
<!-- Head Type -->
|
||||||
|
<xs:simpleType name="io_type" final="restriction">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="DI" />
|
||||||
|
<xs:enumeration value="DO" />
|
||||||
|
<xs:enumeration value="AI"/>
|
||||||
|
<xs:enumeration value="AO"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
|
||||||
|
</xs:schema>
|
||||||
@@ -308,6 +308,7 @@
|
|||||||
"options_thermoregulator_9_setpoint": 0.0,
|
"options_thermoregulator_9_setpoint": 0.0,
|
||||||
"options_thermoregulator_10_enabled": 0.0,
|
"options_thermoregulator_10_enabled": 0.0,
|
||||||
"options_thermoregulator_10_setpoint": 0.0
|
"options_thermoregulator_10_setpoint": 0.0
|
||||||
|
"extraction_main_drawing_enabled": 0.0
|
||||||
},
|
},
|
||||||
"ChannelSetpoints": {
|
"ChannelSetpoints": {
|
||||||
"1": 0,
|
"1": 0,
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"MeasPoints": [],
|
||||||
|
"CameraAddress": "",
|
||||||
|
"CameraName": "Camera Emulator",
|
||||||
|
"DestPoints": {
|
||||||
|
"Coords": [
|
||||||
|
"0, 0",
|
||||||
|
"1500, 0",
|
||||||
|
"1500, 1200",
|
||||||
|
"0, 1200"
|
||||||
|
],
|
||||||
|
"curr": 0
|
||||||
|
},
|
||||||
|
"OrigPoints": {
|
||||||
|
"Coords": [
|
||||||
|
"0, 0",
|
||||||
|
"640, 0",
|
||||||
|
"640, 480",
|
||||||
|
"0, 480"
|
||||||
|
],
|
||||||
|
"curr": 4
|
||||||
|
},
|
||||||
|
"TargetRange": {
|
||||||
|
"Max": 60.0,
|
||||||
|
"Min": 0.0
|
||||||
|
},
|
||||||
|
"TargetSize": {
|
||||||
|
"X": 1500,
|
||||||
|
"Y": 1200
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -40,4 +40,9 @@
|
|||||||
<allowExternalBrowser>true</allowExternalBrowser>
|
<allowExternalBrowser>true</allowExternalBrowser>
|
||||||
<ncNeeded>false</ncNeeded>
|
<ncNeeded>false</ncNeeded>
|
||||||
</users>
|
</users>
|
||||||
|
<thermoHood>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<allowExternalBrowser>true</allowExternalBrowser>
|
||||||
|
<ncNeeded>false</ncNeeded>
|
||||||
|
</thermoHood>
|
||||||
</areasConfig>
|
</areasConfig>
|
||||||
@@ -82,6 +82,16 @@
|
|||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|
||||||
|
<xs:element name="thermoHood">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="enabled" type="xs:boolean" />
|
||||||
|
<xs:element name="allowExternalBrowser" type="xs:boolean" />
|
||||||
|
<xs:element name="ncNeeded" type="xs:boolean" />
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -1,37 +1,55 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
enabledWord:
|
||||||
|
bit 0 : Move Absolute [Ack]
|
||||||
|
bit 1 : Jog inc + [Ack]
|
||||||
|
bit 2 : Jog inc - [Ack]
|
||||||
|
bit 3 : Allinea [Ack]
|
||||||
|
bit 4 : Probe (Ack)
|
||||||
|
bit 5 : SetSlavePosition (Ack)
|
||||||
|
bit 6 : Azzera (Ack)
|
||||||
|
bit 7 - bit14: not used
|
||||||
|
bit15 : Target pos
|
||||||
|
|
||||||
|
Asse slave : 6
|
||||||
|
Asse master gantry con proxy: 56
|
||||||
|
Asse master gantry senza proxy: 2152
|
||||||
|
Asse singolo con proxy: 16
|
||||||
|
Asse singolo senza proxy: 2112
|
||||||
|
-->
|
||||||
<axes>
|
<axes>
|
||||||
<axis id="1" name="KI_Asse_W1" type="LINEAR" enabled="true" />
|
<axis id="1" name="W1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||||
<axis id="2" name="KI_Asse_W2" type="LINEAR" enabled="true" />
|
<axis id="2" name="W2" type="LINEAR" enabled="true" master="1" enabledWord="6" />
|
||||||
<axis id="3" name="KI_Asse_W3" type="LINEAR" enabled="false" />
|
<axis id="3" name="W3" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||||
<axis id="4" name="KI_Asse_W4" type="LINEAR" enabled="false" />
|
<axis id="4" name="W4" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||||
<axis id="5" name="KI_Asse_Z1" type="LINEAR" enabled="true" />
|
<axis id="5" name="Z1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||||
<axis id="6" name="KI_Asse_Z2" type="LINEAR" enabled="true" />
|
<axis id="6" name="Z2" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||||
<axis id="7" name="KI_Asse_Z3" type="LINEAR" enabled="true" />
|
<axis id="7" name="Z3" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||||
<axis id="8" name="KI_Asse_Z4" type="LINEAR" enabled="true" />
|
<axis id="8" name="Z4" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||||
<axis id="9" name="KI_Asse_R1" type="LINEAR" enabled="true" />
|
<axis id="9" name="R1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||||
<axis id="10" name="KI_Asse_R2" type="LINEAR" enabled="false" />
|
<axis id="10" name="R2" type="LINEAR" enabled="false" master="9" enabledWord="6" />
|
||||||
<axis id="11" name="KI_Asse_S1" type="LINEAR" enabled="true" />
|
<axis id="11" name="S1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||||
<axis id="12" name="KI_Asse_S2" type="LINEAR" enabled="false" />
|
<axis id="12" name="S2" type="LINEAR" enabled="false" master="11" enabledWord="6" />
|
||||||
<axis id="13" name="KI_Asse_CZ1" type="LINEAR" enabled="true" />
|
<axis id="13" name="CZ1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||||
<axis id="14" name="KI_Asse_CZ2" type="LINEAR" enabled="true" />
|
<axis id="14" name="CZ2" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||||
<axis id="15" name="KI_Asse_CZ3" type="LINEAR" enabled="true" />
|
<axis id="15" name="CZ3" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||||
<axis id="16" name="KI_Asse_CZ4" type="LINEAR" enabled="true" />
|
<axis id="16" name="CZ4" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||||
<axis id="17" name="KI_Asse_U1" type="LINEAR" enabled="true" />
|
<axis id="17" name="U1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||||
<axis id="18" name="KI_Asse_U2" type="LINEAR" enabled="true" />
|
<axis id="18" name="U2" type="LINEAR" enabled="true" master="17" enabledWord="6" />
|
||||||
<axis id="19" name="KI_Asse_P" type="LINEAR" enabled="true" />
|
<axis id="19" name="P" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||||
<axis id="20" name="KI_Asse_X" type="LINEAR" enabled="true" />
|
<axis id="20" name="X" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||||
<axis id="21" name="KI_Asse_CX1" type="LINEAR" enabled="true" />
|
<axis id="21" name="CX1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||||
<axis id="22" name="KI_Asse_CX2" type="LINEAR" enabled="true" />
|
<axis id="22" name="CX2" type="LINEAR" enabled="true" master="21" enabledWord="6" />
|
||||||
<axis id="23" name="KI_Asse_CY1" type="LINEAR" enabled="true" />
|
<axis id="23" name="CY1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||||
<axis id="24" name="KI_Asse_CY2" type="LINEAR" enabled="true" />
|
<axis id="24" name="CY2" type="LINEAR" enabled="true" master="23" enabledWord="6" />
|
||||||
<axis id="25" name="KI_Asse_F11" type="LINEAR" enabled="true" />
|
<axis id="25" name="F11" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||||
<axis id="26" name="KI_Asse_F12" type="LINEAR" enabled="false" />
|
<axis id="26" name="F12" type="LINEAR" enabled="false" master="25" enabledWord="6" />
|
||||||
<axis id="27" name="KI_Asse_F21" type="LINEAR" enabled="true" />
|
<axis id="27" name="F21" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||||
<axis id="28" name="KI_Asse_F22" type="LINEAR" enabled="false" />
|
<axis id="28" name="F22" type="LINEAR" enabled="false" master="27" enabledWord="6" />
|
||||||
<axis id="29" name="KI_Asse_F31" type="LINEAR" enabled="true" />
|
<axis id="29" name="F31" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||||
<axis id="30" name="KI_Asse_F32" type="LINEAR" enabled="false" />
|
<axis id="30" name="F32" type="LINEAR" enabled="false" master="29" enabledWord="6" />
|
||||||
<axis id="31" name="KI_Asse_F41" type="LINEAR" enabled="true" />
|
<axis id="31" name="F41" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||||
<axis id="32" name="KI_Asse_F42" type="LINEAR" enabled="false" />
|
<axis id="32" name="F42" type="LINEAR" enabled="false" master="31" enabledWord="6" />
|
||||||
<axis id="33" name="KI_Asse_E" type="LINEAR" enabled="true" />
|
<axis id="33" name="E" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||||
<axis id="34" name="KI_Asse_M" type="LINEAR" enabled="false" />
|
<axis id="34" name="M" type="LINEAR" enabled="false" master="0" enabledWord="0" />
|
||||||
</axes>
|
</axes>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<xs:element name="axis" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="axis" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:complexContent>
|
<xs:complexContent>
|
||||||
<xs:extension base="axisType"/>
|
<xs:extension base="axisType" />
|
||||||
</xs:complexContent>
|
</xs:complexContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
@@ -22,8 +22,12 @@
|
|||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
<xs:attribute name="enabled" type="xs:boolean" use="required">
|
<xs:attribute name="enabled" type="xs:boolean" use="required">
|
||||||
</xs:attribute>
|
</xs:attribute>
|
||||||
|
<xs:attribute name="master" type="xs:integer" use="required">
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="enabledWord" type="xs:integer" use="required">
|
||||||
|
</xs:attribute>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
<xs:simpleType name="axType" final="restriction" >
|
<xs:simpleType name="axType" final="restriction">
|
||||||
<xs:restriction base="xs:string">
|
<xs:restriction base="xs:string">
|
||||||
<xs:enumeration value="NA" />
|
<xs:enumeration value="NA" />
|
||||||
<xs:enumeration value="LINEAR" />
|
<xs:enumeration value="LINEAR" />
|
||||||
|
|||||||
@@ -3902,4 +3902,15 @@
|
|||||||
<scaleFactor>1</scaleFactor>
|
<scaleFactor>1</scaleFactor>
|
||||||
<numDec>1</numDec>
|
<numDec>1</numDec>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
<parameter>
|
||||||
|
<id>307</id>
|
||||||
|
<category>Extraction</category>
|
||||||
|
<subCategory_1>Main</subCategory_1>
|
||||||
|
<subCategory_2></subCategory_2>
|
||||||
|
<name>Drawing_Enabled</name>
|
||||||
|
<description>Abilitazione valvola imbutitura</description>
|
||||||
|
<format>boolean</format>
|
||||||
|
<scaleFactor>1</scaleFactor>
|
||||||
|
<numDec>1</numDec>
|
||||||
|
</parameter>
|
||||||
</recipe>
|
</recipe>
|
||||||
@@ -31,6 +31,8 @@
|
|||||||
<CMSConnectReady>true</CMSConnectReady>
|
<CMSConnectReady>true</CMSConnectReady>
|
||||||
<maxAlarmsRows>50000</maxAlarmsRows>
|
<maxAlarmsRows>50000</maxAlarmsRows>
|
||||||
<alarmToDelete>5000</alarmToDelete>
|
<alarmToDelete>5000</alarmToDelete>
|
||||||
|
<maxSheetHistoryRows>10000</maxSheetHistoryRows>
|
||||||
|
<sheetHistoryToDelete>500</sheetHistoryToDelete>
|
||||||
</serverConfig>
|
</serverConfig>
|
||||||
<extSoftwares>
|
<extSoftwares>
|
||||||
<software>
|
<software>
|
||||||
@@ -88,7 +90,7 @@
|
|||||||
<entry>
|
<entry>
|
||||||
<key>loaderSuckersNumber</key>
|
<key>loaderSuckersNumber</key>
|
||||||
<value>12</value>
|
<value>12</value>
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<key>ThermoCameraXpos</key>
|
<key>ThermoCameraXpos</key>
|
||||||
<value>93</value>
|
<value>93</value>
|
||||||
@@ -105,6 +107,18 @@
|
|||||||
<key>ThermoCameraYdim</key>
|
<key>ThermoCameraYdim</key>
|
||||||
<value>1004</value>
|
<value>1004</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<key>RangeTempMin</key>
|
||||||
|
<value>0</value>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<key>RangeTempMax</key>
|
||||||
|
<value>100</value>
|
||||||
|
</entry>
|
||||||
|
<entry>
|
||||||
|
<key>EnableThermocam</key>
|
||||||
|
<value>true</value>
|
||||||
|
</entry>
|
||||||
</additionalParameters>
|
</additionalParameters>
|
||||||
<unitOfMeasures>
|
<unitOfMeasures>
|
||||||
<unitOfMeasure id="0" value="" />
|
<unitOfMeasure id="0" value="" />
|
||||||
@@ -119,7 +133,9 @@
|
|||||||
<sampling>
|
<sampling>
|
||||||
<thread name="alarms" value="200" />
|
<thread name="alarms" value="200" />
|
||||||
<thread name="axis" value="200" />
|
<thread name="axis" value="200" />
|
||||||
<thread name="area" value="500" />
|
<thread name="channelsIoFast" value="300" />
|
||||||
|
<thread name="channelsIoSlow" value="5000" />
|
||||||
|
<thread name="area" value="2500" />
|
||||||
<thread name="confReq" value="2000" />
|
<thread name="confReq" value="2000" />
|
||||||
<thread name="expMan" value="30000" />
|
<thread name="expMan" value="30000" />
|
||||||
<thread name="functionEnab" value="300" />
|
<thread name="functionEnab" value="300" />
|
||||||
@@ -131,12 +147,13 @@
|
|||||||
<thread name="prodInfo" value="1000" />
|
<thread name="prodInfo" value="1000" />
|
||||||
<thread name="prodPanel" value="500" />
|
<thread name="prodPanel" value="500" />
|
||||||
<thread name="modules" value="200" />
|
<thread name="modules" value="200" />
|
||||||
<thread name="recipe" value="400" />
|
<thread name="recipe" value="1000" />
|
||||||
<thread name="scada" value="1000" />
|
<thread name="scada" value="1000" />
|
||||||
<thread name="statusCommand" value="250" />
|
<thread name="statusCommand" value="250" />
|
||||||
<thread name="FlirCamera" value="500" />
|
<thread name="FlirCamera" value="500" />
|
||||||
<thread name="userSK" value="250" />
|
<thread name="userSK" value="250" />
|
||||||
<thread name="warmers" value="500" />
|
<thread name="warmers" value="2000" />
|
||||||
<thread name="watchdog" value="250" />
|
<thread name="watchdog" value="250" />
|
||||||
|
<thread name="stats" value="2000" />
|
||||||
</sampling>
|
</sampling>
|
||||||
</serverConfig>
|
</serverConfig>
|
||||||
@@ -42,6 +42,8 @@
|
|||||||
<xs:element name="MTCApplicationName" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
<xs:element name="MTCApplicationName" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||||
<xs:element name="maxAlarmsRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
<xs:element name="maxAlarmsRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||||
<xs:element name="alarmToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
<xs:element name="alarmToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xs:element name="maxSheetHistoryRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||||
|
<xs:element name="sheetHistoryToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||||
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<toolTable>
|
|
||||||
<options>
|
|
||||||
<family>true</family>
|
|
||||||
<multiTool>true</multiTool>
|
|
||||||
<magazinePosition>false</magazinePosition>
|
|
||||||
</options>
|
|
||||||
<fields>
|
|
||||||
<familyName>true</familyName>
|
|
||||||
<childId>true</childId>
|
|
||||||
<magazinePositionType>true</magazinePositionType>
|
|
||||||
</fields>
|
|
||||||
</toolTable>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<xs:element name="toolTable">
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="options">
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="family" type="xs:boolean"></xs:element>
|
|
||||||
<xs:element name="multiTool" type="xs:boolean"></xs:element>
|
|
||||||
<xs:element name="magazinePosition" type="xs:boolean"></xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="fields">
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="familyName" type="xs:boolean"></xs:element>
|
|
||||||
<xs:element name="childId" type="xs:boolean"></xs:element>
|
|
||||||
<xs:element name="magazinePositionType" type="xs:boolean"></xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
</softKey_procedure>
|
</softKey_procedure>
|
||||||
|
|
||||||
<softKey_procedure>
|
<softKey_procedure>
|
||||||
<active>false</active>
|
<active>true</active>
|
||||||
<category>2</category>
|
<category>2</category>
|
||||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
||||||
<plcId>3</plcId>
|
<plcId>3</plcId>
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
<lang langKey="it">Termoregolatori</lang>
|
<lang langKey="it">Termoregolatori</lang>
|
||||||
</localizedNames>
|
</localizedNames>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
|
<starred>true</starred>
|
||||||
<refCallParam>options_thermoregulator_enable</refCallParam>
|
<refCallParam>options_thermoregulator_enable</refCallParam>
|
||||||
<refCallLabel>options_thermoregulator_enable_button</refCallLabel>
|
<refCallLabel>options_thermoregulator_enable_button</refCallLabel>
|
||||||
</softKey_procedure>
|
</softKey_procedure>
|
||||||
@@ -101,7 +102,7 @@
|
|||||||
<lang langKey="it">Riscaldi indietro</lang>
|
<lang langKey="it">Riscaldi indietro</lang>
|
||||||
</localizedNames>
|
</localizedNames>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<starred>true</starred>
|
<starred>false</starred>
|
||||||
</softKey_procedure>
|
</softKey_procedure>
|
||||||
|
|
||||||
<softKey_procedure>
|
<softKey_procedure>
|
||||||
@@ -467,22 +468,44 @@
|
|||||||
<refCallLabel>dash_setpoint_minus_button</refCallLabel>
|
<refCallLabel>dash_setpoint_minus_button</refCallLabel>
|
||||||
</softKey_procedure>
|
</softKey_procedure>
|
||||||
|
|
||||||
|
<softKey_procedure>
|
||||||
<!--softKey_group>
|
<active>true</active>
|
||||||
<active>true</active>
|
<category>3</category>
|
||||||
<category>1</category>
|
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
|
||||||
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
|
<plcId>39</plcId>
|
||||||
<localizedNames>
|
<localizedNames>
|
||||||
<lang langKey="en">aaa:</lang>
|
<lang langKey="en">Mould heating</lang>
|
||||||
<lang langKey="it">aaa</lang>
|
<lang langKey="it">Riscaldo stampo</lang>
|
||||||
</localizedNames>
|
</localizedNames>
|
||||||
<subKeys>
|
<visible>true</visible>
|
||||||
<subKey active="true" plcId="21"> B </subKey>
|
</softKey_procedure>
|
||||||
<subKey active="true" plcId="22"> C </subKey>
|
|
||||||
</subKeys>
|
|
||||||
<visible>true</visible>
|
|
||||||
</softKey_group-->
|
|
||||||
|
|
||||||
|
<softKey_procedure>
|
||||||
|
<active>true</active>
|
||||||
|
<category>2</category>
|
||||||
|
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
|
||||||
|
<plcId>40</plcId>
|
||||||
|
<localizedNames>
|
||||||
|
<lang langKey="en">Frame X+Y</lang>
|
||||||
|
<lang langKey="it">Cornice X+Y</lang>
|
||||||
|
</localizedNames>
|
||||||
|
<visible>true</visible>
|
||||||
|
<refCallParam>dimensions_frame_setupall</refCallParam>
|
||||||
|
<refCallLabel>dimensions_frame_setupall_button</refCallLabel>
|
||||||
|
</softKey_procedure>
|
||||||
|
|
||||||
|
<softKey_procedure>
|
||||||
|
<active>true</active>
|
||||||
|
<category>2</category>
|
||||||
|
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
|
||||||
|
<plcId>41</plcId>
|
||||||
|
<localizedNames>
|
||||||
|
<lang langKey="en">Windowplate X+Y</lang>
|
||||||
|
<lang langKey="it">Piastrafinestra X+Y</lang>
|
||||||
|
</localizedNames>
|
||||||
|
<visible>true</visible>
|
||||||
|
<refCallParam>dimensions_plate_setupall</refCallParam>
|
||||||
|
<refCallLabel>dimensions_plate_setupall_button</refCallLabel>
|
||||||
|
</softKey_procedure>
|
||||||
|
|
||||||
</userSoftKeys>
|
</userSoftKeys>
|
||||||
@@ -47,6 +47,7 @@ namespace Thermo.Active.Config
|
|||||||
public static AreasConfigModel ScadaConfig;
|
public static AreasConfigModel ScadaConfig;
|
||||||
public static AreasConfigModel JobEditorConfig;
|
public static AreasConfigModel JobEditorConfig;
|
||||||
public static AreasConfigModel UsersConfig;
|
public static AreasConfigModel UsersConfig;
|
||||||
|
public static AreasConfigModel ThermoHoodConfig;
|
||||||
|
|
||||||
public static List<ScadaSchemaModel> ProductionScadaSchema = new List<ScadaSchemaModel>();
|
public static List<ScadaSchemaModel> ProductionScadaSchema = new List<ScadaSchemaModel>();
|
||||||
public static List<ScadaSchemaModel> ConfiguredScadaSchema = new List<ScadaSchemaModel>();
|
public static List<ScadaSchemaModel> ConfiguredScadaSchema = new List<ScadaSchemaModel>();
|
||||||
@@ -61,6 +62,7 @@ namespace Thermo.Active.Config
|
|||||||
public static List<ThermoProdConfigModel> ThermoProdConfig;
|
public static List<ThermoProdConfigModel> ThermoProdConfig;
|
||||||
public static List<RecipeConfigModel> RecipeConfig;
|
public static List<RecipeConfigModel> RecipeConfig;
|
||||||
public static List<ModBlockConfigModel> ModBlockConfig;
|
public static List<ModBlockConfigModel> ModBlockConfig;
|
||||||
|
public static List<IOConfigModel> IOConfig;
|
||||||
public static List<RiskResistModel> RiskResistConfig;
|
public static List<RiskResistModel> RiskResistConfig;
|
||||||
public static List<RiskChannelModel> RiskChannelConfig;
|
public static List<RiskChannelModel> RiskChannelConfig;
|
||||||
public static List<RiskBoardModel> RiskBoardConfig;
|
public static List<RiskBoardModel> RiskBoardConfig;
|
||||||
|
|||||||
@@ -83,278 +83,6 @@ namespace Thermo.Active.Config
|
|||||||
return xmlConfigFile;
|
return xmlConfigFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ReadDataModel()
|
|
||||||
{
|
|
||||||
XDocument xmlConfigFile = GetXmlHandler(CONNECT_DATAMODEL_CONFIG_PATH);
|
|
||||||
XElement el = xmlConfigFile.Descendants("Machine").First();
|
|
||||||
CMSConnectEntry = new Dictionary<string, string>();
|
|
||||||
ElaborateDataModel(el, el.Name.LocalName, ref CMSConnectEntry);
|
|
||||||
CMSConnectDataModel = File.ReadAllText(CONNECT_DATAMODEL_CONFIG_PATH);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void ReadM156()
|
|
||||||
{
|
|
||||||
// Get Areas file handler
|
|
||||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(M156_CONFIG_SCHEMA_PATH, M156_CONFIG_PATH);
|
|
||||||
|
|
||||||
InputsOperatorConfig = xmlConfigFile
|
|
||||||
.Descendants("inputsOperator")
|
|
||||||
.Elements()
|
|
||||||
.Select(x => new InputOperatorConfigModel()
|
|
||||||
{
|
|
||||||
Id = Convert.ToInt32(x.Element("id").Value),
|
|
||||||
Messages = x.Element("title").Elements().ToDictionary( // Read localized names and convert into a dictionary
|
|
||||||
y => y.Attribute("langKey").Value, y => y.Value
|
|
||||||
),
|
|
||||||
Buttons = x.Element("buttons")?.Elements().ToDictionary( // Read buttons data and convert into a dictionary
|
|
||||||
y => Convert.ToByte(y.Element("value").Value),
|
|
||||||
y => y.Element("title").Elements().ToDictionary( // Read localized names and convert into a dictionary
|
|
||||||
z => z.Attribute("langKey").Value,
|
|
||||||
z => z.Value
|
|
||||||
)
|
|
||||||
),
|
|
||||||
Type = GetInputOperatoType(x.Name.ToString())
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void ReadScadaFile()
|
|
||||||
{
|
|
||||||
DirectoryInfo d = new DirectoryInfo(SCADA_DIRECTORY);
|
|
||||||
FileInfo[] files = d.GetFiles("*.xml");
|
|
||||||
|
|
||||||
int i = 1;
|
|
||||||
// Cycle inside xml files
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
|
||||||
validateScada(SCADA_PAGES_SCHEMA_PATH, SCADA_DIRECTORY + file.Name);
|
|
||||||
|
|
||||||
StreamReader sr = new StreamReader(SCADA_DIRECTORY + file.Name);
|
|
||||||
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ScadaSchemaModel));
|
|
||||||
ScadaSchemaModel schema = xmlSerializer.Deserialize(sr) as ScadaSchemaModel;
|
|
||||||
|
|
||||||
// Setup incremental ids
|
|
||||||
schema.Id = i++;
|
|
||||||
|
|
||||||
var name = Path.GetFileNameWithoutExtension(file.Name);
|
|
||||||
schema.BackgroundImage = GetImageBase64String(SCADA_DIRECTORY + name, schema.BackgroundImage);
|
|
||||||
|
|
||||||
schema.Layers = schema.Layers.Select(x => new ScadaSchemaLayerModel()
|
|
||||||
{
|
|
||||||
Id = i++,
|
|
||||||
Buttons = x.Buttons.Select(y => { y.Id = i++; return y; }).ToArray(),
|
|
||||||
Images = x.Images.Select(y =>
|
|
||||||
{
|
|
||||||
y.Id = i++;
|
|
||||||
y.Name = GetImageBase64String(SCADA_DIRECTORY + name, y.Name);
|
|
||||||
return y;
|
|
||||||
})
|
|
||||||
.ToArray(),
|
|
||||||
Labels = x.Labels.Select(y => { y.Id = i++; return y; }).ToArray(),
|
|
||||||
ProgressBars = x.ProgressBars.Select(y => { y.Id = i++; return y; }).ToArray(),
|
|
||||||
Inputs = x.Inputs.Select(y => { y.Id = i++; return y; }).ToArray()
|
|
||||||
})
|
|
||||||
.ToArray();
|
|
||||||
|
|
||||||
if (schema.IsInProductionPage == true)
|
|
||||||
ProductionScadaSchema.Add(schema);
|
|
||||||
else
|
|
||||||
ConfiguredScadaSchema.Add(schema);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void SetAreaValue(ref AreasConfigModel areasConfig, XElement element)
|
|
||||||
{
|
|
||||||
// Set area model with xml data
|
|
||||||
areasConfig = new AreasConfigModel()
|
|
||||||
{
|
|
||||||
Name = element.Name.ToString(),
|
|
||||||
Enabled = Convert.ToBoolean(element.Element("enabled").Value),
|
|
||||||
AllowExternalBrowser = Convert.ToBoolean(element.Element("allowExternalBrowser").Value),
|
|
||||||
NcNeeded = Convert.ToBoolean(element.Element("ncNeeded").Value)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void SetAreaValueByName(XElement element)
|
|
||||||
{
|
|
||||||
// Choose which area to be set
|
|
||||||
switch (element.Name.ToString())
|
|
||||||
{
|
|
||||||
case AREAS.PRODUCTION_KEY:
|
|
||||||
SetAreaValue(ref ProductionConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.REPORT_KEY:
|
|
||||||
SetAreaValue(ref ReportConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.ALARMS_KEY:
|
|
||||||
SetAreaValue(ref AlarmsConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.MAINTENANCE_KEY:
|
|
||||||
SetAreaValue(ref MaintenanceConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.UTILITIES_KEY:
|
|
||||||
SetAreaValue(ref UtilitiesConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.SCADA_KEY:
|
|
||||||
SetAreaValue(ref ScadaConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.JOBEDITOR_KEY:
|
|
||||||
SetAreaValue(ref JobEditorConfig, element);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AREAS.USERS_KEY:
|
|
||||||
SetAreaValue(ref UsersConfig, element);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void validateScada(string configSchemaFilePath, string configFilePath)
|
|
||||||
{
|
|
||||||
// Create new instance
|
|
||||||
XmlSchemaSet readerSettings = new XmlSchemaSet();
|
|
||||||
|
|
||||||
// Add Schema from Assembly
|
|
||||||
Assembly myAssembly = Assembly.GetExecutingAssembly();
|
|
||||||
using (Stream schemaStream = myAssembly.GetManifestResourceStream(configSchemaFilePath))
|
|
||||||
{
|
|
||||||
using (XmlReader schemaReader = XmlReader.Create(schemaStream))
|
|
||||||
{
|
|
||||||
readerSettings.Add(null, schemaReader);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
actualFileName = Path.GetFileName(configFilePath);
|
|
||||||
|
|
||||||
// Open file reader
|
|
||||||
XDocument xmlConfigFile = XDocument.Load(configFilePath);
|
|
||||||
// Validate file
|
|
||||||
xmlConfigFile.Validate(readerSettings, ValidationHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void ValidationHandler(object sender, ValidationEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.Severity == XmlSeverityType.Warning)
|
|
||||||
{
|
|
||||||
ExceptionManager.ManageError(ERROR_LEVEL.WARNING, e.Message, true);
|
|
||||||
}
|
|
||||||
else if (e.Severity == XmlSeverityType.Error)
|
|
||||||
{
|
|
||||||
ExceptionManager.ManageError(ERROR_LEVEL.FATAL,
|
|
||||||
// "Error while reading file: " + e.Exception.SourceUri +
|
|
||||||
"Error while reading XML file \"" + actualFileName + "\" \n\n" + e.Message,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Private Methods
|
|
||||||
|
|
||||||
#region Public Methods
|
|
||||||
|
|
||||||
public static bool CheckAreaStatus(string areaName)
|
|
||||||
{ // Get Area status ( enabled field) by name
|
|
||||||
switch (areaName)
|
|
||||||
{
|
|
||||||
case AREAS.PRODUCTION_KEY:
|
|
||||||
return ProductionConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.REPORT_KEY:
|
|
||||||
return ProductionConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.ALARMS_KEY:
|
|
||||||
return AlarmsConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.MAINTENANCE_KEY:
|
|
||||||
return MaintenanceConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.UTILITIES_KEY:
|
|
||||||
return UtilitiesConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.SCADA_KEY:
|
|
||||||
return ScadaConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.JOBEDITOR_KEY:
|
|
||||||
return ScadaConfig.Enabled;
|
|
||||||
|
|
||||||
case AREAS.GENERAL_KEY:
|
|
||||||
case AREAS.UNDER_HOOD:
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetInputOperatoType(string tagName)
|
|
||||||
{
|
|
||||||
switch (tagName)
|
|
||||||
{
|
|
||||||
case "modalValue":
|
|
||||||
return "REAL";
|
|
||||||
|
|
||||||
case "buttonsListModal":
|
|
||||||
return "MULTIPLE_BUTTONS";
|
|
||||||
|
|
||||||
case "showValModal":
|
|
||||||
return "SHOW_VAL";
|
|
||||||
|
|
||||||
case "simpleModal":
|
|
||||||
return "MODAL";
|
|
||||||
|
|
||||||
default:
|
|
||||||
return "REAL";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ReadStartupConfig()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ReadServerConfig();
|
|
||||||
ReadAreaConfig();
|
|
||||||
ReadMaintenancesConfig();
|
|
||||||
ReadNcSoftKeys();
|
|
||||||
ReadUserSoftKeysConfig();
|
|
||||||
ReadAlarmsConfig();
|
|
||||||
ReadHeadsConfig();
|
|
||||||
ReadThermoProdConfig();
|
|
||||||
ReadRecipeConfig();
|
|
||||||
ReadModBlockConfig();
|
|
||||||
ReadRiskConfig();
|
|
||||||
ReadAxesConfig();
|
|
||||||
ReadCMSConnectConfig();
|
|
||||||
ReadMacros();
|
|
||||||
ReadScadaFile();
|
|
||||||
ReadM156();
|
|
||||||
ReadDataModel();
|
|
||||||
}
|
|
||||||
catch (XmlException ex)
|
|
||||||
{
|
|
||||||
ExceptionManager.ManageError(ERROR_LEVEL.FATAL,
|
|
||||||
"Error while reading file: " + ex.SourceUri +
|
|
||||||
"\n Error: " + ex.Message,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
var message = ex.Message;
|
|
||||||
if (ex.InnerException != null)
|
|
||||||
message += "\n" + ex.InnerException.Message;
|
|
||||||
ExceptionManager.ManageError(ERROR_LEVEL.FATAL, message, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Public Methods
|
|
||||||
|
|
||||||
#region Read config from file from configuration
|
|
||||||
|
|
||||||
private static void ReadAlarmsConfig()
|
private static void ReadAlarmsConfig()
|
||||||
{
|
{
|
||||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(ALARMS_CONFIG_SCHEMA_PATH, ALARMS_CONFIG_PATH);
|
XDocument xmlConfigFile = GetXmlHandlerWithValidator(ALARMS_CONFIG_SCHEMA_PATH, ALARMS_CONFIG_PATH);
|
||||||
@@ -399,7 +127,10 @@ namespace Thermo.Active.Config
|
|||||||
{
|
{
|
||||||
Id = Convert.ToInt16(x.Attribute("id").Value),
|
Id = Convert.ToInt16(x.Attribute("id").Value),
|
||||||
Name = x.Attribute("name").Value,
|
Name = x.Attribute("name").Value,
|
||||||
Type = GetTActAxes_Type(x.Attribute("type").Value)
|
MasterId = Convert.ToInt16(x.Attribute("master").Value),
|
||||||
|
EnabledWord = Convert.ToInt16(x.Attribute("enabledWord").Value),
|
||||||
|
Type = GetTActAxes_Type(x.Attribute("type").Value),
|
||||||
|
IsVisible = Convert.ToBoolean(x.Attribute("enabled").Value)
|
||||||
})
|
})
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
@@ -446,6 +177,15 @@ namespace Thermo.Active.Config
|
|||||||
CmsConnectConfig.Gateway = tempGatewayConfigModel;
|
CmsConnectConfig.Gateway = tempGatewayConfigModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void ReadDataModel()
|
||||||
|
{
|
||||||
|
XDocument xmlConfigFile = GetXmlHandler(CONNECT_DATAMODEL_CONFIG_PATH);
|
||||||
|
XElement el = xmlConfigFile.Descendants("Machine").First();
|
||||||
|
CMSConnectEntry = new Dictionary<string, string>();
|
||||||
|
ElaborateDataModel(el, el.Name.LocalName, ref CMSConnectEntry);
|
||||||
|
CMSConnectDataModel = File.ReadAllText(CONNECT_DATAMODEL_CONFIG_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
private static void ReadHeadsConfig()
|
private static void ReadHeadsConfig()
|
||||||
{
|
{
|
||||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(HEADS_CONFIG_SCHEMA_PATH, HEADS_CONFIG_PATH);
|
XDocument xmlConfigFile = GetXmlHandlerWithValidator(HEADS_CONFIG_SCHEMA_PATH, HEADS_CONFIG_PATH);
|
||||||
@@ -469,6 +209,56 @@ namespace Thermo.Active.Config
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IO config setup from file
|
||||||
|
/// </summary>
|
||||||
|
private static void ReadIOConfig()
|
||||||
|
{
|
||||||
|
XDocument xmlConfigFile = GetXmlHandlerWithValidator(IO_CONFIG_SCHEMA_PATH, IO_CONFIG_PATH);
|
||||||
|
// Read head config from XML file
|
||||||
|
IOConfig = xmlConfigFile
|
||||||
|
.Root
|
||||||
|
.Elements()
|
||||||
|
.Select(x => new IOConfigModel()
|
||||||
|
{
|
||||||
|
Id = Convert.ToInt16(x.Element("id").Value),
|
||||||
|
Category = GetTActIO_Type(x.Element("category").Value),
|
||||||
|
Bank = x.Element("bank") != null ? x.Element("bank").Value : "0",
|
||||||
|
Position = x.Element("position") != null ? x.Element("position").Value : "0",
|
||||||
|
Page = x.Element("page") != null ? x.Element("page").Value : "",
|
||||||
|
Wire = x.Element("wire") != null ? x.Element("wire").Value : "",
|
||||||
|
Profinet = x.Element("profinet") != null ? x.Element("profinet").Value : "",
|
||||||
|
DisableForce = x.Element("disableForce") != null ? Convert.ToBoolean(x.Element("disableForce").Value) : false
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ReadM156()
|
||||||
|
{
|
||||||
|
// Get Areas file handler
|
||||||
|
XDocument xmlConfigFile = GetXmlHandlerWithValidator(M156_CONFIG_SCHEMA_PATH, M156_CONFIG_PATH);
|
||||||
|
|
||||||
|
InputsOperatorConfig = xmlConfigFile
|
||||||
|
.Descendants("inputsOperator")
|
||||||
|
.Elements()
|
||||||
|
.Select(x => new InputOperatorConfigModel()
|
||||||
|
{
|
||||||
|
Id = Convert.ToInt32(x.Element("id").Value),
|
||||||
|
Messages = x.Element("title").Elements().ToDictionary( // Read localized names and convert into a dictionary
|
||||||
|
y => y.Attribute("langKey").Value, y => y.Value
|
||||||
|
),
|
||||||
|
Buttons = x.Element("buttons")?.Elements().ToDictionary( // Read buttons data and convert into a dictionary
|
||||||
|
y => Convert.ToByte(y.Element("value").Value),
|
||||||
|
y => y.Element("title").Elements().ToDictionary( // Read localized names and convert into a dictionary
|
||||||
|
z => z.Attribute("langKey").Value,
|
||||||
|
z => z.Value
|
||||||
|
)
|
||||||
|
),
|
||||||
|
Type = GetInputOperatoType(x.Name.ToString())
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Module config setup from file
|
/// Module config setup from file
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -586,7 +376,8 @@ namespace Thermo.Active.Config
|
|||||||
{
|
{
|
||||||
Canale = Convert.ToInt16(y.Attribute("canale").Value),
|
Canale = Convert.ToInt16(y.Attribute("canale").Value),
|
||||||
Riga = Convert.ToInt16(y.Attribute("riga").Value),
|
Riga = Convert.ToInt16(y.Attribute("riga").Value),
|
||||||
Tipo = Convert.ToInt16(y.Attribute("tipo").Value)
|
Tipo = Convert.ToInt16(y.Attribute("tipo").Value),
|
||||||
|
IdGruppo = Convert.ToInt16(y.Attribute("idGruppo").Value),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.ToList()
|
.ToList()
|
||||||
@@ -694,7 +485,8 @@ namespace Thermo.Active.Config
|
|||||||
Column = numCol,
|
Column = numCol,
|
||||||
IdChannel = resistenza.Canale,
|
IdChannel = resistenza.Canale,
|
||||||
Dimension = riferimento.Dimensione,
|
Dimension = riferimento.Dimensione,
|
||||||
IdReflector = riflettore.Tipo
|
IdReflector = riflettore.Tipo,
|
||||||
|
IdGroup = resistenza.IdGruppo,
|
||||||
}); ;
|
}); ;
|
||||||
maxRow = resistenza.Riga > maxRow ? resistenza.Riga : maxRow;
|
maxRow = resistenza.Riga > maxRow ? resistenza.Riga : maxRow;
|
||||||
}
|
}
|
||||||
@@ -766,73 +558,51 @@ namespace Thermo.Active.Config
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int zero = 0;
|
private static void ReadScadaFile()
|
||||||
#if false
|
{
|
||||||
foreach (var currResist in listResist.OrderBy(x => x.Row).OrderBy(x => x.Column))
|
DirectoryInfo d = new DirectoryInfo(SCADA_DIRECTORY);
|
||||||
|
FileInfo[] files = d.GetFiles("*.xml");
|
||||||
|
|
||||||
|
int i = 1;
|
||||||
|
// Cycle inside xml files
|
||||||
|
foreach (var file in files)
|
||||||
{
|
{
|
||||||
// se cambio riga --> mi metto a metà della prima cella
|
validateScada(SCADA_PAGES_SCHEMA_PATH, SCADA_DIRECTORY + file.Name);
|
||||||
if (currResist.Row != currRow)
|
|
||||||
{
|
|
||||||
currX = (currResist.Dimension * resistSizeX) / 2;
|
|
||||||
currRow = currResist.Row;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// calcolo coordinata X CumSum
|
|
||||||
currX += (currResist.Dimension * resistSizeX);
|
|
||||||
}
|
|
||||||
//// reset distanza
|
|
||||||
//actDist = warmerPlanSizeX + warmerPlanSizeY;
|
|
||||||
//minDist = warmerPlanSizeX + warmerPlanSizeY;
|
|
||||||
|
|
||||||
// tutti i calcoli in coordinate mm del riscaldo
|
StreamReader sr = new StreamReader(SCADA_DIRECTORY + file.Name);
|
||||||
punto = new ThermoPoint() { X = (int)currX, Y = currResist.Row * resistSizeY + resistSizeY / 2 };
|
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ScadaSchemaModel));
|
||||||
puntoFlirImg = new ThermoPoint();
|
ScadaSchemaModel schema = xmlSerializer.Deserialize(sr) as ScadaSchemaModel;
|
||||||
actDist = ThermoPoint.distance(punto, centro);
|
|
||||||
// cerco i dati del canale attuale...
|
|
||||||
var currChannel = RiskChannelConfig.FirstOrDefault(x => x.IdChannel == currResist.IdChannel);
|
|
||||||
if (currChannel.refPosDistance > actDist)
|
|
||||||
{
|
|
||||||
// riscalo il punto per la dimensione della FLIR
|
|
||||||
puntoFlirImg.X = punto.X * flirImgX / warmerPlanSizeX;
|
|
||||||
puntoFlirImg.Y = punto.Y * flirImgY / warmerPlanSizeY;
|
|
||||||
currChannel.refPos = puntoFlirImg;
|
|
||||||
currChannel.refPosDistance = actDist;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if false
|
// Setup incremental ids
|
||||||
foreach (var currChannel in listChSup)
|
schema.Id = i++;
|
||||||
{
|
|
||||||
// reset distanza
|
var name = Path.GetFileNameWithoutExtension(file.Name);
|
||||||
actDist = warmerPlanSizeX + warmerPlanSizeY;
|
schema.BackgroundImage = GetImageBase64String(SCADA_DIRECTORY + name, schema.BackgroundImage);
|
||||||
minDist = warmerPlanSizeX + warmerPlanSizeY;
|
|
||||||
// recupero resistenze
|
schema.Layers = schema.Layers.Select(x => new ScadaSchemaLayerModel()
|
||||||
var currResist = RiskResistConfig.Where(x => x.IdChannel == currChannel.IdChannel);
|
|
||||||
// ciclo x trovare minimo
|
|
||||||
foreach (var resist in currResist)
|
|
||||||
{
|
{
|
||||||
// tutti i calcoli in coordinate mm del riscaldo
|
Id = i++,
|
||||||
punto = new ThermoPoint() { X = resist.Column * resistSizeX + resistSizeX / 2, Y = resist.Row * resistSizeY + resistSizeY / 2 };
|
Buttons = x.Buttons.Select(y => { y.Id = i++; return y; }).ToArray(),
|
||||||
puntoFlirImg = new ThermoPoint();
|
Images = x.Images.Select(y =>
|
||||||
actDist = ThermoPoint.distance(punto, centro);
|
|
||||||
if (actDist < minDist)
|
|
||||||
{
|
{
|
||||||
// riscalo il punto per la dimensione della FLIR
|
y.Id = i++;
|
||||||
puntoFlirImg.X = punto.X * flirImgX / warmerPlanSizeX;
|
y.Name = GetImageBase64String(SCADA_DIRECTORY + name, y.Name);
|
||||||
puntoFlirImg.Y = punto.Y * flirImgY / warmerPlanSizeY;
|
return y;
|
||||||
//// OLD coordinate in mm
|
})
|
||||||
//currChannel.refPos = punto;
|
.ToArray(),
|
||||||
// aggiorno conf channels con coord in punti FLIR
|
Labels = x.Labels.Select(y => { y.Id = i++; return y; }).ToArray(),
|
||||||
currChannel.refPos = puntoFlirImg;
|
ProgressBars = x.ProgressBars.Select(y => { y.Id = i++; return y; }).ToArray(),
|
||||||
// riporto minimo aggiornato
|
Inputs = x.Inputs.Select(y => { y.Id = i++; return y; }).ToArray()
|
||||||
minDist = actDist;
|
})
|
||||||
}
|
.ToArray();
|
||||||
}
|
|
||||||
|
if (schema.IsInProductionPage == true)
|
||||||
|
ProductionScadaSchema.Add(schema);
|
||||||
|
else
|
||||||
|
ConfiguredScadaSchema.Add(schema);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -898,6 +668,104 @@ namespace Thermo.Active.Config
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void SetAreaValue(ref AreasConfigModel areasConfig, XElement element)
|
||||||
|
{
|
||||||
|
// Set area model with xml data
|
||||||
|
areasConfig = new AreasConfigModel()
|
||||||
|
{
|
||||||
|
Name = element.Name.ToString(),
|
||||||
|
Enabled = Convert.ToBoolean(element.Element("enabled").Value),
|
||||||
|
AllowExternalBrowser = Convert.ToBoolean(element.Element("allowExternalBrowser").Value),
|
||||||
|
NcNeeded = Convert.ToBoolean(element.Element("ncNeeded").Value)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetAreaValueByName(XElement element)
|
||||||
|
{
|
||||||
|
// Choose which area to be set
|
||||||
|
switch (element.Name.ToString())
|
||||||
|
{
|
||||||
|
case AREAS.PRODUCTION_KEY:
|
||||||
|
SetAreaValue(ref ProductionConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.REPORT_KEY:
|
||||||
|
SetAreaValue(ref ReportConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.ALARMS_KEY:
|
||||||
|
SetAreaValue(ref AlarmsConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.MAINTENANCE_KEY:
|
||||||
|
SetAreaValue(ref MaintenanceConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.UTILITIES_KEY:
|
||||||
|
SetAreaValue(ref UtilitiesConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.SCADA_KEY:
|
||||||
|
SetAreaValue(ref ScadaConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.JOBEDITOR_KEY:
|
||||||
|
SetAreaValue(ref JobEditorConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.USERS_KEY:
|
||||||
|
SetAreaValue(ref UsersConfig, element);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AREAS.THERMO_HOOD_KEY:
|
||||||
|
SetAreaValue(ref ThermoHoodConfig, element);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void validateScada(string configSchemaFilePath, string configFilePath)
|
||||||
|
{
|
||||||
|
// Create new instance
|
||||||
|
XmlSchemaSet readerSettings = new XmlSchemaSet();
|
||||||
|
|
||||||
|
// Add Schema from Assembly
|
||||||
|
Assembly myAssembly = Assembly.GetExecutingAssembly();
|
||||||
|
using (Stream schemaStream = myAssembly.GetManifestResourceStream(configSchemaFilePath))
|
||||||
|
{
|
||||||
|
using (XmlReader schemaReader = XmlReader.Create(schemaStream))
|
||||||
|
{
|
||||||
|
readerSettings.Add(null, schemaReader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
actualFileName = Path.GetFileName(configFilePath);
|
||||||
|
|
||||||
|
// Open file reader
|
||||||
|
XDocument xmlConfigFile = XDocument.Load(configFilePath);
|
||||||
|
// Validate file
|
||||||
|
xmlConfigFile.Validate(readerSettings, ValidationHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ValidationHandler(object sender, ValidationEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Severity == XmlSeverityType.Warning)
|
||||||
|
{
|
||||||
|
ExceptionManager.ManageError(ERROR_LEVEL.WARNING, e.Message, true);
|
||||||
|
}
|
||||||
|
else if (e.Severity == XmlSeverityType.Error)
|
||||||
|
{
|
||||||
|
ExceptionManager.ManageError(ERROR_LEVEL.FATAL,
|
||||||
|
// "Error while reading file: " + e.Exception.SourceUri +
|
||||||
|
"Error while reading XML file \"" + actualFileName + "\" \n\n" + e.Message,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Private Methods
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
public static string CalculateHash(string filename)
|
public static string CalculateHash(string filename)
|
||||||
{
|
{
|
||||||
using (var sha = SHA1.Create())
|
using (var sha = SHA1.Create())
|
||||||
@@ -910,6 +778,61 @@ namespace Thermo.Active.Config
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool CheckAreaStatus(string areaName)
|
||||||
|
{ // Get Area status ( enabled field) by name
|
||||||
|
switch (areaName)
|
||||||
|
{
|
||||||
|
case AREAS.PRODUCTION_KEY:
|
||||||
|
return ProductionConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.REPORT_KEY:
|
||||||
|
return ProductionConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.ALARMS_KEY:
|
||||||
|
return AlarmsConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.MAINTENANCE_KEY:
|
||||||
|
return MaintenanceConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.UTILITIES_KEY:
|
||||||
|
return UtilitiesConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.SCADA_KEY:
|
||||||
|
return ScadaConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.JOBEDITOR_KEY:
|
||||||
|
return ScadaConfig.Enabled;
|
||||||
|
|
||||||
|
case AREAS.GENERAL_KEY:
|
||||||
|
case AREAS.UNDER_HOOD:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetInputOperatoType(string tagName)
|
||||||
|
{
|
||||||
|
switch (tagName)
|
||||||
|
{
|
||||||
|
case "modalValue":
|
||||||
|
return "REAL";
|
||||||
|
|
||||||
|
case "buttonsListModal":
|
||||||
|
return "MULTIPLE_BUTTONS";
|
||||||
|
|
||||||
|
case "showValModal":
|
||||||
|
return "SHOW_VAL";
|
||||||
|
|
||||||
|
case "simpleModal":
|
||||||
|
return "MODAL";
|
||||||
|
|
||||||
|
default:
|
||||||
|
return "REAL";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void ReadAssistanceConfig()
|
public static void ReadAssistanceConfig()
|
||||||
{
|
{
|
||||||
//Read Standard CMS Configuration
|
//Read Standard CMS Configuration
|
||||||
@@ -1110,6 +1033,8 @@ namespace Thermo.Active.Config
|
|||||||
MTCApplicationName = x.Element("MTCApplicationName").Value,
|
MTCApplicationName = x.Element("MTCApplicationName").Value,
|
||||||
MaxAlarmsRows = Convert.ToInt32(x.Element("maxAlarmsRows").Value),
|
MaxAlarmsRows = Convert.ToInt32(x.Element("maxAlarmsRows").Value),
|
||||||
AlarmToDelete = Convert.ToInt32(x.Element("alarmToDelete").Value),
|
AlarmToDelete = Convert.ToInt32(x.Element("alarmToDelete").Value),
|
||||||
|
MaxSheetHistoryRows = Convert.ToInt32(x.Element("maxSheetHistoryRows").Value),
|
||||||
|
SheetHistoryToDelete = Convert.ToInt32(x.Element("sheetHistoryToDelete").Value),
|
||||||
CmsConnectReady = Convert.ToBoolean(x.Element("CMSConnectReady").Value)
|
CmsConnectReady = Convert.ToBoolean(x.Element("CMSConnectReady").Value)
|
||||||
}).FirstOrDefault();
|
}).FirstOrDefault();
|
||||||
|
|
||||||
@@ -1150,6 +1075,46 @@ namespace Thermo.Active.Config
|
|||||||
.ToDictionary(x => x.Key, x => x.Value);
|
.ToDictionary(x => x.Key, x => x.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Read config from file from configuration
|
public static void ReadStartupConfig()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ReadServerConfig();
|
||||||
|
ReadAreaConfig();
|
||||||
|
ReadMaintenancesConfig();
|
||||||
|
ReadNcSoftKeys();
|
||||||
|
ReadUserSoftKeysConfig();
|
||||||
|
ReadAlarmsConfig();
|
||||||
|
ReadHeadsConfig();
|
||||||
|
ReadThermoProdConfig();
|
||||||
|
ReadRecipeConfig();
|
||||||
|
ReadModBlockConfig();
|
||||||
|
ReadIOConfig();
|
||||||
|
ReadRiskConfig();
|
||||||
|
ReadAxesConfig();
|
||||||
|
ReadCMSConnectConfig();
|
||||||
|
ReadMacros();
|
||||||
|
ReadScadaFile();
|
||||||
|
ReadM156();
|
||||||
|
ReadDataModel();
|
||||||
|
}
|
||||||
|
catch (XmlException ex)
|
||||||
|
{
|
||||||
|
ExceptionManager.ManageError(ERROR_LEVEL.FATAL,
|
||||||
|
"Error while reading file: " + ex.SourceUri +
|
||||||
|
"\n Error: " + ex.Message,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
var message = ex.Message;
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
message += "\n" + ex.InnerException.Message;
|
||||||
|
ExceptionManager.ManageError(ERROR_LEVEL.FATAL, message, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,6 +65,9 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="ServerConfig.cs" />
|
<Compile Include="ServerConfig.cs" />
|
||||||
<Compile Include="ServerConfigController.cs" />
|
<Compile Include="ServerConfigController.cs" />
|
||||||
|
<Content Include="Config\IOConfig.xml">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="Config\thermoProdConfig.xml">
|
<Content Include="Config\thermoProdConfig.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
@@ -215,6 +218,10 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Config\IOConfigValidator.xsd">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
<None Include="Config\Recipes\template.tpl">
|
<None Include="Config\Recipes\template.tpl">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
@@ -222,6 +229,9 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<None Include="Config\ThermoConf.json">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Recipes\testa.rcp">
|
<None Include="Recipes\testa.rcp">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
|||||||
@@ -31,6 +31,27 @@
|
|||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<LangVersion>7.3</LangVersion>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
@@ -89,6 +110,10 @@
|
|||||||
<Project>{cbeb631b-abfa-4042-9779-c0060b0dfefe}</Project>
|
<Project>{cbeb631b-abfa-4042-9779-c0060b0dfefe}</Project>
|
||||||
<Name>Thermo.Active.Utils</Name>
|
<Name>Thermo.Active.Utils</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Thermo.Cam.Utils\Thermo.Cam.Utils.csproj">
|
||||||
|
<Project>{E4587942-498B-4AA7-9CC9-9304EB2D05C8}</Project>
|
||||||
|
<Name>Thermo.Cam.Utils</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ using Thermo.Active.Model.DTOModels.ThProd;
|
|||||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||||
using Thermo.Active.Model.DTOModels.ThWarmers;
|
using Thermo.Active.Model.DTOModels.ThWarmers;
|
||||||
using Thermo.Active.NC;
|
using Thermo.Active.NC;
|
||||||
using Thermo.Active.Thermocamera;
|
|
||||||
using Thermo.Active.Utils;
|
using Thermo.Active.Utils;
|
||||||
using static CMS_CORE_Library.Models.DataStructures;
|
using static CMS_CORE_Library.Models.DataStructures;
|
||||||
using static Thermo.Active.Config.ServerConfig;
|
using static Thermo.Active.Config.ServerConfig;
|
||||||
@@ -30,6 +29,9 @@ using static Thermo.Active.Utils.ExceptionManager;
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThIO;
|
||||||
|
using Thermo.Active.Thermocamera;
|
||||||
|
|
||||||
|
|
||||||
public static class ThreadsFunctions
|
public static class ThreadsFunctions
|
||||||
{
|
{
|
||||||
@@ -50,8 +52,109 @@ public static class ThreadsFunctions
|
|||||||
|
|
||||||
#endregion Public Fields
|
#endregion Public Fields
|
||||||
|
|
||||||
|
#region Internal Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Swap x/y requesto from FLIR camera
|
||||||
|
/// </summary>
|
||||||
|
internal static bool cacheWarmers
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
bool answ = false;
|
||||||
|
bool.TryParse(ConfigurationManager.AppSettings["cacheWarmers"], out answ);
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Internal Properties
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
|
||||||
|
private static int CalcSleepTime(int maxSleep, int execTime)
|
||||||
|
{
|
||||||
|
int sleep = 0;
|
||||||
|
// Check if the execution time is greater than the half of the max sleep time
|
||||||
|
if (maxSleep - execTime < maxSleep / 2)
|
||||||
|
{
|
||||||
|
sleep = maxSleep;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sleep = maxSleep - execTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sleep;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool ClientIsRunning()
|
||||||
|
{
|
||||||
|
Process[] p = Process.GetProcessesByName(CLIENT_EXE_NAME_NOEXT);
|
||||||
|
foreach (Process pr in p)
|
||||||
|
{
|
||||||
|
if (pr.MainWindowHandle != IntPtr.Zero)
|
||||||
|
{
|
||||||
|
ShowWindow(pr.MainWindowHandle, 9);
|
||||||
|
SetForegroundWindow(pr.MainWindowHandle);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void clientProcess()
|
||||||
|
{
|
||||||
|
string CMSClientPath = "";
|
||||||
|
// Check if the system is 64/32 bit
|
||||||
|
if (Environment.Is64BitOperatingSystem && File.Exists(CLIENT_PATH_64))
|
||||||
|
CMSClientPath = CLIENT_PATH_64;
|
||||||
|
else if (File.Exists(CLIENT_PATH_86))
|
||||||
|
CMSClientPath = CLIENT_PATH_86;
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(CMSClientPath))
|
||||||
|
{
|
||||||
|
Process pr = Process.Start(CMSClientPath, null);
|
||||||
|
|
||||||
|
if (ServerStartupConfig.AutoOpenCmsClient)
|
||||||
|
{
|
||||||
|
pr.WaitForExit();
|
||||||
|
MessageServices.Current.Publish(SEND_STOP_SERVER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Dictionary<string, string> GetPlcAlarmsTranslations(string language)
|
||||||
|
{
|
||||||
|
using (NcAdapter ncAdapter = new NcAdapter())
|
||||||
|
{
|
||||||
|
Dictionary<string, string> returnValue = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
Dictionary<int, string> messages = new Dictionary<int, string>();
|
||||||
|
// Read data from CN
|
||||||
|
ncAdapter.numericalControl.NC_GetTranslatedPlcMessages(language, ref messages); // Avoid checking error because in the worst case "messages" is empty
|
||||||
|
|
||||||
|
// Id start from 1
|
||||||
|
for (int i = 1; i <= 1024; i++)
|
||||||
|
{
|
||||||
|
// Get configurated alarms
|
||||||
|
var tmpAlarmConfig = InitialAlarmsConfig.Where(x => x.PlcId == i).FirstOrDefault();
|
||||||
|
// Default string
|
||||||
|
string message = string.Format(NOT_CONFIGURATED_ALARM_MESSAGE, i);
|
||||||
|
// If is configurated
|
||||||
|
if (tmpAlarmConfig != null)
|
||||||
|
{
|
||||||
|
// Find translated string
|
||||||
|
message = messages.Where(x => x.Key == tmpAlarmConfig.AlarmId).FirstOrDefault().Value;
|
||||||
|
if (message == null)
|
||||||
|
message = string.Format(NOT_FOUND_ALARM_MESSAGE, i);
|
||||||
|
}
|
||||||
|
// Add to dictionary
|
||||||
|
returnValue.Add(i.ToString("D6") + "|900", message);
|
||||||
|
}
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// restituisce il periodo di campionamento SE configurato, altrimenti 1000 ms
|
/// restituisce il periodo di campionamento SE configurato, altrimenti 1000 ms
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -67,9 +170,120 @@ public static class ThreadsFunctions
|
|||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
|
||||||
|
|
||||||
|
private static void StatReset()
|
||||||
|
{
|
||||||
|
foreach (var value in Counter)
|
||||||
|
{
|
||||||
|
Timers[value.Key] = 0;
|
||||||
|
Counter[value.Key] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void TryNcConnection()
|
||||||
|
{
|
||||||
|
// Stop all the NC threads
|
||||||
|
ThreadsHandler.Stop();
|
||||||
|
StatReset();
|
||||||
|
NcAdapter ncAdapter = new NcAdapter();
|
||||||
|
CmsError libraryError = NO_ERROR;
|
||||||
|
// Run loop until NC is connected
|
||||||
|
while (!ncAdapter.numericalControl.NC_IsConnected())
|
||||||
|
{
|
||||||
|
// Try reconnection
|
||||||
|
libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || libraryError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
|
||||||
|
ManageLibraryError(libraryError);
|
||||||
|
else if (libraryError.errorCode != CMS_ERROR_CODES.OK)
|
||||||
|
{
|
||||||
|
ncAdapter.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send status to UI
|
||||||
|
MessageServices.Current.Publish(SEND_NC_STATUS_UI, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||||
|
// Send status to signalr
|
||||||
|
MessageServices.Current.Publish(SEND_NC_STATUS, null, ncAdapter.numericalControl.NC_IsConnected());
|
||||||
|
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!libraryError.IsError())
|
||||||
|
{
|
||||||
|
if (ServerStartupConfig.AutoOpenCmsClient)
|
||||||
|
StartCMSClient();
|
||||||
|
|
||||||
|
// Start/Restart NC threads
|
||||||
|
ThreadsHandler.StartWorkers();
|
||||||
|
reconnectionIsRunning = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Private Methods
|
#endregion Private Methods
|
||||||
|
|
||||||
#region Functions
|
#region Internal Methods
|
||||||
|
|
||||||
|
internal static void StatThread()
|
||||||
|
{
|
||||||
|
int samplePeriod = samplMsec("stats") > 0 ? samplMsec("stats") : 1000;
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
long totTime = 0;
|
||||||
|
foreach (var value in Counter)
|
||||||
|
{
|
||||||
|
if (ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
|
||||||
|
{
|
||||||
|
totTime += Timers[value.Key];
|
||||||
|
ThreadsHandler.RunningThreadStatus[value.Key] = $"{((double)Timers[value.Key] / samplePeriod):P1} | {(Timers[value.Key] / Counter[value.Key])} ms x {Counter[value.Key]}";
|
||||||
|
Timers[value.Key] = 0;
|
||||||
|
Counter[value.Key] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// aggiungo totale
|
||||||
|
string grandTotal = $"{((double)totTime / samplePeriod):P1} | {totTime} ms";
|
||||||
|
if (ThreadsHandler.RunningThreadStatus.ContainsKey(" TOTAL"))
|
||||||
|
{
|
||||||
|
ThreadsHandler.RunningThreadStatus[" TOTAL"] = grandTotal;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThreadsHandler.RunningThreadStatus.Add(" TOTAL", grandTotal);
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus);
|
||||||
|
|
||||||
|
Thread.Sleep(samplePeriod);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void UpdateStat(string functionName, long timer)
|
||||||
|
{
|
||||||
|
if (!Timers.ContainsKey(functionName))
|
||||||
|
Timers.TryAdd(functionName, timer);
|
||||||
|
else
|
||||||
|
Timers[functionName] += timer;
|
||||||
|
|
||||||
|
if (!Counter.ContainsKey(functionName))
|
||||||
|
Counter.TryAdd(functionName, 1);
|
||||||
|
else
|
||||||
|
Counter[functionName]++;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Internal Methods
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
public static void AbortNcConnection()
|
||||||
|
{
|
||||||
|
if (ConnThread != null && ConnThread.IsAlive)
|
||||||
|
ConnThread.Abort();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Manage action for conf request
|
/// Manage action for conf request
|
||||||
@@ -125,65 +339,126 @@ public static class ThreadsFunctions
|
|||||||
public static void ManageFlirCamera()
|
public static void ManageFlirCamera()
|
||||||
{
|
{
|
||||||
NcAdapter ncAdapter = new NcAdapter();
|
NcAdapter ncAdapter = new NcAdapter();
|
||||||
Stopwatch sw = new Stopwatch();
|
// verifica abilitazione thermocam
|
||||||
try
|
if (NcAdapter.EnableThermocam)
|
||||||
{
|
{
|
||||||
// Try connection
|
// avvio oggetto thermocam
|
||||||
CmsError libraryError = ncAdapter.Connect();
|
ThermoCamComunicator TCCom = new ThermoCamComunicator(true);
|
||||||
if (libraryError.errorCode != 0)
|
Stopwatch sw = new Stopwatch();
|
||||||
ManageLibraryError(libraryError);
|
try
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
{
|
||||||
bool flirImageReq = false;
|
// Try connection
|
||||||
sw.Restart();
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
int tOut = 30000;
|
if (libraryError.errorCode != 0)
|
||||||
|
ManageLibraryError(libraryError);
|
||||||
|
|
||||||
// Check if client is connected
|
while (true)
|
||||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
|
||||||
{
|
{
|
||||||
// check if there is a photo request pending
|
bool flirImageReq = false;
|
||||||
libraryError = ncAdapter.checkFlirImageRequest(out flirImageReq);
|
sw.Restart();
|
||||||
if (libraryError.IsError())
|
|
||||||
ManageLibraryError(libraryError);
|
|
||||||
|
|
||||||
if (flirImageReq)
|
// Check if client is connected
|
||||||
|
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||||
{
|
{
|
||||||
bool done = false;
|
// check if there is a photo request pending
|
||||||
// if requested --> give ack!
|
libraryError = ncAdapter.checkFlirImageRequest(out flirImageReq);
|
||||||
ncAdapter.ManageFlirStrobe();
|
if (libraryError.IsError())
|
||||||
// requesto photo from library
|
ManageLibraryError(libraryError);
|
||||||
done = ThermocameraComunicator.getInstance().takePicture(tOut);
|
|
||||||
if (done)
|
if (flirImageReq)
|
||||||
{
|
{
|
||||||
// init
|
bool done = false;
|
||||||
Dictionary<int, double> actualTemp = new Dictionary<int, double>();
|
// if requested --> give ack!
|
||||||
Dictionary<int, ThermoPoint> chPoints = new Dictionary<int, ThermoPoint>();
|
ncAdapter.ManageFlirStrobe();
|
||||||
// recupero punti centrali resistenze
|
// requesto photo from library
|
||||||
ncAdapter.GetWarmersChannelCenterPoints(out chPoints);
|
NcAdapter.lastThermoImage = TCCom.takePicture();
|
||||||
// richiesta temperature per i punti
|
done = !string.IsNullOrEmpty(NcAdapter.lastThermoImage);
|
||||||
done = ThermocameraComunicator.getInstance().readMultiTemperatures(chPoints, tOut, out actualTemp);
|
if (done)
|
||||||
// salvo dati temp sul PLC
|
{
|
||||||
ncAdapter.WriteRecipeWarmChTCamTempAct(actualTemp);
|
// init
|
||||||
// give PLC strobe for uploaded Actual TEMP from image
|
List<Thermo.Cam.Utils.MeasurePoint> measuredpoints = new List<Thermo.Cam.Utils.MeasurePoint>();
|
||||||
ncAdapter.SendTCamImageReadyStrb();
|
Dictionary<int, double> actualTemp = new Dictionary<int, double>();
|
||||||
|
Dictionary<int, ThermoPoint> chPoints = new Dictionary<int, ThermoPoint>();
|
||||||
|
// recupero punti centrali resistenze
|
||||||
|
ncAdapter.GetWarmersChannelCenterPoints(out chPoints);
|
||||||
|
// richiesta temperature per i punti
|
||||||
|
done = TCCom.readMultiTemperatures("", chPoints, out measuredpoints);
|
||||||
|
// converto in actualTemp
|
||||||
|
foreach (var item in measuredpoints)
|
||||||
|
{
|
||||||
|
actualTemp.Add(item.Id, item.Temperature);
|
||||||
|
}
|
||||||
|
// salvo dati temp sul PLC
|
||||||
|
ncAdapter.WriteRecipeWarmChTCamTempAct(actualTemp);
|
||||||
|
NcAdapter.lastImageTaken = DateTime.Now;
|
||||||
|
// give PLC strobe for uploaded Actual TEMP from image
|
||||||
|
ncAdapter.SendTCamImageReadyStrb();
|
||||||
|
|
||||||
|
|
||||||
|
MessageServices.Current.Publish(SEND_NEWTCAMIMAGE, null, NcAdapter.lastImageTaken);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// salvo status thermocam...
|
||||||
|
NcAdapter.cameraIsConnected = TCCom.CameraIsConnected;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
RestoreConnection();
|
||||||
|
|
||||||
|
sw.Stop();
|
||||||
|
|
||||||
|
// Update thread timer
|
||||||
|
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||||
|
// Wait
|
||||||
|
Thread.Sleep(CalcSleepTime(samplMsec("FlirCamera"), (int)sw.ElapsedMilliseconds));
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
RestoreConnection();
|
catch (ThreadAbortException)
|
||||||
|
{
|
||||||
sw.Stop();
|
ncAdapter.Dispose();
|
||||||
|
// chiudo thermocam
|
||||||
// Update thread timer
|
TCCom.Dispose();
|
||||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
}
|
||||||
// Wait
|
finally
|
||||||
Thread.Sleep(CalcSleepTime(samplMsec("FlirCamera"), (int)sw.ElapsedMilliseconds));
|
{
|
||||||
|
ncAdapter.Dispose();
|
||||||
|
// chiudo thermocam
|
||||||
|
TCCom.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (ThreadAbortException)
|
}
|
||||||
|
|
||||||
|
public static void ManageLibraryError(CmsError libraryError)
|
||||||
|
{
|
||||||
|
switch (libraryError.errorCode)
|
||||||
{
|
{
|
||||||
ncAdapter.Dispose();
|
case CMS_ERROR_CODES.NC_PROD_ERROR:
|
||||||
|
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMS_ERROR_CODES.NOT_CONNECTED:
|
||||||
|
RestoreConnection(); // If not connected try reconnection
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND:
|
||||||
|
case CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND:
|
||||||
|
case CMS_ERROR_CODES.OPTION_NOT_CONSISTENT:
|
||||||
|
ManageError(ERROR_LEVEL.FATAL, libraryError.localizationKey);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING:
|
||||||
|
ManageError(ERROR_LEVEL.FATAL, "SIEMENS HMI NOT RUNNING");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMS_ERROR_CODES.SELECTED_PROCESS:
|
||||||
|
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CMS_ERROR_CODES.INTERNAL_ERROR:
|
||||||
|
ManageException(ERROR_LEVEL.FATAL, libraryError.exception);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,6 +688,55 @@ public static class ThreadsFunctions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Lettura valorichannelsIO
|
||||||
|
/// </summary>
|
||||||
|
public static void ReadChannelsIoData()
|
||||||
|
{
|
||||||
|
NcAdapter ncAdapter = new NcAdapter();
|
||||||
|
Stopwatch sw = new Stopwatch();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.errorCode != 0)
|
||||||
|
ManageLibraryError(libraryError);
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
sw.Restart();
|
||||||
|
|
||||||
|
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||||
|
{
|
||||||
|
// Get Data from config and PLC
|
||||||
|
libraryError = ncAdapter.ReadValIO(out DTOChannelsIOVal currChannelsIoVal);
|
||||||
|
if (libraryError.errorCode != 0)
|
||||||
|
ManageLibraryError(libraryError);
|
||||||
|
else
|
||||||
|
// Send through signalR
|
||||||
|
MessageServices.Current.Publish(SEND_CHANNELS_IO_DATA, null, currChannelsIoVal);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
RestoreConnection();
|
||||||
|
|
||||||
|
sw.Stop();
|
||||||
|
|
||||||
|
//Update thread timer
|
||||||
|
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||||
|
|
||||||
|
// verifico se periodo rapido o veloce...
|
||||||
|
int timerAct = RedisController.FastIoSample ? samplMsec("channelsIoFast") : samplMsec("channelsIoSlow");
|
||||||
|
// Wait
|
||||||
|
Thread.Sleep(CalcSleepTime(timerAct, (int)sw.ElapsedMilliseconds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (ThreadAbortException)
|
||||||
|
{
|
||||||
|
ncAdapter.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void ReadEnabledFunctionality()
|
public static void ReadEnabledFunctionality()
|
||||||
{
|
{
|
||||||
NcAdapter ncAdapter = new NcAdapter();
|
NcAdapter ncAdapter = new NcAdapter();
|
||||||
@@ -1197,19 +1521,6 @@ public static class ThreadsFunctions
|
|||||||
ncAdapter.Dispose();
|
ncAdapter.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// Swap x/y requesto from FLIR camera
|
|
||||||
/// </summary>
|
|
||||||
internal static bool cacheWarmers
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
bool answ = false;
|
|
||||||
bool.TryParse(ConfigurationManager.AppSettings["cacheWarmers"], out answ);
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void ReadWarmersData()
|
public static void ReadWarmersData()
|
||||||
{
|
{
|
||||||
@@ -1263,6 +1574,21 @@ public static class ThreadsFunctions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void RestoreConnection()
|
||||||
|
{
|
||||||
|
if (reconnectionIsRunning == false)
|
||||||
|
{ // Set thread as running state
|
||||||
|
reconnectionIsRunning = true;
|
||||||
|
|
||||||
|
// Start reconnection thread
|
||||||
|
ConnThread = new Thread(() =>
|
||||||
|
TryNcConnection()
|
||||||
|
);
|
||||||
|
|
||||||
|
ConnThread.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetupCmsConnect()
|
public static void SetupCmsConnect()
|
||||||
{
|
{
|
||||||
NcAdapter ncAdapter = new NcAdapter();
|
NcAdapter ncAdapter = new NcAdapter();
|
||||||
@@ -1341,234 +1667,6 @@ public static class ThreadsFunctions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Functions
|
|
||||||
|
|
||||||
#region SupportFunctions
|
|
||||||
|
|
||||||
private static int CalcSleepTime(int maxSleep, int execTime)
|
|
||||||
{
|
|
||||||
int sleep = 0;
|
|
||||||
// Check if the execution time is greater than the half of the max sleep time
|
|
||||||
if (maxSleep - execTime < maxSleep / 2)
|
|
||||||
{
|
|
||||||
sleep = maxSleep;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sleep = maxSleep - execTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
return sleep;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool ClientIsRunning()
|
|
||||||
{
|
|
||||||
Process[] p = Process.GetProcessesByName(CLIENT_EXE_NAME_NOEXT);
|
|
||||||
foreach (Process pr in p)
|
|
||||||
{
|
|
||||||
if (pr.MainWindowHandle != IntPtr.Zero)
|
|
||||||
{
|
|
||||||
ShowWindow(pr.MainWindowHandle, 9);
|
|
||||||
SetForegroundWindow(pr.MainWindowHandle);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void clientProcess()
|
|
||||||
{
|
|
||||||
string CMSClientPath = "";
|
|
||||||
// Check if the system is 64/32 bit
|
|
||||||
if (Environment.Is64BitOperatingSystem && File.Exists(CLIENT_PATH_64))
|
|
||||||
CMSClientPath = CLIENT_PATH_64;
|
|
||||||
else if (File.Exists(CLIENT_PATH_86))
|
|
||||||
CMSClientPath = CLIENT_PATH_86;
|
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(CMSClientPath))
|
|
||||||
{
|
|
||||||
Process pr = Process.Start(CMSClientPath, null);
|
|
||||||
|
|
||||||
if (ServerStartupConfig.AutoOpenCmsClient)
|
|
||||||
{
|
|
||||||
pr.WaitForExit();
|
|
||||||
MessageServices.Current.Publish(SEND_STOP_SERVER);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Dictionary<string, string> GetPlcAlarmsTranslations(string language)
|
|
||||||
{
|
|
||||||
using (NcAdapter ncAdapter = new NcAdapter())
|
|
||||||
{
|
|
||||||
Dictionary<string, string> returnValue = new Dictionary<string, string>();
|
|
||||||
|
|
||||||
Dictionary<int, string> messages = new Dictionary<int, string>();
|
|
||||||
// Read data from CN
|
|
||||||
ncAdapter.numericalControl.NC_GetTranslatedPlcMessages(language, ref messages); // Avoid checking error because in the worst case "messages" is empty
|
|
||||||
|
|
||||||
// Id start from 1
|
|
||||||
for (int i = 1; i <= 1024; i++)
|
|
||||||
{
|
|
||||||
// Get configurated alarms
|
|
||||||
var tmpAlarmConfig = InitialAlarmsConfig.Where(x => x.PlcId == i).FirstOrDefault();
|
|
||||||
// Default string
|
|
||||||
string message = string.Format(NOT_CONFIGURATED_ALARM_MESSAGE, i);
|
|
||||||
// If is configurated
|
|
||||||
if (tmpAlarmConfig != null)
|
|
||||||
{
|
|
||||||
// Find translated string
|
|
||||||
message = messages.Where(x => x.Key == tmpAlarmConfig.AlarmId).FirstOrDefault().Value;
|
|
||||||
if (message == null)
|
|
||||||
message = string.Format(NOT_FOUND_ALARM_MESSAGE, i);
|
|
||||||
}
|
|
||||||
// Add to dictionary
|
|
||||||
returnValue.Add(i.ToString("D6") + "|900", message);
|
|
||||||
}
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
private static extern bool SetForegroundWindow(IntPtr hWnd);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
|
||||||
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
|
|
||||||
|
|
||||||
private static void StatReset()
|
|
||||||
{
|
|
||||||
foreach (var value in Counter)
|
|
||||||
{
|
|
||||||
Timers[value.Key] = 0;
|
|
||||||
Counter[value.Key] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void TryNcConnection()
|
|
||||||
{
|
|
||||||
// Stop all the NC threads
|
|
||||||
ThreadsHandler.Stop();
|
|
||||||
StatReset();
|
|
||||||
NcAdapter ncAdapter = new NcAdapter();
|
|
||||||
CmsError libraryError = NO_ERROR;
|
|
||||||
// Run loop until NC is connected
|
|
||||||
while (!ncAdapter.numericalControl.NC_IsConnected())
|
|
||||||
{
|
|
||||||
// Try reconnection
|
|
||||||
libraryError = ncAdapter.Connect();
|
|
||||||
if (libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || libraryError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || libraryError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
|
|
||||||
ManageLibraryError(libraryError);
|
|
||||||
else if (libraryError.errorCode != CMS_ERROR_CODES.OK)
|
|
||||||
{
|
|
||||||
ncAdapter.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Send status to UI
|
|
||||||
MessageServices.Current.Publish(SEND_NC_STATUS_UI, null, ncAdapter.numericalControl.NC_IsConnected());
|
|
||||||
// Send status to signalr
|
|
||||||
MessageServices.Current.Publish(SEND_NC_STATUS, null, ncAdapter.numericalControl.NC_IsConnected());
|
|
||||||
|
|
||||||
Thread.Sleep(1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!libraryError.IsError())
|
|
||||||
{
|
|
||||||
if (ServerStartupConfig.AutoOpenCmsClient)
|
|
||||||
StartCMSClient();
|
|
||||||
|
|
||||||
// Start/Restart NC threads
|
|
||||||
ThreadsHandler.StartWorkers();
|
|
||||||
reconnectionIsRunning = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void StatThread()
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
foreach (var value in Counter)
|
|
||||||
{
|
|
||||||
if (ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
|
|
||||||
{
|
|
||||||
ThreadsHandler.RunningThreadStatus[value.Key] = $"{(Timers[value.Key] / Counter[value.Key])} ms x {Counter[value.Key]}";
|
|
||||||
Timers[value.Key] = 0;
|
|
||||||
Counter[value.Key] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus);
|
|
||||||
|
|
||||||
Thread.Sleep(2000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void UpdateStat(string functionName, long timer)
|
|
||||||
{
|
|
||||||
if (!Timers.ContainsKey(functionName))
|
|
||||||
Timers.TryAdd(functionName, timer);
|
|
||||||
else
|
|
||||||
Timers[functionName] += timer;
|
|
||||||
|
|
||||||
if (!Counter.ContainsKey(functionName))
|
|
||||||
Counter.TryAdd(functionName, 1);
|
|
||||||
else
|
|
||||||
Counter[functionName]++;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void AbortNcConnection()
|
|
||||||
{
|
|
||||||
if (ConnThread != null && ConnThread.IsAlive)
|
|
||||||
ConnThread.Abort();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ManageLibraryError(CmsError libraryError)
|
|
||||||
{
|
|
||||||
switch (libraryError.errorCode)
|
|
||||||
{
|
|
||||||
case CMS_ERROR_CODES.NC_PROD_ERROR:
|
|
||||||
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMS_ERROR_CODES.NOT_CONNECTED:
|
|
||||||
RestoreConnection(); // If not connected try reconnection
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND:
|
|
||||||
case CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND:
|
|
||||||
case CMS_ERROR_CODES.OPTION_NOT_CONSISTENT:
|
|
||||||
ManageError(ERROR_LEVEL.FATAL, libraryError.localizationKey);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING:
|
|
||||||
ManageError(ERROR_LEVEL.FATAL, "SIEMENS HMI NOT RUNNING");
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMS_ERROR_CODES.SELECTED_PROCESS:
|
|
||||||
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMS_ERROR_CODES.INTERNAL_ERROR:
|
|
||||||
ManageException(ERROR_LEVEL.FATAL, libraryError.exception);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RestoreConnection()
|
|
||||||
{
|
|
||||||
if (reconnectionIsRunning == false)
|
|
||||||
{ // Set thread as running state
|
|
||||||
reconnectionIsRunning = true;
|
|
||||||
|
|
||||||
// Start reconnection thread
|
|
||||||
ConnThread = new Thread(() =>
|
|
||||||
TryNcConnection()
|
|
||||||
);
|
|
||||||
|
|
||||||
ConnThread.Start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void StartCMSClient()
|
public static void StartCMSClient()
|
||||||
{
|
{
|
||||||
//Setup the Path Variable
|
//Setup the Path Variable
|
||||||
@@ -1579,5 +1677,5 @@ public static class ThreadsFunctions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion SupportFunctions
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
@@ -36,6 +36,7 @@ namespace Thermo.Active.Core
|
|||||||
ThreadsFunctions.ReadScadaData,
|
ThreadsFunctions.ReadScadaData,
|
||||||
ThreadsFunctions.ReadMComandsData,
|
ThreadsFunctions.ReadMComandsData,
|
||||||
ThreadsFunctions.ReadAxisInfoData,
|
ThreadsFunctions.ReadAxisInfoData,
|
||||||
|
ThreadsFunctions.ReadChannelsIoData,
|
||||||
ThreadsFunctions.ReadM154Data // levare?
|
ThreadsFunctions.ReadM154Data // levare?
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
@@ -38,6 +38,10 @@
|
|||||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
@@ -57,6 +57,10 @@
|
|||||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Thermo.Active.Model.DatabaseModels;
|
||||||
|
using static Thermo.Active.Config.ServerConfig;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Database.Controllers
|
||||||
|
{
|
||||||
|
public class HistorySheetsController : IDisposable
|
||||||
|
{
|
||||||
|
private DatabaseContext dbCtx;
|
||||||
|
|
||||||
|
public HistorySheetsController()
|
||||||
|
{
|
||||||
|
// Initialize database context
|
||||||
|
dbCtx = new DatabaseContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
dbCtx.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistorySheetModel Create(string recipe, short piece, float value1, float value2, float value3, ushort typeval)
|
||||||
|
{
|
||||||
|
HistorySheetModel mod = new HistorySheetModel()
|
||||||
|
{
|
||||||
|
DtEvent = DateTime.Now,
|
||||||
|
RecipeName = recipe,
|
||||||
|
NumDone = piece,
|
||||||
|
FirstVal = value1,
|
||||||
|
SecondVal = value2,
|
||||||
|
ThirdVal = value3,
|
||||||
|
TypeVal = typeval
|
||||||
|
};
|
||||||
|
|
||||||
|
// Add to database
|
||||||
|
dbCtx.HistorySheet.Add(mod);
|
||||||
|
// Commit changes
|
||||||
|
dbCtx.SaveChanges();
|
||||||
|
|
||||||
|
return mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Clean()
|
||||||
|
{
|
||||||
|
if (this.count() >= ServerStartupConfig.MaxSheetHistoryRows)
|
||||||
|
{
|
||||||
|
dbCtx.Database.ExecuteSqlCommand("DELETE FROM historysheets LIMIT {0}", ServerStartupConfig.SheetHistoryToDelete);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<HistorySheetModel> GetData(int start, int number)
|
||||||
|
{
|
||||||
|
// Get page numbers
|
||||||
|
return dbCtx
|
||||||
|
.HistorySheet
|
||||||
|
.OrderByDescending(x => x.DtEvent).Skip(start).Take(number).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<HistorySheetModel> GetData()
|
||||||
|
{
|
||||||
|
// Get page numbers
|
||||||
|
return dbCtx
|
||||||
|
.HistorySheet
|
||||||
|
.OrderByDescending(x => x.DtEvent).ToList();
|
||||||
|
}
|
||||||
|
public int count()
|
||||||
|
{
|
||||||
|
// Get page numbers
|
||||||
|
return dbCtx
|
||||||
|
.HistorySheet.Count();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -6,206 +6,224 @@ using Thermo.Active.Model.DatabaseModels;
|
|||||||
|
|
||||||
namespace Thermo.Active.Database.Controllers
|
namespace Thermo.Active.Database.Controllers
|
||||||
{
|
{
|
||||||
public class ProdInfoController : IDisposable
|
public class ProdInfoController : IDisposable
|
||||||
{
|
{
|
||||||
private DatabaseContext dbCtx;
|
#region Private Fields
|
||||||
|
|
||||||
public ProdInfoController()
|
private DatabaseContext dbCtx;
|
||||||
{
|
|
||||||
// Initialize database context
|
|
||||||
dbCtx = new DatabaseContext();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
#endregion Private Fields
|
||||||
{
|
|
||||||
// Clear database context
|
|
||||||
dbCtx.Dispose();
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Get record by NumDone
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="num"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public ProdInfoModel FindByNumDone(int num)
|
|
||||||
{
|
|
||||||
return dbCtx
|
|
||||||
.ProdInfo
|
|
||||||
.Where(x => x.NumDone == num)
|
|
||||||
.SingleOrDefault();
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Get historical paginated data from DB (DESC ordered)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="numStart"></param>
|
|
||||||
/// <param name="numRecord"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public List<ProdInfoModel> GetPaginatedDesc(int numStart, int numRecord)
|
|
||||||
{
|
|
||||||
int numEnd = numStart - numRecord;
|
|
||||||
// check numEnd
|
|
||||||
if (numEnd < 0)
|
|
||||||
numEnd = 0;
|
|
||||||
// retrieve
|
|
||||||
return dbCtx
|
|
||||||
.ProdInfo
|
|
||||||
.Where(x => x.NumDone <= numStart)
|
|
||||||
//.Where(x => x.NumDone <= numStart && x.NumDone > numEnd)
|
|
||||||
.OrderByDescending(x => x.DtEvent)
|
|
||||||
.Take(numRecord)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Get historical paginated data from DB (ASC ordered)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="numStart"></param>
|
|
||||||
/// <param name="numRecord"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public List<ProdInfoModel> GetPaginatedAsc(int numStart, int numRecord)
|
|
||||||
{
|
|
||||||
int numEnd = numStart + numRecord;
|
|
||||||
// retrieve
|
|
||||||
return dbCtx
|
|
||||||
.ProdInfo
|
|
||||||
.Where(x => x.NumDone >= numStart)
|
|
||||||
.OrderBy(x => x.DtEvent)
|
|
||||||
.Take(numRecord)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Create new prodInfo record on DB
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="NumTarget"></param>
|
|
||||||
/// <param name="NumDone"></param>
|
|
||||||
/// <param name="TimeWarm"></param>
|
|
||||||
/// <param name="TimeVent"></param>
|
|
||||||
/// <param name="TimeVacuum"></param>
|
|
||||||
/// <param name="TimeCycleGross"></param>
|
|
||||||
/// <param name="TimeCycleNet"></param>
|
|
||||||
/// <param name="MaterialTempEndWarm"></param>
|
|
||||||
/// <param name="MaterialTempEndVent"></param>
|
|
||||||
/// <param name="MoldTemp"></param>
|
|
||||||
/// <param name="VacuumReadVal"></param>
|
|
||||||
/// <param name="MouldEnergyOUT"></param>
|
|
||||||
/// <param name="MouldEnergyIN"></param>
|
|
||||||
/// <param name="IsScrap"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public ProdInfoModel Create(short NumTarget, short NumDone, int TimeWarm, int TimeVent, int TimeVacuum, int TimeCycleGross, int TimeCycleNet, double MaterialTempEndWarm, double MaterialTempEndVent, double MoldTemp, double VacuumReadVal, double MouldEnergyOUT, double MouldEnergyIN, bool IsScrap)
|
|
||||||
{
|
|
||||||
// Create database machine model
|
|
||||||
ProdInfoModel prodData = new ProdInfoModel()
|
|
||||||
{
|
|
||||||
DtEvent = DateTime.Now,
|
|
||||||
NumTarget = NumTarget,
|
|
||||||
NumDone = NumDone,
|
|
||||||
TimeWarm = TimeWarm,
|
|
||||||
TimeVent = TimeVent,
|
|
||||||
TimeVacuum = TimeVacuum,
|
|
||||||
TimeCycleGross = TimeCycleGross,
|
|
||||||
TimeCycleNet = TimeCycleNet,
|
|
||||||
MaterialTempEndWarm = MaterialTempEndWarm,
|
|
||||||
MaterialTempEndVent = MaterialTempEndVent,
|
|
||||||
MoldTemp = MoldTemp,
|
|
||||||
VacuumReadVal = VacuumReadVal,
|
|
||||||
MouldEnergyOUT = MouldEnergyOUT,
|
|
||||||
MouldEnergyIN = MouldEnergyIN,
|
|
||||||
IsScrap = IsScrap
|
|
||||||
};
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// Add to database
|
|
||||||
dbCtx.ProdInfo.AddOrUpdate(prodData);
|
|
||||||
//dbCtx.ProdInfo.Add(prodData);
|
|
||||||
// Commit changes
|
|
||||||
dbCtx.SaveChanges();
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{ }
|
|
||||||
|
|
||||||
return prodData;
|
#region Public Constructors
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// Process table and set as scrap by num value
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="maxKeep"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool SetScrap(int num, bool isScrap)
|
|
||||||
{
|
|
||||||
bool answ = false;
|
|
||||||
|
|
||||||
var currRecord = dbCtx
|
public ProdInfoController()
|
||||||
.ProdInfo
|
|
||||||
.Where(x => x.NumDone == num)
|
|
||||||
.SingleOrDefault();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (currRecord != null)
|
|
||||||
{
|
{
|
||||||
currRecord.IsScrap = isScrap;
|
// Initialize database context
|
||||||
|
dbCtx = new DatabaseContext();
|
||||||
}
|
}
|
||||||
// save!
|
|
||||||
dbCtx.SaveChanges();
|
|
||||||
answ = true;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{ }
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
#endregion Public Constructors
|
||||||
/// Process table and keep only maxKeep most recent ones
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="maxKeep"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public bool PurgeOldest(int maxKeep)
|
|
||||||
{
|
|
||||||
bool answ = false;
|
|
||||||
|
|
||||||
// check if purge needed
|
#region Public Methods
|
||||||
int numRec = dbCtx.ProdInfo.Count();
|
|
||||||
if (numRec > maxKeep)
|
|
||||||
{
|
|
||||||
ProdInfoModel firstToDelete = (ProdInfoModel)(from p in dbCtx.ProdInfo
|
|
||||||
orderby p.DtEvent descending
|
|
||||||
select p).Skip(maxKeep).Take(1);
|
|
||||||
|
|
||||||
// call deletion
|
/// <summary>
|
||||||
dbCtx
|
/// Create new prodInfo record on DB
|
||||||
.ProdInfo
|
/// </summary>
|
||||||
.RemoveRange(
|
/// <param name="NumTarget"></param>
|
||||||
dbCtx
|
/// <param name="NumDone"></param>
|
||||||
|
/// <param name="TimeWarm"></param>
|
||||||
|
/// <param name="TimeVent"></param>
|
||||||
|
/// <param name="TimeVacuum"></param>
|
||||||
|
/// <param name="TimeCycleGross"></param>
|
||||||
|
/// <param name="TimeCycleNet"></param>
|
||||||
|
/// <param name="MaterialTempEndWarm"></param>
|
||||||
|
/// <param name="MaterialTempEndVent"></param>
|
||||||
|
/// <param name="MoldTemp"></param>
|
||||||
|
/// <param name="VacuumReadVal"></param>
|
||||||
|
/// <param name="MouldEnergyOUT"></param>
|
||||||
|
/// <param name="MouldEnergyIN"></param>
|
||||||
|
/// <param name="IsScrap"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public ProdInfoModel Create(short NumTarget, short NumDone, int TimeWarm, int TimeVent, int TimeVacuum, int TimeCycleGross, int TimeCycleNet, float MaterialTempEndWarm, float MaterialTempEndVent, float MoldTemp, float VacuumReadVal, float MouldEnergyOUT, float MouldEnergyIN, bool IsScrap, string ThermoImage)
|
||||||
|
{
|
||||||
|
// Create database machine model
|
||||||
|
ProdInfoModel prodData = new ProdInfoModel()
|
||||||
|
{
|
||||||
|
DtEvent = DateTime.Now,
|
||||||
|
NumTarget = NumTarget,
|
||||||
|
NumDone = NumDone,
|
||||||
|
TimeWarm = TimeWarm,
|
||||||
|
TimeVent = TimeVent,
|
||||||
|
TimeVacuum = TimeVacuum,
|
||||||
|
TimeCycleGross = TimeCycleGross,
|
||||||
|
TimeCycleNet = TimeCycleNet,
|
||||||
|
MaterialTempEndWarm = MaterialTempEndWarm,
|
||||||
|
MaterialTempEndVent = MaterialTempEndVent,
|
||||||
|
MoldTemp = MoldTemp,
|
||||||
|
VacuumReadVal = VacuumReadVal,
|
||||||
|
MouldEnergyOUT = MouldEnergyOUT,
|
||||||
|
MouldEnergyIN = MouldEnergyIN,
|
||||||
|
IsScrap = IsScrap,
|
||||||
|
ThermoImage = ThermoImage
|
||||||
|
};
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Add to database
|
||||||
|
dbCtx.ProdInfo.AddOrUpdate(prodData);
|
||||||
|
//dbCtx.ProdInfo.Add(prodData);
|
||||||
|
// Commit changes
|
||||||
|
dbCtx.SaveChanges();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
|
||||||
|
return prodData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
// Clear database context
|
||||||
|
dbCtx.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get record by NumDone
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="num"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public ProdInfoModel FindByNumDone(int num)
|
||||||
|
{
|
||||||
|
return dbCtx
|
||||||
.ProdInfo
|
.ProdInfo
|
||||||
.Where(x => x.DtEvent <= firstToDelete.DtEvent)
|
.Where(x => x.NumDone == num)
|
||||||
);
|
.SingleOrDefault();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// save!
|
|
||||||
dbCtx.SaveChanges();
|
|
||||||
answ = true;
|
|
||||||
}
|
}
|
||||||
catch
|
|
||||||
{ }
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Process table and delete all record (truncate)
|
/// Get historical paginated data from DB (ASC ordered)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <param name="numStart"></param>
|
||||||
public bool PurgeAll()
|
/// <param name="numRecord"></param>
|
||||||
{
|
/// <returns></returns>
|
||||||
bool answ = false;
|
public List<ProdInfoModel> GetPaginatedAsc(int numStart, int numRecord)
|
||||||
|
{
|
||||||
|
int numEnd = numStart + numRecord;
|
||||||
|
// retrieve
|
||||||
|
return dbCtx
|
||||||
|
.ProdInfo
|
||||||
|
.Where(x => x.NumDone >= numStart)
|
||||||
|
.OrderBy(x => x.DtEvent)
|
||||||
|
.Take(numRecord)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
try
|
/// <summary>
|
||||||
{
|
/// Get historical paginated data from DB (DESC ordered)
|
||||||
dbCtx
|
/// </summary>
|
||||||
.Database
|
/// <param name="numStart"></param>
|
||||||
.ExecuteSqlCommand("TRUNCATE TABLE prodInfo");
|
/// <param name="numRecord"></param>
|
||||||
}
|
/// <returns></returns>
|
||||||
catch
|
public List<ProdInfoModel> GetPaginatedDesc(int numStart, int numRecord)
|
||||||
{ }
|
{
|
||||||
return answ;
|
int numEnd = numStart - numRecord;
|
||||||
|
// check numEnd
|
||||||
|
if (numEnd < 0)
|
||||||
|
numEnd = 0;
|
||||||
|
// retrieve
|
||||||
|
return dbCtx
|
||||||
|
.ProdInfo
|
||||||
|
.Where(x => x.NumDone <= numStart)
|
||||||
|
//.Where(x => x.NumDone <= numStart && x.NumDone > numEnd)
|
||||||
|
.OrderByDescending(x => x.DtEvent)
|
||||||
|
.Take(numRecord)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process table and delete all record (truncate)
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool PurgeAll()
|
||||||
|
{
|
||||||
|
bool answ = false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dbCtx
|
||||||
|
.Database
|
||||||
|
.ExecuteSqlCommand("TRUNCATE TABLE prodInfo");
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process table and keep only maxKeep most recent ones
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="maxKeep"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool PurgeOldest(int maxKeep)
|
||||||
|
{
|
||||||
|
bool answ = false;
|
||||||
|
|
||||||
|
// check if purge needed
|
||||||
|
int numRec = dbCtx.ProdInfo.Count();
|
||||||
|
if (numRec > maxKeep)
|
||||||
|
{
|
||||||
|
ProdInfoModel firstToDelete = (ProdInfoModel)(from p in dbCtx.ProdInfo
|
||||||
|
orderby p.DtEvent descending
|
||||||
|
select p).Skip(maxKeep).Take(1);
|
||||||
|
|
||||||
|
// call deletion
|
||||||
|
dbCtx
|
||||||
|
.ProdInfo
|
||||||
|
.RemoveRange(
|
||||||
|
dbCtx
|
||||||
|
.ProdInfo
|
||||||
|
.Where(x => x.DtEvent <= firstToDelete.DtEvent)
|
||||||
|
);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// save!
|
||||||
|
dbCtx.SaveChanges();
|
||||||
|
answ = true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Process table and set as scrap by num value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="maxKeep"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public bool SetScrap(int num, bool isScrap)
|
||||||
|
{
|
||||||
|
bool answ = false;
|
||||||
|
|
||||||
|
var currRecord = dbCtx
|
||||||
|
.ProdInfo
|
||||||
|
.Where(x => x.NumDone == num)
|
||||||
|
.SingleOrDefault();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (currRecord != null)
|
||||||
|
{
|
||||||
|
currRecord.IsScrap = isScrap;
|
||||||
|
}
|
||||||
|
// save!
|
||||||
|
dbCtx.SaveChanges();
|
||||||
|
answ = true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Thermo.Active.Database.Redis;
|
using Thermo.Active.Database.Redis;
|
||||||
using Thermo.Active.Model.DTOModels;
|
using Thermo.Active.Model.DTOModels;
|
||||||
using Thermo.Active.Model.DTOModels.ThAxes;
|
using Thermo.Active.Model.DTOModels.ThAxes;
|
||||||
@@ -19,7 +20,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
private const string machinePowerPath = "Machine:Power";
|
private const string machinePowerPath = "Machine:Power";
|
||||||
private const string machineAlarmPath = "Machine:Alarm";
|
private const string machineAlarmPath = "Machine:Alarm";
|
||||||
private const string machineEmergencyPath = "Machine:Emergency";
|
private const string machineEmergencyPath = "Machine:Emergency";
|
||||||
private const string alarmsPath = "Machine:Plc:Condition";
|
private const string alarmsPath = "Machine:Plc:Condition";
|
||||||
private const string processStatusPath = "Machine:Cnc:CncProcesses:%NN%:Status";
|
private const string processStatusPath = "Machine:Cnc:CncProcesses:%NN%:Status";
|
||||||
private const string processModePath = "Machine:Cnc:CncProcesses:%NN%:Mode";
|
private const string processModePath = "Machine:Cnc:CncProcesses:%NN%:Mode";
|
||||||
private const string processFeedOverridePath = "Machine:Cnc:CncProcesses:%NN%:FeedOverride";
|
private const string processFeedOverridePath = "Machine:Cnc:CncProcesses:%NN%:FeedOverride";
|
||||||
@@ -27,7 +28,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
private const string processSpeedOverridePath = "Machine:Cnc:CncProcesses:%NN%:SpeedOverride";
|
private const string processSpeedOverridePath = "Machine:Cnc:CncProcesses:%NN%:SpeedOverride";
|
||||||
|
|
||||||
private const string datamodelPath = "AdpConf:DataModel";
|
private const string datamodelPath = "AdpConf:DataModel";
|
||||||
private const string currentActiveVersionPath = "Machine:Hmi:Version";
|
private const string currentActiveVersionPath = "Machine:Hmi:Version";
|
||||||
private const string machineAxisPosition = "Machine:Axes:%NN%:CurrentPos";
|
private const string machineAxisPosition = "Machine:Axes:%NN%:CurrentPos";
|
||||||
private const string machineAxisSpeed = "Machine:Axes:%NN%:FeedRate";
|
private const string machineAxisSpeed = "Machine:Axes:%NN%:FeedRate";
|
||||||
private const string machineAxisLoad = "Machine:Axes:%NN%:Load";
|
private const string machineAxisLoad = "Machine:Axes:%NN%:Load";
|
||||||
@@ -70,7 +71,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
string redisHash = redUtil.man.redHash(redisAlmEn);
|
string redisHash = redUtil.man.redHash(redisAlmEn);
|
||||||
return redUtil.man.redSaveHashDict(redisHash, alarms);
|
return redUtil.man.redSaveHashDict(redisHash, alarms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static bool WriteDatamodel(string datamodel)
|
public static bool WriteDatamodel(string datamodel)
|
||||||
{
|
{
|
||||||
@@ -79,7 +80,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
}
|
}
|
||||||
public static bool WriteDefaultEntry(Dictionary<string, string> entries)
|
public static bool WriteDefaultEntry(Dictionary<string, string> entries)
|
||||||
{
|
{
|
||||||
foreach (KeyValuePair<string,string> entry in entries)
|
foreach (KeyValuePair<string, string> entry in entries)
|
||||||
{
|
{
|
||||||
if (!redUtil.man.setRSV(redUtil.man.redHash(entry.Key), entry.Value))
|
if (!redUtil.man.setRSV(redUtil.man.redHash(entry.Key), entry.Value))
|
||||||
return false;
|
return false;
|
||||||
@@ -109,7 +110,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
string redisHash = redUtil.man.redHash(machineStatusPath);
|
string redisHash = redUtil.man.redHash(machineStatusPath);
|
||||||
return redUtil.man.setRSV(redisHash, status.ToString());
|
return redUtil.man.setRSV(redisHash, status.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool WriteCurrentProcessStatus(uint ProductionProcess, string status)
|
public static bool WriteCurrentProcessStatus(uint ProductionProcess, string status)
|
||||||
{
|
{
|
||||||
string redisHash = redUtil.man.redHash(processStatusPath).Replace("%NN%", ProductionProcess.ToString("00"));
|
string redisHash = redUtil.man.redHash(processStatusPath).Replace("%NN%", ProductionProcess.ToString("00"));
|
||||||
@@ -131,21 +132,21 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
if (!redUtil.man.setRSV(redisHash, "100"))
|
if (!redUtil.man.setRSV(redisHash, "100"))
|
||||||
return false;
|
return false;
|
||||||
redisHash = redUtil.man.redHash(processSpeedOverridePath).Replace("%NN%", ProductionProcess.ToString("00"));
|
redisHash = redUtil.man.redHash(processSpeedOverridePath).Replace("%NN%", ProductionProcess.ToString("00"));
|
||||||
if(!redUtil.man.setRSV(redisHash, "100"))
|
if (!redUtil.man.setRSV(redisHash, "100"))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static bool WriteCurrentMachinePowerPath(bool status)
|
public static bool WriteCurrentMachinePowerPath(bool status)
|
||||||
{
|
{
|
||||||
string redisHash = redUtil.man.redHash(machinePowerPath);
|
string redisHash = redUtil.man.redHash(machinePowerPath);
|
||||||
if(status)
|
if (status)
|
||||||
return redUtil.man.setRSV(redisHash, "true");
|
return redUtil.man.setRSV(redisHash, "true");
|
||||||
else
|
else
|
||||||
return redUtil.man.setRSV(redisHash, "false");
|
return redUtil.man.setRSV(redisHash, "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool WriteCurrentMachineAlarmPath(bool status)
|
public static bool WriteCurrentMachineAlarmPath(bool status)
|
||||||
{
|
{
|
||||||
string redisHash = redUtil.man.redHash(machineAlarmPath);
|
string redisHash = redUtil.man.redHash(machineAlarmPath);
|
||||||
@@ -154,7 +155,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
else
|
else
|
||||||
return redUtil.man.setRSV(redisHash, "false");
|
return redUtil.man.setRSV(redisHash, "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool WriteCurrentMachineEmergencyPath(bool status)
|
public static bool WriteCurrentMachineEmergencyPath(bool status)
|
||||||
{
|
{
|
||||||
string redisHash = redUtil.man.redHash(machineEmergencyPath);
|
string redisHash = redUtil.man.redHash(machineEmergencyPath);
|
||||||
@@ -183,14 +184,51 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
redUtil.man.ListPush(redisHash, msg);
|
redUtil.man.ListPush(redisHash, msg);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
public static string ReadValue(string msgKey)
|
||||||
|
{
|
||||||
|
string redisHash = redUtil.man.redHash(msgKey);
|
||||||
|
return redUtil.man.getRSV(redisHash);
|
||||||
|
}
|
||||||
|
public static bool WriteValue(string msgKey, string msg, int ttlSec)
|
||||||
|
{
|
||||||
|
string redisHash = redUtil.man.redHash(msgKey);
|
||||||
|
redUtil.man.setRSV(redisHash, msg, ttlSec);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool FastIoSample
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var currVal = ReadValue("FastIoSample");
|
||||||
|
bool answ = !string.IsNullOrEmpty(currVal);
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
// TTL: se true 20 min, altrimenti 1 sec
|
||||||
|
int ttlSec = value ? 60 * 20 : 1;
|
||||||
|
WriteValue("FastIoSample", "Active", ttlSec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DateTime SetFastIoSample(bool value)
|
||||||
|
{
|
||||||
|
// TTL: se true 20 min, altrimenti 1 sec
|
||||||
|
int ttlSec = value ? 60 * 20 : 1;
|
||||||
|
WriteValue("FastIoSample", "Active", ttlSec);
|
||||||
|
return DateTime.Now.AddSeconds(ttlSec);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static bool WriteCurrentAxisStatus(Dictionary<int, DTOAxisInfoModel> axis)
|
public static bool WriteCurrentAxisStatus(Dictionary<int, DTOAxisInfoModel> axis)
|
||||||
{
|
{
|
||||||
foreach(KeyValuePair<int, DTOAxisInfoModel> asse in axis)
|
foreach (KeyValuePair<int, DTOAxisInfoModel> asse in axis)
|
||||||
{
|
{
|
||||||
string redisHash = redUtil.man.redHash(machineAxisName).Replace("%NN%", asse.Value.ID.ToString("00"));
|
string redisHash = redUtil.man.redHash(machineAxisName).Replace("%NN%", asse.Value.ID.ToString("00"));
|
||||||
|
|
||||||
if(redUtil.man.getRSV(redisHash) != null)
|
if (redUtil.man.getRSV(redisHash) != null)
|
||||||
{
|
{
|
||||||
redisHash = redUtil.man.redHash(machineAxisPosition).Replace("%NN%", asse.Value.ID.ToString("00"));
|
redisHash = redUtil.man.redHash(machineAxisPosition).Replace("%NN%", asse.Value.ID.ToString("00"));
|
||||||
if (!redUtil.man.setRSV(redisHash, asse.Value.position.ToString()))
|
if (!redUtil.man.setRSV(redisHash, asse.Value.position.ToString()))
|
||||||
@@ -203,7 +241,7 @@ namespace Thermo.Active.Database.Controllers
|
|||||||
redisHash = redUtil.man.redHash(machineAxisLoad).Replace("%NN%", asse.Value.ID.ToString("00"));
|
redisHash = redUtil.man.redHash(machineAxisLoad).Replace("%NN%", asse.Value.ID.ToString("00"));
|
||||||
if (!redUtil.man.setRSV(redisHash, asse.Value.load.ToString()))
|
if (!redUtil.man.setRSV(redisHash, asse.Value.load.ToString()))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace Thermo.Active.Database
|
|||||||
|
|
||||||
// thermo!
|
// thermo!
|
||||||
public DbSet<ProdInfoModel> ProdInfo { get; set; }
|
public DbSet<ProdInfoModel> ProdInfo { get; set; }
|
||||||
|
public DbSet<HistorySheetModel> HistorySheet { get; set; }
|
||||||
|
|
||||||
// Create migration string
|
// Create migration string
|
||||||
public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";";
|
public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";";
|
||||||
@@ -65,19 +65,44 @@ namespace Thermo.Active.Database
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ServiceController service = new ServiceController("MySQL");
|
String serviceName = getDbServiceName();
|
||||||
|
if(serviceName.Equals(""))
|
||||||
|
{
|
||||||
|
ManageError(ERROR_LEVEL.FATAL, "Database SQL service not found", true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
String serviceRedisName = getRedisServiceName();
|
||||||
|
if (serviceRedisName.Equals(""))
|
||||||
|
{
|
||||||
|
ManageError(ERROR_LEVEL.FATAL, "Database REDIS service not found", true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ServiceController service = new ServiceController(serviceName);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TimeSpan timeout = TimeSpan.FromSeconds(DATABASE_PROCESS_TIMEOUT);
|
TimeSpan timeout = TimeSpan.FromSeconds(DATABASE_PROCESS_TIMEOUT);
|
||||||
|
|
||||||
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
|
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
ManageError(ERROR_LEVEL.FATAL, "Database not started");
|
ManageError(ERROR_LEVEL.FATAL, "Database SQL not started", true);
|
||||||
Console.WriteLine(ex.Message);
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
|
service = new ServiceController(serviceRedisName);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TimeSpan timeout = TimeSpan.FromSeconds(DATABASE_PROCESS_TIMEOUT);
|
||||||
|
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ManageError(ERROR_LEVEL.FATAL, "Database REDIS not started", true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
System.Data.Entity.Database.SetInitializer<DatabaseContext>(null);
|
System.Data.Entity.Database.SetInitializer<DatabaseContext>(null);
|
||||||
var migrator = new DbMigrator(new Configuration());
|
var migrator = new DbMigrator(new Configuration());
|
||||||
@@ -114,7 +139,7 @@ namespace Thermo.Active.Database
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FindOrCreateMachineUniqueId()
|
private static void FindOrCreateMachineUniqueId()
|
||||||
{
|
{
|
||||||
// Find machine unique id in the register
|
// Find machine unique id in the register
|
||||||
string uniqueId = ReadUniqueIdFromRegister();
|
string uniqueId = ReadUniqueIdFromRegister();
|
||||||
@@ -198,5 +223,32 @@ namespace Thermo.Active.Database
|
|||||||
// Return value
|
// Return value
|
||||||
return (string)key.GetValue(REGISTER_MACHINE_ID_KEY_NAME);
|
return (string)key.GetValue(REGISTER_MACHINE_ID_KEY_NAME);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private static string getDbServiceName()
|
||||||
|
{
|
||||||
|
ServiceController[] services = ServiceController.GetServices();
|
||||||
|
var service = services.FirstOrDefault(s => s.ServiceName == "MariaDB");
|
||||||
|
if (service != null)
|
||||||
|
return service.DisplayName;
|
||||||
|
|
||||||
|
service = services.FirstOrDefault(s => s.ServiceName == "MySQL");
|
||||||
|
if (service != null)
|
||||||
|
return service.DisplayName;
|
||||||
|
|
||||||
|
return "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string getRedisServiceName()
|
||||||
|
{
|
||||||
|
ServiceController[] services = ServiceController.GetServices();
|
||||||
|
var service = services.FirstOrDefault(s => s.ServiceName == "Redis");
|
||||||
|
if (service != null)
|
||||||
|
return service.DisplayName;
|
||||||
|
|
||||||
|
return "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||||
|
public sealed partial class Added_ThermoImage_prodInfo : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(Added_ThermoImage_prodInfo));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202102171753226_Added_ThermoImage_prodInfo"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class Added_ThermoImage_prodInfo : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.ProdInfo", "ThermoImage", c => c.String(unicode: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MaterialTempEndWarm", c => c.Single(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MaterialTempEndVent", c => c.Single(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MoldTemp", c => c.Single(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "VacuumReadVal", c => c.Single(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MouldEnergyOUT", c => c.Single(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MouldEnergyIN", c => c.Single(nullable: false));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
AlterColumn("dbo.ProdInfo", "MouldEnergyIN", c => c.Double(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MouldEnergyOUT", c => c.Double(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "VacuumReadVal", c => c.Double(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MoldTemp", c => c.Double(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MaterialTempEndVent", c => c.Double(nullable: false));
|
||||||
|
AlterColumn("dbo.ProdInfo", "MaterialTempEndWarm", c => c.Double(nullable: false));
|
||||||
|
DropColumn("dbo.ProdInfo", "ThermoImage");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||||
|
public sealed partial class HistorySheets : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(HistorySheets));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202103191608500_HistorySheets"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class HistorySheets : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
CreateTable(
|
||||||
|
"dbo.HistorySheets",
|
||||||
|
c => new
|
||||||
|
{
|
||||||
|
DtEvent = c.DateTime(nullable: false, precision: 0),
|
||||||
|
Recipe = c.String(unicode: false),
|
||||||
|
FirstVal = c.Single(nullable: false),
|
||||||
|
SecondVal = c.Single(nullable: false),
|
||||||
|
ThirdVal = c.Single(nullable: false),
|
||||||
|
})
|
||||||
|
.PrimaryKey(t => t.DtEvent);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropTable("dbo.HistorySheets");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||||
|
public sealed partial class HistorySheetsCycle : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(HistorySheetsCycle));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202103191626072_HistorySheetsCycle"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class HistorySheetsCycle : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.HistorySheets", "NumDone", c => c.Short(nullable: false));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropColumn("dbo.HistorySheets", "NumDone");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
+29
@@ -0,0 +1,29 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||||
|
public sealed partial class addedTypeValHistory : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(addedTypeValHistory));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202103221323362_addedTypeValHistory"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
namespace Thermo.Active.Database.Migrations
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class addedTypeValHistory : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.HistorySheets", "TypeVal", c => c.Int(nullable: false));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropColumn("dbo.HistorySheets", "TypeVal");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -45,13 +45,17 @@ namespace Thermo.Active.Database.Migrations
|
|||||||
|
|
||||||
// Main Areas
|
// Main Areas
|
||||||
new FunctionAccessModel() { Name = "productionArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "productionArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
||||||
new FunctionAccessModel() { Name = "reportArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 },
|
|
||||||
new FunctionAccessModel() { Name = "alarmsArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "alarmsArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||||
new FunctionAccessModel() { Name = "maintenanceArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "maintenanceArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||||
new FunctionAccessModel() { Name = "scadaArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "scadaArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||||
new FunctionAccessModel() { Name = "usersArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "usersArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 },
|
||||||
new FunctionAccessModel() { Name = "jobeditorArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
|
||||||
new FunctionAccessModel() { Name = "utilitiesArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
new FunctionAccessModel() { Name = "utilitiesArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||||
|
new FunctionAccessModel() { Name = "setupArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
||||||
|
new FunctionAccessModel() { Name = "progrpreriscArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
||||||
|
new FunctionAccessModel() { Name = "thermoHoodArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 },
|
||||||
|
new FunctionAccessModel() { Name = "modal-load-programArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 },
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// thermo functions
|
// thermo functions
|
||||||
new FunctionAccessModel() { Name = RECIPE_MANAGER, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 }
|
new FunctionAccessModel() { Name = RECIPE_MANAGER, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 }
|
||||||
|
|||||||
@@ -95,8 +95,8 @@
|
|||||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||||
@@ -124,6 +124,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Controllers\AlarmsController.cs" />
|
<Compile Include="Controllers\AlarmsController.cs" />
|
||||||
<Compile Include="Controllers\FunctionsAccessController.cs" />
|
<Compile Include="Controllers\FunctionsAccessController.cs" />
|
||||||
|
<Compile Include="Controllers\HistorySheetsController.cs" />
|
||||||
<Compile Include="Controllers\ProdInfoController.cs" />
|
<Compile Include="Controllers\ProdInfoController.cs" />
|
||||||
<Compile Include="Controllers\MachinesController.cs" />
|
<Compile Include="Controllers\MachinesController.cs" />
|
||||||
<Compile Include="Controllers\MaintenancesController.cs" />
|
<Compile Include="Controllers\MaintenancesController.cs" />
|
||||||
@@ -154,6 +155,22 @@
|
|||||||
<Compile Include="Migrations\202011051531133_AddedKeyboaSoftkey.Designer.cs">
|
<Compile Include="Migrations\202011051531133_AddedKeyboaSoftkey.Designer.cs">
|
||||||
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202102171753226_Added_ThermoImage_prodInfo.cs" />
|
||||||
|
<Compile Include="Migrations\202102171753226_Added_ThermoImage_prodInfo.Designer.cs">
|
||||||
|
<DependentUpon>202102171753226_Added_ThermoImage_prodInfo.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202103191608500_HistorySheets.cs" />
|
||||||
|
<Compile Include="Migrations\202103191608500_HistorySheets.Designer.cs">
|
||||||
|
<DependentUpon>202103191608500_HistorySheets.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202103191626072_HistorySheetsCycle.cs" />
|
||||||
|
<Compile Include="Migrations\202103191626072_HistorySheetsCycle.Designer.cs">
|
||||||
|
<DependentUpon>202103191626072_HistorySheetsCycle.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202103221323362_addedTypeValHistory.cs" />
|
||||||
|
<Compile Include="Migrations\202103221323362_addedTypeValHistory.Designer.cs">
|
||||||
|
<DependentUpon>202103221323362_addedTypeValHistory.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Redis\redUtil.cs" />
|
<Compile Include="Redis\redUtil.cs" />
|
||||||
@@ -205,6 +222,18 @@
|
|||||||
<EmbeddedResource Include="Migrations\202011051531133_AddedKeyboaSoftkey.resx">
|
<EmbeddedResource Include="Migrations\202011051531133_AddedKeyboaSoftkey.resx">
|
||||||
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
<DependentUpon>202011051531133_AddedKeyboaSoftkey.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202102171753226_Added_ThermoImage_prodInfo.resx">
|
||||||
|
<DependentUpon>202102171753226_Added_ThermoImage_prodInfo.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202103191608500_HistorySheets.resx">
|
||||||
|
<DependentUpon>202103191608500_HistorySheets.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202103191626072_HistorySheetsCycle.resx">
|
||||||
|
<DependentUpon>202103191626072_HistorySheetsCycle.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202103221323362_addedTypeValHistory.resx">
|
||||||
|
<DependentUpon>202103221323362_addedTypeValHistory.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<package id="System.IO.Pipelines" version="4.7.3" targetFramework="net462" />
|
<package id="System.IO.Pipelines" version="4.7.3" targetFramework="net462" />
|
||||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net462" />
|
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net462" />
|
||||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||||
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net462" />
|
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net462" />
|
||||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ namespace Thermo.Active.Model.ConfigModels
|
|||||||
public int Id;
|
public int Id;
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public bool IsSelectable { get; set; } = true;
|
public bool IsSelectable { get; set; } = true;
|
||||||
public TACT_AXES_TYPE Type { get; set; }
|
public bool IsVisible { get; set; }
|
||||||
|
public TACT_AXES_TYPE Type { get; set; }
|
||||||
|
public int MasterId { get; set; } = 0;
|
||||||
|
public int EnabledWord { get; set; } = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using static Thermo.Active.Model.Constants;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.ConfigModels
|
||||||
|
{
|
||||||
|
public class IOConfigModel
|
||||||
|
{
|
||||||
|
public TACT_IO_TYPE Category { get; set; }
|
||||||
|
public int Id { get; set; } =0;
|
||||||
|
public string Bank { get; set; } = "0";
|
||||||
|
public string Position { get; set; } = "0";
|
||||||
|
public string Page { get; set; } = "";
|
||||||
|
public string Wire { get; set; } = "";
|
||||||
|
public string Profinet { get; set; } = "";
|
||||||
|
public bool DisableForce { get; set; } = false;
|
||||||
|
public string Label
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
string answ = $"LBL_IO_{Category}_{Id}";
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -44,6 +44,7 @@ namespace Thermo.Active.Model.ConfigModels
|
|||||||
#region Public Fields
|
#region Public Fields
|
||||||
|
|
||||||
public int Canale;
|
public int Canale;
|
||||||
|
public int IdGruppo;
|
||||||
public int Riga;
|
public int Riga;
|
||||||
public int Tipo;
|
public int Tipo;
|
||||||
|
|
||||||
@@ -52,16 +53,17 @@ namespace Thermo.Active.Model.ConfigModels
|
|||||||
|
|
||||||
public class RiskResistModel
|
public class RiskResistModel
|
||||||
{
|
{
|
||||||
#region Public Fields
|
#region Public Properties
|
||||||
|
|
||||||
public int Column { get; set; } = 0;
|
public int Column { get; set; } = 0;
|
||||||
public int Dimension { get; set; } = 0;
|
public int Dimension { get; set; } = 0;
|
||||||
public int Id { get; set; } = 0;
|
public int Id { get; set; } = 0;
|
||||||
public int IdChannel { get; set; } = 0;
|
public int IdChannel { get; set; } = 0;
|
||||||
|
public int IdGroup { get; set; } = 0;
|
||||||
public int IdReflector { get; set; } = 0;
|
public int IdReflector { get; set; } = 0;
|
||||||
public int Row { get; set; } = 0;
|
public int Row { get; set; } = 0;
|
||||||
|
|
||||||
#endregion Public Fields
|
#endregion Public Properties
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RiskRiferimenti
|
public class RiskRiferimenti
|
||||||
|
|||||||
@@ -18,5 +18,9 @@ namespace Thermo.Active.Model.ConfigModels
|
|||||||
|
|
||||||
public int MaxAlarmsRows { get; set; }
|
public int MaxAlarmsRows { get; set; }
|
||||||
public int AlarmToDelete { get; set; }
|
public int AlarmToDelete { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public int MaxSheetHistoryRows { get; set; }
|
||||||
|
public int SheetHistoryToDelete { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+392
-342
@@ -7,17 +7,273 @@ namespace Thermo.Active.Model
|
|||||||
{
|
{
|
||||||
public static class Constants
|
public static class Constants
|
||||||
{
|
{
|
||||||
public static bool IS_BETA = false;
|
#region Public Fields
|
||||||
public static string NOT_FOUND_ALARM_MESSAGE = "Alarm_id_{0} : Message not found";
|
|
||||||
public static string NOT_CONFIGURATED_ALARM_MESSAGE = "Alarm_id_{0} : Message not configurated";
|
public const string ALARM_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\alarm\";
|
||||||
public static string CMS_CONNECT_SETUP_ALARM_MESSAGE = "Error during CMS-Connect setup: Redis Db Not Found";
|
public const string ALARM_PREFIX = "alarm_";
|
||||||
public static int DATABASE_PROCESS_TIMEOUT = 5;
|
public const string ALARMS_CONFIG_PATH = CONFIG_DIRECTORY + "alarmsConfig.xml";
|
||||||
|
public const string ALARMS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "alarmsConfigValidator.xsd";
|
||||||
|
public const string AREAS_CONFIG_KEY = "areasConfig";
|
||||||
|
public const string AREAS_CONFIG_PATH = CONFIG_DIRECTORY + "areasConfig.xml";
|
||||||
|
public const string AREAS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "areasConfigValidator.xsd";
|
||||||
|
|
||||||
|
// Token fields Keys
|
||||||
|
public const string AUTHENTICATION_TYPE = "Bearer";
|
||||||
|
|
||||||
|
public const string AXES_CONFIG_PATH = CONFIG_DIRECTORY + "axesConfig.xml";
|
||||||
|
public const string AXES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"axesConfigValidator.xsd";
|
||||||
|
public const string BROADCAST_DATA = "BROADCAST_DATA";
|
||||||
|
|
||||||
|
// File paths
|
||||||
|
public const string CLIENT_EXE_NAME = @"Active_Client.exe";
|
||||||
|
|
||||||
|
public const string CLIENT_EXE_NAME_NOEXT = @"Active_Client";
|
||||||
|
public const string CMS_CONNECT_CONFIG_PATH = CONFIG_DIRECTORY + "cmsConnectConfig.xml";
|
||||||
|
public const string CMS_CONNECT_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "cmsConnectConfigValidator.xsd";
|
||||||
|
public const string CMS_FOLDER_PATH = @"C:\CMS\";
|
||||||
|
public const string CONFIG_DIRECTORY = "Config\\";
|
||||||
|
public const string CONNECT_DATAMODEL_CONFIG_PATH = CONFIG_DIRECTORY + "DataModel.xml";
|
||||||
|
public const string CONNECT_DATAMODEL_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "dataModelConfigValidator.xsd";
|
||||||
|
public const string CUSTOMER_CONTACTS = CMS_FOLDER_PATH + "ContactInfo.xml";
|
||||||
|
public const string CUSTOMER_CONTACTS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "customerContactConfigValidator.xsd";
|
||||||
|
public const string DATABASE_NAME = "ThermoActive";
|
||||||
|
public const string DATABASE_PWD = "root";
|
||||||
|
|
||||||
|
// Database config
|
||||||
|
public const string DATABASE_USER = "root";
|
||||||
|
|
||||||
|
public const string DEFAULT_FAM_NAME = "Family";
|
||||||
|
public const string DIAM_METRIC = "DIAMETER";
|
||||||
|
public const double EPSILON = 0.1;
|
||||||
|
public const string HEADS_CONFIG_PATH = CONFIG_DIRECTORY + "headsConfig.xml";
|
||||||
|
public const string HEADS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "headsConfigValidator.xsd";
|
||||||
|
public const string IO_CONFIG_PATH = CONFIG_DIRECTORY + "IOConfig.xml";
|
||||||
|
public const string IO_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "IOConfigValidator.xsd";
|
||||||
|
public const string JOB_MAIN_FILENAME = "main.cnc";
|
||||||
|
public const string JOB_METADATA_FILENAME = "metadata.json";
|
||||||
|
public const string JOB_TMP_DIRECTORY = TEMP_PP_FOLDER + @"job\";
|
||||||
|
public const string LIVE_RECIPE_PATH = TEMP_FOLDER + "Recipes\\current.rcp";
|
||||||
|
public const string LIVE_SCHED_TASK_PATH = TEMP_FOLDER + "Recipes\\sched.tsk";
|
||||||
|
public const string M156_CONFIG_PATH = CONFIG_DIRECTORY + "inputOperatorConfig.xml";
|
||||||
|
public const string M156_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "inputOperatorConfigValidator.xsd";
|
||||||
|
public const string MACHINE_ID_KEY = "machineId";
|
||||||
|
public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.xml";
|
||||||
|
public const string MACROS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "macrosConfigValidator.xsd";
|
||||||
|
public const string MAIN_PROGRAM_CONFIG_PATH = CONFIG_DIRECTORY + "customMainProgram.txt";
|
||||||
|
public const string MAINTENANCE_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\maintenance\";
|
||||||
|
public const string MAINTENANCE_DESC_PREFIX_ID = "maint_desc_";
|
||||||
|
|
||||||
|
// ID prefix
|
||||||
|
public const string MAINTENANCE_PREFIX_ID = "maint_";
|
||||||
|
|
||||||
|
public const string MAINTENANCES_CONFIG_PATH = CONFIG_DIRECTORY + "maintenancesConfig.xml";
|
||||||
|
public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
|
||||||
|
public const int MAX_NUM_OF_WATCHDOG_ERROR = 4;
|
||||||
|
public const int MIN_ADMIN_ROLE = 30;
|
||||||
|
public const int MIN_CMS_ROLE = 100;
|
||||||
|
public const string MODBLOCK_CONFIG_PATH = CONFIG_DIRECTORY + "moduleBlockConfig.xml";
|
||||||
|
public const string MODBLOCK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "moduleBlockConfigValidator.xsd";
|
||||||
|
public const string NC_CONFIG_KEY = "ncConfig";
|
||||||
|
public const string NC_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfig.xml";
|
||||||
|
public const string NC_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "ncSoftKeyConfigValidator.xsd";
|
||||||
|
public const int numRecProdPanelGraph = 30;
|
||||||
|
public const string PART_PRG_IMAGES = TEMP_FOLDER + @"pp_img\";
|
||||||
|
public const string PROD_SFT_CONFIG_KEY = "softwareProdConfig";
|
||||||
|
public const string QUEUE_TMP_FOLDER = TEMP_PP_FOLDER + @"queue\";
|
||||||
|
|
||||||
//Costanti Tipo metreica utensili
|
//Costanti Tipo metreica utensili
|
||||||
public const string RADIUS_METRIC = "RADIUS";
|
public const string RADIUS_METRIC = "RADIUS";
|
||||||
public const string DIAM_METRIC = "DIAMETER";
|
|
||||||
|
|
||||||
public const string DEFAULT_FAM_NAME = "Family";
|
public const string RECIPE_CONFIG_PATH = CONFIG_DIRECTORY + "recipeConfig.xml";
|
||||||
|
public const string RECIPE_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "recipeConfigValidator.xsd";
|
||||||
|
public const string RECIPE_TEMPLATE_PATH = CONFIG_DIRECTORY + "Recipes\\template.tpl";
|
||||||
|
|
||||||
|
// Registry key
|
||||||
|
public const string REGISTER_MACHINE_ID_KEY_NAME = "MachineUniqueId";
|
||||||
|
|
||||||
|
public const string RESOURCE_DIRECTORY = @"Thermo.Active.Config.Config.";
|
||||||
|
public const string RISK_CONFIG_PATH = CONFIG_DIRECTORY + "risk2007.xml";
|
||||||
|
public const string RISK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "risk2007Validator.xsd";
|
||||||
|
public const string ROLE_LEVEL_KEY = "roleLevel";
|
||||||
|
public const string SCADA_DIRECTORY = @"C:\CMS\Active\scada\";
|
||||||
|
public const string SCADA_PAGES_SCHEMA_PATH = RESOURCE_DIRECTORY + "scadaValidator.xsd";
|
||||||
|
public const string SEND_ACTIVE_PROGRAM_DATA = "SEND_ACTIVE_PROGRAM_DATA";
|
||||||
|
|
||||||
|
// MVVM Messages to signalR tasks
|
||||||
|
public const string SEND_ALARMS = "SEND_ALARMS";
|
||||||
|
|
||||||
|
public const string SEND_AXIS_INFO = "SEND_AXIS_INFO";
|
||||||
|
public const string SEND_CHANNELS_IO_DATA = "SEND_CHANNELS_IO_DATA";
|
||||||
|
public const string SEND_NEWTCAMIMAGE = "SEND_NEWTCAMIMAGE";
|
||||||
|
public const string SEND_CMSCONNECT_GW_REBOOT_STATUS = "SEND_CMSCONNECT_GW_REBOOT_STATUS";
|
||||||
|
public const string SEND_ERROR_TO_UI = "SEND_ERROR_TO_UI";
|
||||||
|
public const string SEND_EXPIRED_MAINTENANCES_DATA = "SEND_EXPIRED_MAINTENANCES_DATA";
|
||||||
|
public const string SEND_FUNCTIONALITY_DATA = "SEND_FUNCTION_DATA";
|
||||||
|
public const string SEND_GENERIC_DATA = "SEND_GENERIC_DATA";
|
||||||
|
public const string SEND_HEADS_DATA = "SEND_HEADS_DATA";
|
||||||
|
public const string SEND_M155_DATA = "SEND_M155_DATA";
|
||||||
|
public const string SEND_M156_DATA = "SEND_M156_DATA";
|
||||||
|
public const string SEND_MESSAGE = "SEND_MESSAGE";
|
||||||
|
public const string SEND_NC_SOFTKEYS_DATA = "SEND_NC_SOFTKEYS_DATA";
|
||||||
|
public const string SEND_NC_STATUS = "NC_STATUS";
|
||||||
|
public const string SEND_NC_STATUS_UI = "NC_STATUS_UI";
|
||||||
|
public const string SEND_POWER_ON_DATA = "SEND_POWER_ON_DATA";
|
||||||
|
public const string SEND_PROCESSES_DATA = "SEND_PROCESSES_STATUS";
|
||||||
|
public const string SEND_QUEUE_DATA = "SEND_QUEUE_DATA";
|
||||||
|
public const string SEND_SCADA_DATA = "SEND_SCADA_DATA";
|
||||||
|
|
||||||
|
// MVVM Messages to server UI
|
||||||
|
public const string SEND_STOP_SERVER = "STOP_SERVER";
|
||||||
|
|
||||||
|
public const string SEND_STOP_THREADS = "SEND_STOP_THREADS";
|
||||||
|
public const string SEND_THERMO_AREA_DATA = "SEND_THERMO_AREA_DATA";
|
||||||
|
public const string SEND_THERMO_GAUGE_DATA = "SEND_THERMO_GAUGE_DATA";
|
||||||
|
public const string SEND_THERMO_MODULE_DATA = "SEND_THERMO_MODULE_DATA";
|
||||||
|
public const string SEND_THERMO_PROD_CYCLE_DATA = "SEND_THERMO_PROD_CYCLE_DATA";
|
||||||
|
public const string SEND_THERMO_PROD_INFO_DATA = "SEND_THERMO_PROD_INFO_DATA";
|
||||||
|
public const string SEND_THERMO_PROD_PANEL_DATA = "SEND_THERMO_PROD_PANEL_DATA";
|
||||||
|
public const string SEND_THERMO_RECIPE_CHANGED = "SEND_THERMO_RECIPE_CHANGED";
|
||||||
|
|
||||||
|
// MVVM Messages for Thermo active specs
|
||||||
|
public const string SEND_THERMO_RECIPE_FULL = "SEND_THERMO_RECIPE_FULL";
|
||||||
|
|
||||||
|
public const string SEND_THERMO_RECIPE_OVERWIEW = "SEND_THERMO_RECIPE_OVERWIEW";
|
||||||
|
public const string SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED = "SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED";
|
||||||
|
public const string SEND_THERMO_WARMERS_DATA = "SEND_THERMO_WARMERS_DATA";
|
||||||
|
public const string SEND_THREADS_STATUS = "THREAD_STATUS";
|
||||||
|
public const string SEND_USER_SOFTKEYS_DATA = "SEND_USER_SOFTKEYS_DATA";
|
||||||
|
|
||||||
|
// Names in the xml file
|
||||||
|
public const string SERVER_CONFIG_KEY = "serverConfig";
|
||||||
|
|
||||||
|
public const string SERVER_CONFIG_PATH = CONFIG_DIRECTORY + "serverConfig.xml";
|
||||||
|
public const string SERVER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"serverConfigValidator.xsd";
|
||||||
|
public const string SHOW_MSG_UI = "SHOW_MSG_UI";
|
||||||
|
public const string SOFTKEY_HEAD_ID = "Head_";
|
||||||
|
public const string SOFTKEY_PREFIX_ID = "softkey_";
|
||||||
|
public const string TEMP_FOLDER = @"C:\CMS\ThermoActive\TMP\";
|
||||||
|
public const string TEMP_PP_FOLDER = TEMP_FOLDER + @"pp\";
|
||||||
|
public const string THERMO_DATA_FOLDER = "thermoprophet\\";
|
||||||
|
public const string THERMO_PROD_PATH = CONFIG_DIRECTORY + "thermoProdConfig.xml";
|
||||||
|
public const string THERMO_PROD_SCHEMA_PATH = RESOURCE_DIRECTORY + "thermoProdConfigValidator.xsd";
|
||||||
|
|
||||||
|
// THERMO SPEC
|
||||||
|
public const string THERMOCAM_CONFIG_PATH = CONFIG_DIRECTORY + "ThermoConf.json";
|
||||||
|
|
||||||
|
public const string USER_ID_KEY = "id";
|
||||||
|
public const string USER_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "userSoftKeyConfig.xml";
|
||||||
|
public const string USER_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "userSoftKeyConfigValidator.xsd";
|
||||||
|
public const string USERNAME_KEY = "username";
|
||||||
|
|
||||||
|
// Config File Names
|
||||||
|
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||||
|
|
||||||
|
public static readonly string[] VALID_FILE_EXTENSIONS = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" };
|
||||||
|
public static readonly string[] VALID_IMAGE_EXTENSIONS = { ".jpg", ".jpeg", ".png", ".bmp", ".gif" };
|
||||||
|
public static string CANDY_DUMMYFILE_PATH = BASE_PATH + "\\dll.dll";
|
||||||
|
public static string CMS_CONNECT_SETUP_ALARM_MESSAGE = "Error during CMS-Connect setup: Redis Db Not Found";
|
||||||
|
public static int DATABASE_PROCESS_TIMEOUT = 5;
|
||||||
|
|
||||||
|
public static string[] DATE_FORMATS = new[] {
|
||||||
|
"M-d-yyyy",
|
||||||
|
"dd-MM-yyyy",
|
||||||
|
"MM-dd-yyyy",
|
||||||
|
"M/d/yyyy",
|
||||||
|
"dd/MM/yyyy",
|
||||||
|
"MM/dd/yyyy",
|
||||||
|
"dd.MM.yyyy",
|
||||||
|
"MM.dd.yyyy"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static string[] DATE_TIME_FORMATS = new[] {
|
||||||
|
"M-d-yyyy HH:mm",
|
||||||
|
"dd-MM-yyyy HH:mm",
|
||||||
|
"MM-dd-yyyy HH:mm",
|
||||||
|
"M/d/yyyy HH:mm",
|
||||||
|
"dd/MM/yyyy HH:mm",
|
||||||
|
"MM/dd/yyyy HH:mm"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static bool IS_BETA = false;
|
||||||
|
public static string[] JOB_EXTENSIONS = { ".job", ".zip" };
|
||||||
|
public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\";
|
||||||
|
public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd";
|
||||||
|
public static string NOT_CONFIGURATED_ALARM_MESSAGE = "Alarm_id_{0} : Message not configurated";
|
||||||
|
public static string NOT_FOUND_ALARM_MESSAGE = "Alarm_id_{0} : Message not found";
|
||||||
|
public static string PARTPRG_LIST_FILE = "activePP.list";
|
||||||
|
|
||||||
|
public static string QUEUE_FILE_NAME = "pp";
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
|
|
||||||
|
#region Public Enums
|
||||||
|
|
||||||
|
public enum ACTIONS
|
||||||
|
{
|
||||||
|
READ,
|
||||||
|
WRITE
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ALARM_SOURCE
|
||||||
|
{
|
||||||
|
NC = 0,
|
||||||
|
PLC = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ALARM_TYPE
|
||||||
|
{
|
||||||
|
ERROR = 0,
|
||||||
|
WARNING = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ERROR_LEVEL
|
||||||
|
{
|
||||||
|
INFO = 1,
|
||||||
|
WARNING = 2,
|
||||||
|
ERROR = 3,
|
||||||
|
FATAL = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum HEAD_TYPE
|
||||||
|
{
|
||||||
|
SPINDLE = 0,
|
||||||
|
WJ = 1,
|
||||||
|
AWJ = 2,
|
||||||
|
LASER = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maintenances types
|
||||||
|
public enum MAINTENANCE_TYPE
|
||||||
|
{
|
||||||
|
EXP_DATE = 0,
|
||||||
|
MACHINE_INTERVAL = 1,
|
||||||
|
TIME_INTERVAL = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum MAINTENANCE_UNIT_OF_MEASURE
|
||||||
|
{
|
||||||
|
mm = 0,
|
||||||
|
D = 1,
|
||||||
|
H = 2,
|
||||||
|
M = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum QUEUE_ITEM_STATUS
|
||||||
|
{
|
||||||
|
NOT_ACTIVE = 0,
|
||||||
|
RUNNING = 1,
|
||||||
|
WAITING_OPERATOR = 2,
|
||||||
|
FINISHED = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ROLE_IDS
|
||||||
|
{
|
||||||
|
CMS_SERVICE = 1,
|
||||||
|
CMS_UT = 2,
|
||||||
|
CUSTOMER_ADMIN = 3,
|
||||||
|
CUSTOMER_OPERATOR = 4,
|
||||||
|
CUSTOMER_MAINTAINER = 5
|
||||||
|
}
|
||||||
|
|
||||||
public enum SCADA_ELEMENT_TYPE
|
public enum SCADA_ELEMENT_TYPE
|
||||||
{
|
{
|
||||||
@@ -29,36 +285,10 @@ namespace Thermo.Active.Model
|
|||||||
NEGATE_IMAGE = 5
|
NEGATE_IMAGE = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
public struct SCADA_ACTION
|
public enum SOFTKEY_PLACE : int
|
||||||
{
|
{
|
||||||
public static string READ = "read";
|
PADDLE = 0,
|
||||||
public static string WRITE = "write";
|
GANT = 1,
|
||||||
}
|
|
||||||
|
|
||||||
public const int MIN_CMS_ROLE = 100;
|
|
||||||
public const int MIN_ADMIN_ROLE = 30;
|
|
||||||
|
|
||||||
public enum ROLE_IDS
|
|
||||||
{
|
|
||||||
CMS_SERVICE = 1,
|
|
||||||
CMS_UT = 2,
|
|
||||||
CUSTOMER_ADMIN = 3,
|
|
||||||
CUSTOMER_OPERATOR = 4,
|
|
||||||
CUSTOMER_MAINTAINER = 5
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ACTIONS
|
|
||||||
{
|
|
||||||
READ,
|
|
||||||
WRITE
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ERROR_LEVEL
|
|
||||||
{
|
|
||||||
INFO = 1,
|
|
||||||
WARNING = 2,
|
|
||||||
ERROR = 3,
|
|
||||||
FATAL = 4
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SOFTKEY_TYPE
|
public enum SOFTKEY_TYPE
|
||||||
@@ -68,18 +298,67 @@ namespace Thermo.Active.Model
|
|||||||
GROUP = 2
|
GROUP = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SOFTKEY_PLACE : int
|
public enum TACT_AXES_TYPE
|
||||||
{
|
{
|
||||||
PADDLE = 0,
|
NA = 0,
|
||||||
GANT = 1,
|
LINEAR,
|
||||||
|
ROTATIONAL
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum HEAD_TYPE
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
public enum TACT_DOW
|
||||||
{
|
{
|
||||||
SPINDLE = 0,
|
Sunday = 0,
|
||||||
WJ = 1,
|
Monday,
|
||||||
AWJ = 2,
|
Tuesday,
|
||||||
LASER = 3
|
Wednesday,
|
||||||
|
Thursday,
|
||||||
|
Friday,
|
||||||
|
Saturday
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TACT_IO_TYPE
|
||||||
|
{
|
||||||
|
ND = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Digital IN
|
||||||
|
/// </summary>
|
||||||
|
DI,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Digital OUT
|
||||||
|
/// </summary>
|
||||||
|
DO,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Analog IN
|
||||||
|
/// </summary>
|
||||||
|
AI,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Analog OUT
|
||||||
|
/// </summary>
|
||||||
|
AO
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TACT_MBLOCK_SECTION
|
||||||
|
{
|
||||||
|
ND = 0,
|
||||||
|
HEATING,
|
||||||
|
FORMING,
|
||||||
|
EXTRACTION
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TACT_MBLOCK_TYPE
|
||||||
|
{
|
||||||
|
ND = 0,
|
||||||
|
HEATING,
|
||||||
|
DRAWING,
|
||||||
|
MOVEMENT,
|
||||||
|
VACUUM,
|
||||||
|
COOLING,
|
||||||
|
EXTRACTION
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum TACT_PARAM_TYPE
|
public enum TACT_PARAM_TYPE
|
||||||
@@ -98,23 +377,6 @@ namespace Thermo.Active.Model
|
|||||||
Options
|
Options
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum TACT_MBLOCK_TYPE
|
|
||||||
{
|
|
||||||
ND = 0,
|
|
||||||
HEATING,
|
|
||||||
DRAWING,
|
|
||||||
MOVEMENT,
|
|
||||||
VACUUM,
|
|
||||||
COOLING,
|
|
||||||
EXTRACTION
|
|
||||||
}
|
|
||||||
public enum TACT_AXES_TYPE
|
|
||||||
{
|
|
||||||
NA = 0,
|
|
||||||
LINEAR,
|
|
||||||
ROTATIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public enum TACT_PROD_CATEGORY
|
public enum TACT_PROD_CATEGORY
|
||||||
{
|
{
|
||||||
@@ -122,20 +384,6 @@ namespace Thermo.Active.Model
|
|||||||
GAUGE
|
GAUGE
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum TACT_MBLOCK_SECTION
|
|
||||||
{
|
|
||||||
ND = 0,
|
|
||||||
HEATING,
|
|
||||||
FORMING,
|
|
||||||
EXTRACTION
|
|
||||||
}
|
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
|
||||||
public enum TACT_SCHED_TASK
|
|
||||||
{
|
|
||||||
ND = 0,
|
|
||||||
PRE_HEAT
|
|
||||||
}
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public enum TACT_SCHED_PERIOD
|
public enum TACT_SCHED_PERIOD
|
||||||
{
|
{
|
||||||
@@ -145,108 +393,106 @@ namespace Thermo.Active.Model
|
|||||||
MONTH,
|
MONTH,
|
||||||
YEAR
|
YEAR
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonConverter(typeof(StringEnumConverter))]
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
public enum TACT_DOW
|
public enum TACT_SCHED_TASK
|
||||||
{
|
{
|
||||||
Sunday = 0,
|
ND = 0,
|
||||||
Monday,
|
PRE_HEAT
|
||||||
Tuesday,
|
|
||||||
Wednesday,
|
|
||||||
Thursday,
|
|
||||||
Friday,
|
|
||||||
Saturday
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum MAINTENANCE_UNIT_OF_MEASURE
|
#endregion Public Enums
|
||||||
|
|
||||||
|
#region Public Structs
|
||||||
|
|
||||||
|
public struct SCADA_ACTION
|
||||||
{
|
{
|
||||||
mm = 0,
|
#region Public Fields
|
||||||
D = 1,
|
|
||||||
H = 2,
|
public static string READ = "read";
|
||||||
M = 3
|
public static string WRITE = "write";
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ALARM_SOURCE
|
#endregion Public Structs
|
||||||
|
|
||||||
|
#region Public Classes
|
||||||
|
|
||||||
|
public static class API_ERROR_KEYS
|
||||||
{
|
{
|
||||||
NC = 0,
|
#region Public Fields
|
||||||
PLC = 1
|
|
||||||
|
public const string CUSTOMER_FILE_INVALID = "contactinfo_error_customer_configfile";
|
||||||
|
public const string DUPLICATED_USERNAME = "error_duplicated_username";
|
||||||
|
public const string ID_ALREADY_EXIST = "error_id_already_exist";
|
||||||
|
public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid";
|
||||||
|
public const string INCORRECT_PARAMETERS = "error_incorrect_parameters";
|
||||||
|
public const string OPTION_NOT_ACTIVE = "error_option_not_active";
|
||||||
|
public const string PASSWORD_IS_INVALID = "error_password_is_invalid";
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ALARM_TYPE
|
public static class FUNCTIONALITY_NAMES
|
||||||
{
|
{
|
||||||
ERROR = 0,
|
#region Public Fields
|
||||||
WARNING = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
// Maintenances types
|
public const string ALARM_CMD = "alarmCmd";
|
||||||
public enum MAINTENANCE_TYPE
|
public const string AXES_SELECTION = "axesSoftkeys";
|
||||||
{
|
public const string GENERAL = "general";
|
||||||
EXP_DATE = 0,
|
public const string HEADS_CMD = "headsCmd";
|
||||||
MACHINE_INTERVAL = 1,
|
public const string MAINTENANCE = "maintenance";
|
||||||
TIME_INTERVAL = 2
|
public const string NC_DATA = "ncData";
|
||||||
}
|
public const string NC_SOFTKEY = "ncSoftkeys";
|
||||||
|
public const string PROCESS_CMD = "processCmd";
|
||||||
|
public const string RECIPE_MANAGER = "thermoRecipeManager";
|
||||||
|
public const string RISC_MANAGER = "riscManager";
|
||||||
|
public const string STARTUP_ICONS = "startupIcons";
|
||||||
|
public const string THERMO_MANAGER = "thermoManager";
|
||||||
|
public const string USER_FUNCTIONS = "userFunctions";
|
||||||
|
public const string USER_SOFTKEY = "userSoftkeys";
|
||||||
|
|
||||||
public enum QUEUE_ITEM_STATUS
|
#endregion Public Fields
|
||||||
{
|
|
||||||
NOT_ACTIVE = 0,
|
|
||||||
RUNNING = 1,
|
|
||||||
WAITING_OPERATOR = 2,
|
|
||||||
FINISHED = 3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public const int MAX_NUM_OF_WATCHDOG_ERROR = 4;
|
|
||||||
|
|
||||||
public static class NC_VENDOR
|
public static class NC_VENDOR
|
||||||
{
|
{
|
||||||
|
#region Public Fields
|
||||||
|
|
||||||
public const string DEMO = "DEMO";
|
public const string DEMO = "DEMO";
|
||||||
public const string FANUC = "FANUC";
|
public const string FANUC = "FANUC";
|
||||||
public const string SIEMENS = "SIEMENS";
|
|
||||||
public const string OSAI = "OSAI";
|
public const string OSAI = "OSAI";
|
||||||
public const string S7NET = "S7NET";
|
public const string S7NET = "S7NET";
|
||||||
|
public const string SIEMENS = "SIEMENS";
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
}
|
}
|
||||||
|
|
||||||
// Database config
|
|
||||||
public const string DATABASE_USER = "root";
|
|
||||||
|
|
||||||
public const string DATABASE_PWD = "root";
|
|
||||||
public const string DATABASE_NAME = "ThermoActive";
|
|
||||||
|
|
||||||
// Registry key
|
|
||||||
public const string REGISTER_MACHINE_ID_KEY_NAME = "MachineUniqueId";
|
|
||||||
|
|
||||||
// Token fields Keys
|
|
||||||
public const string AUTHENTICATION_TYPE = "Bearer";
|
|
||||||
public const string MACHINE_ID_KEY = "machineId";
|
|
||||||
|
|
||||||
public const string ROLE_LEVEL_KEY = "roleLevel";
|
|
||||||
public const string USERNAME_KEY = "username";
|
|
||||||
public const string USER_ID_KEY = "id";
|
|
||||||
|
|
||||||
// Names in the xml file
|
|
||||||
public const string SERVER_CONFIG_KEY = "serverConfig";
|
|
||||||
|
|
||||||
public const string NC_CONFIG_KEY = "ncConfig";
|
|
||||||
public const string PROD_SFT_CONFIG_KEY = "softwareProdConfig";
|
|
||||||
public const string AREAS_CONFIG_KEY = "areasConfig";
|
|
||||||
|
|
||||||
// Active Areas
|
// Active Areas
|
||||||
public class AREAS
|
public class AREAS
|
||||||
{
|
{
|
||||||
|
#region Public Fields
|
||||||
|
|
||||||
|
public const string ALARMS_KEY = "alarms";
|
||||||
|
public const string GENERAL_KEY = "general";
|
||||||
|
public const string JOBEDITOR_KEY = "jobeditor";
|
||||||
|
public const string MAINTENANCE_KEY = "maintenance";
|
||||||
public const string PRODUCTION_KEY = "production";
|
public const string PRODUCTION_KEY = "production";
|
||||||
public const string REPORT_KEY = "report";
|
public const string REPORT_KEY = "report";
|
||||||
public const string ALARMS_KEY = "alarms";
|
|
||||||
public const string MAINTENANCE_KEY = "maintenance";
|
|
||||||
public const string UTILITIES_KEY = "utilities";
|
|
||||||
public const string SCADA_KEY = "scada";
|
|
||||||
public const string GENERAL_KEY = "general";
|
|
||||||
public const string UNDER_HOOD = "underHood";
|
|
||||||
public const string JOBEDITOR_KEY = "jobeditor";
|
|
||||||
public const string USERS_KEY = "users";
|
|
||||||
public const string THERMO_KEY = "thermo";
|
|
||||||
public const string RISC_KEY = "risc";
|
public const string RISC_KEY = "risc";
|
||||||
|
public const string SCADA_KEY = "scada";
|
||||||
|
public const string THERMO_HOOD_KEY = "thermoHood";
|
||||||
|
public const string THERMO_KEY = "thermo";
|
||||||
|
public const string UNDER_HOOD = "underHood";
|
||||||
|
public const string USERS_KEY = "users";
|
||||||
|
public const string UTILITIES_KEY = "utilities";
|
||||||
|
|
||||||
|
#endregion Public Fields
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config File Names
|
#endregion Public Classes
|
||||||
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
|
||||||
//public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).Replace("\\lib", "");
|
//public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).Replace("\\lib", "");
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@@ -258,201 +504,5 @@ namespace Thermo.Active.Model
|
|||||||
public static readonly string CLIENT_PATH_86 = BASE_PATH + @"\Client\x86\" + CLIENT_EXE_NAME;
|
public static readonly string CLIENT_PATH_86 = BASE_PATH + @"\Client\x86\" + CLIENT_EXE_NAME;
|
||||||
public static string WEBSITE_DIRECTORY = BASE_PATH + "\\view";
|
public static string WEBSITE_DIRECTORY = BASE_PATH + "\\view";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public const int numRecProdPanelGraph = 30;
|
|
||||||
public const string CONFIG_DIRECTORY = "Config\\";
|
|
||||||
public const string RECIPE_TEMPLATE_PATH = CONFIG_DIRECTORY + "Recipes\\template.tpl";
|
|
||||||
public const string LIVE_RECIPE_PATH = TEMP_FOLDER + "Recipes\\current.rcp";
|
|
||||||
public const string LIVE_SCHED_TASK_PATH = TEMP_FOLDER + "Recipes\\sched.tsk";
|
|
||||||
public const string RESOURCE_DIRECTORY = @"Thermo.Active.Config.Config.";
|
|
||||||
public const string SERVER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"serverConfigValidator.xsd";
|
|
||||||
public const string SERVER_CONFIG_PATH = CONFIG_DIRECTORY + "serverConfig.xml";
|
|
||||||
|
|
||||||
public const string AREAS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "areasConfigValidator.xsd";
|
|
||||||
public const string AREAS_CONFIG_PATH = CONFIG_DIRECTORY + "areasConfig.xml";
|
|
||||||
|
|
||||||
public const string M156_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "inputOperatorConfigValidator.xsd";
|
|
||||||
public const string M156_CONFIG_PATH = CONFIG_DIRECTORY + "inputOperatorConfig.xml";
|
|
||||||
|
|
||||||
public const string CONNECT_DATAMODEL_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "dataModelConfigValidator.xsd";
|
|
||||||
public const string CONNECT_DATAMODEL_CONFIG_PATH = CONFIG_DIRECTORY + "DataModel.xml";
|
|
||||||
|
|
||||||
public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd";
|
|
||||||
public const string CUSTOMER_CONTACTS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "customerContactConfigValidator.xsd";
|
|
||||||
public const string MAINTENANCES_CONFIG_PATH = CONFIG_DIRECTORY + "maintenancesConfig.xml";
|
|
||||||
public const string CUSTOMER_CONTACTS = CMS_FOLDER_PATH + "ContactInfo.xml";
|
|
||||||
|
|
||||||
|
|
||||||
public const string USER_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "userSoftKeyConfigValidator.xsd";
|
|
||||||
public const string USER_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "userSoftKeyConfig.xml";
|
|
||||||
|
|
||||||
public const string ALARMS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "alarmsConfigValidator.xsd";
|
|
||||||
public const string ALARMS_CONFIG_PATH = CONFIG_DIRECTORY + "alarmsConfig.xml";
|
|
||||||
|
|
||||||
public const string HEADS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "headsConfigValidator.xsd";
|
|
||||||
public const string HEADS_CONFIG_PATH = CONFIG_DIRECTORY + "headsConfig.xml";
|
|
||||||
|
|
||||||
// THERMO SPEC
|
|
||||||
|
|
||||||
public const string THERMO_PROD_SCHEMA_PATH = RESOURCE_DIRECTORY + "thermoProdConfigValidator.xsd";
|
|
||||||
public const string THERMO_PROD_PATH = CONFIG_DIRECTORY + "thermoProdConfig.xml";
|
|
||||||
|
|
||||||
public const string RECIPE_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "recipeConfigValidator.xsd";
|
|
||||||
public const string RECIPE_CONFIG_PATH = CONFIG_DIRECTORY + "recipeConfig.xml";
|
|
||||||
|
|
||||||
public const string MODBLOCK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "moduleBlockConfigValidator.xsd";
|
|
||||||
public const string MODBLOCK_CONFIG_PATH = CONFIG_DIRECTORY + "moduleBlockConfig.xml";
|
|
||||||
|
|
||||||
public const string RISK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "risk2007Validator.xsd";
|
|
||||||
public const string RISK_CONFIG_PATH = CONFIG_DIRECTORY + "risk2007.xml";
|
|
||||||
|
|
||||||
public const string NC_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "ncSoftKeyConfigValidator.xsd";
|
|
||||||
public const string NC_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfig.xml";
|
|
||||||
|
|
||||||
public const string CMS_CONNECT_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "cmsConnectConfigValidator.xsd";
|
|
||||||
public const string CMS_CONNECT_CONFIG_PATH = CONFIG_DIRECTORY + "cmsConnectConfig.xml";
|
|
||||||
|
|
||||||
public const string MACROS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "macrosConfigValidator.xsd";
|
|
||||||
public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.xml";
|
|
||||||
|
|
||||||
|
|
||||||
public const string AXES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"axesConfigValidator.xsd";
|
|
||||||
public const string AXES_CONFIG_PATH = CONFIG_DIRECTORY + "axesConfig.xml";
|
|
||||||
|
|
||||||
public const string MAIN_PROGRAM_CONFIG_PATH = CONFIG_DIRECTORY + "customMainProgram.txt";
|
|
||||||
|
|
||||||
|
|
||||||
public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\";
|
|
||||||
public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd";
|
|
||||||
|
|
||||||
|
|
||||||
public const string SCADA_PAGES_SCHEMA_PATH = RESOURCE_DIRECTORY + "scadaValidator.xsd";
|
|
||||||
public static string CANDY_DUMMYFILE_PATH = BASE_PATH + "\\dll.dll";
|
|
||||||
public static string PARTPRG_LIST_FILE = "activePP.list";
|
|
||||||
|
|
||||||
// MVVM Messages to server UI
|
|
||||||
public const string SEND_STOP_SERVER = "STOP_SERVER";
|
|
||||||
|
|
||||||
public const string SEND_MESSAGE = "SEND_MESSAGE";
|
|
||||||
public const string SEND_STOP_THREADS = "SEND_STOP_THREADS";
|
|
||||||
public const string SEND_NC_STATUS = "NC_STATUS";
|
|
||||||
public const string SEND_NC_STATUS_UI = "NC_STATUS_UI";
|
|
||||||
public const string SEND_THREADS_STATUS = "THREAD_STATUS";
|
|
||||||
public const string SEND_CMSCONNECT_GW_REBOOT_STATUS = "SEND_CMSCONNECT_GW_REBOOT_STATUS";
|
|
||||||
public const string SHOW_MSG_UI = "SHOW_MSG_UI";
|
|
||||||
public const string SEND_ERROR_TO_UI = "SEND_ERROR_TO_UI";
|
|
||||||
|
|
||||||
// MVVM Messages to signalR tasks
|
|
||||||
public const string SEND_ALARMS = "SEND_ALARMS";
|
|
||||||
|
|
||||||
public const string SEND_POWER_ON_DATA = "SEND_POWER_ON_DATA";
|
|
||||||
public const string SEND_GENERIC_DATA = "SEND_GENERIC_DATA";
|
|
||||||
public const string SEND_PROCESSES_DATA = "SEND_PROCESSES_STATUS";
|
|
||||||
public const string SEND_FUNCTIONALITY_DATA = "SEND_FUNCTION_DATA";
|
|
||||||
public const string SEND_EXPIRED_MAINTENANCES_DATA = "SEND_EXPIRED_MAINTENANCES_DATA";
|
|
||||||
public const string SEND_USER_SOFTKEYS_DATA = "SEND_USER_SOFTKEYS_DATA";
|
|
||||||
public const string SEND_NC_SOFTKEYS_DATA = "SEND_NC_SOFTKEYS_DATA";
|
|
||||||
public const string SEND_HEADS_DATA = "SEND_HEADS_DATA";
|
|
||||||
public const string SEND_AXIS_INFO = "SEND_AXIS_INFO";
|
|
||||||
public const string SEND_ACTIVE_PROGRAM_DATA = "SEND_ACTIVE_PROGRAM_DATA";
|
|
||||||
public const string SEND_QUEUE_DATA = "SEND_QUEUE_DATA";
|
|
||||||
public const string SEND_M155_DATA = "SEND_M155_DATA";
|
|
||||||
public const string SEND_M156_DATA = "SEND_M156_DATA";
|
|
||||||
public const string SEND_SCADA_DATA = "SEND_SCADA_DATA";
|
|
||||||
|
|
||||||
// MVVM Messages for Thermo active specs
|
|
||||||
public const string SEND_THERMO_RECIPE_FULL = "SEND_THERMO_RECIPE_FULL";
|
|
||||||
public const string SEND_THERMO_RECIPE_OVERWIEW = "SEND_THERMO_RECIPE_OVERWIEW";
|
|
||||||
public const string SEND_THERMO_RECIPE_CHANGED = "SEND_THERMO_RECIPE_CHANGED";
|
|
||||||
public const string SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED = "SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED";
|
|
||||||
public const string SEND_THERMO_MODULE_DATA = "SEND_THERMO_MODULE_DATA";
|
|
||||||
public const string SEND_THERMO_WARMERS_DATA = "SEND_THERMO_WARMERS_DATA";
|
|
||||||
public const string SEND_THERMO_AREA_DATA = "SEND_THERMO_AREA_DATA";
|
|
||||||
public const string SEND_THERMO_GAUGE_DATA = "SEND_THERMO_GAUGE_DATA";
|
|
||||||
public const string SEND_THERMO_PROD_PANEL_DATA = "SEND_THERMO_PROD_PANEL_DATA";
|
|
||||||
public const string SEND_THERMO_PROD_INFO_DATA = "SEND_THERMO_PROD_INFO_DATA";
|
|
||||||
public const string SEND_THERMO_PROD_CYCLE_DATA = "SEND_THERMO_PROD_CYCLE_DATA";
|
|
||||||
|
|
||||||
public const string BROADCAST_DATA = "BROADCAST_DATA";
|
|
||||||
|
|
||||||
// ID prefix
|
|
||||||
public const string MAINTENANCE_PREFIX_ID = "maint_";
|
|
||||||
|
|
||||||
public const string MAINTENANCE_DESC_PREFIX_ID = "maint_desc_";
|
|
||||||
public const string SOFTKEY_PREFIX_ID = "softkey_";
|
|
||||||
public const string SOFTKEY_HEAD_ID = "Head_";
|
|
||||||
public const string ALARM_PREFIX = "alarm_";
|
|
||||||
|
|
||||||
public static class FUNCTIONALITY_NAMES
|
|
||||||
{
|
|
||||||
public const string GENERAL = "general";
|
|
||||||
public const string USER_FUNCTIONS = "userFunctions";
|
|
||||||
public const string NC_DATA = "ncData";
|
|
||||||
public const string ALARM_CMD = "alarmCmd";
|
|
||||||
public const string STARTUP_ICONS = "startupIcons";
|
|
||||||
public const string PROCESS_CMD = "processCmd";
|
|
||||||
public const string NC_SOFTKEY = "ncSoftkeys";
|
|
||||||
public const string USER_SOFTKEY = "userSoftkeys";
|
|
||||||
public const string HEADS_CMD = "headsCmd";
|
|
||||||
public const string MAINTENANCE = "maintenance";
|
|
||||||
public const string AXES_SELECTION = "axesSoftkeys";
|
|
||||||
public const string THERMO_MANAGER = "thermoManager";
|
|
||||||
public const string RISC_MANAGER = "riscManager";
|
|
||||||
public const string RECIPE_MANAGER = "thermoRecipeManager";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class API_ERROR_KEYS
|
|
||||||
{
|
|
||||||
public const string INCORRECT_PARAMETERS = "error_incorrect_parameters";
|
|
||||||
public const string OPTION_NOT_ACTIVE = "error_option_not_active";
|
|
||||||
public const string ID_ALREADY_EXIST = "error_id_already_exist";
|
|
||||||
public const string PASSWORD_IS_INVALID = "error_password_is_invalid";
|
|
||||||
public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid";
|
|
||||||
public const string DUPLICATED_USERNAME = "error_duplicated_username";
|
|
||||||
public const string CUSTOMER_FILE_INVALID = "contactinfo_error_customer_configfile";
|
|
||||||
}
|
|
||||||
|
|
||||||
// File paths
|
|
||||||
public const string CLIENT_EXE_NAME = @"Active_Client.exe";
|
|
||||||
public const string CLIENT_EXE_NAME_NOEXT = @"Active_Client";
|
|
||||||
public const string MAINTENANCE_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\maintenance\";
|
|
||||||
public const string CMS_FOLDER_PATH = @"C:\CMS\";
|
|
||||||
|
|
||||||
public const string ALARM_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\alarm\";
|
|
||||||
public const string TEMP_FOLDER = @"C:\CMS\ThermoActive\TMP\";
|
|
||||||
public const string TEMP_PP_FOLDER = TEMP_FOLDER + @"pp\";
|
|
||||||
public const string JOB_TMP_DIRECTORY = TEMP_PP_FOLDER + @"job\";
|
|
||||||
public const string QUEUE_TMP_FOLDER = TEMP_PP_FOLDER + @"queue\";
|
|
||||||
public const string PART_PRG_IMAGES = TEMP_FOLDER + @"pp_img\";
|
|
||||||
|
|
||||||
public const string SCADA_DIRECTORY = @"C:\CMS\Active\scada\";
|
|
||||||
|
|
||||||
public static readonly string[] VALID_FILE_EXTENSIONS = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" };
|
|
||||||
public static readonly string[] VALID_IMAGE_EXTENSIONS = { ".jpg", ".jpeg", ".png", ".bmp", ".gif" };
|
|
||||||
public const double EPSILON = 0.1;
|
|
||||||
public static string QUEUE_FILE_NAME = "pp";
|
|
||||||
public const string JOB_MAIN_FILENAME = "main.cnc";
|
|
||||||
public const string JOB_METADATA_FILENAME = "metadata.json";
|
|
||||||
public static string[] JOB_EXTENSIONS = { ".job", ".zip" };
|
|
||||||
|
|
||||||
public static string[] DATE_TIME_FORMATS = new[] {
|
|
||||||
"M-d-yyyy HH:mm",
|
|
||||||
"dd-MM-yyyy HH:mm",
|
|
||||||
"MM-dd-yyyy HH:mm",
|
|
||||||
"M/d/yyyy HH:mm",
|
|
||||||
"dd/MM/yyyy HH:mm",
|
|
||||||
"MM/dd/yyyy HH:mm"
|
|
||||||
};
|
|
||||||
|
|
||||||
public static string[] DATE_FORMATS = new[] {
|
|
||||||
"M-d-yyyy",
|
|
||||||
"dd-MM-yyyy",
|
|
||||||
"MM-dd-yyyy",
|
|
||||||
"M/d/yyyy",
|
|
||||||
"dd/MM/yyyy",
|
|
||||||
"MM/dd/yyyy",
|
|
||||||
"dd.MM.yyyy",
|
|
||||||
"MM.dd.yyyy"
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,5 +12,6 @@ namespace Thermo.Active.Model.DTOModels
|
|||||||
public AreasConfigModel ScadaConfig;
|
public AreasConfigModel ScadaConfig;
|
||||||
public AreasConfigModel JobEditorConfig;
|
public AreasConfigModel JobEditorConfig;
|
||||||
public AreasConfigModel UsersConfig;
|
public AreasConfigModel UsersConfig;
|
||||||
|
public AreasConfigModel ThermoHoodConfig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,14 +10,26 @@ namespace Thermo.Active.Model.DTOModels.ThAxes
|
|||||||
public class DTOAxisInfoModel
|
public class DTOAxisInfoModel
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Actual position
|
/// Axes ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int ID { get; set; } = 0;
|
public int ID { get; set; } = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Actual position
|
/// Axes Name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string name { get; set; } = "";
|
public string name { get; set; } = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// visible in the page
|
||||||
|
/// </summary>
|
||||||
|
public bool visible { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// Master (0--> is master, > 0 --> is slave)
|
||||||
|
/// </summary>
|
||||||
|
public int masterID { get; set; } = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// Enabled command in Word mode
|
||||||
|
/// </summary>
|
||||||
|
public AxisCommand enabledWord { get; set; } = 0;
|
||||||
|
/// <summary>
|
||||||
/// Type of axis
|
/// Type of axis
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string type { get; set; } = "";
|
public string type { get; set; } = "";
|
||||||
@@ -53,6 +65,10 @@ namespace Thermo.Active.Model.DTOModels.ThAxes
|
|||||||
return false;
|
return false;
|
||||||
if (ID != item.ID)
|
if (ID != item.ID)
|
||||||
return false;
|
return false;
|
||||||
|
if (masterID != item.masterID)
|
||||||
|
return false;
|
||||||
|
if (enabledWord != item.enabledWord)
|
||||||
|
return false;
|
||||||
if (name != item.name)
|
if (name != item.name)
|
||||||
return false;
|
return false;
|
||||||
if (Math.Round(Math.Abs(position - item.position), 1) >= Constants.EPSILON)
|
if (Math.Round(Math.Abs(position - item.position), 1) >= Constants.EPSILON)
|
||||||
@@ -134,4 +150,26 @@ namespace Thermo.Active.Model.DTOModels.ThAxes
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
public enum AxisCommand
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
MoveAbsolute = 1 << 0,
|
||||||
|
JogIncPlus = 1 << 1,
|
||||||
|
JogIncMinus = 1 << 2,
|
||||||
|
Align = 1 << 3,
|
||||||
|
Probe = 1 << 4,
|
||||||
|
SetSlavePosition = 1 << 5,
|
||||||
|
Reset = 1 << 6,
|
||||||
|
Num07 = 1 << 7,
|
||||||
|
Num08 = 1 << 8,
|
||||||
|
Num09 = 1 << 9,
|
||||||
|
Num10 = 1 << 10,
|
||||||
|
Num11 = 1 << 11,
|
||||||
|
Num12 = 1 << 12,
|
||||||
|
Num13 = 1 << 13,
|
||||||
|
Num14 = 1 << 14,
|
||||||
|
Num15 = 1 << 15,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,191 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DTOModels.ThIO
|
||||||
|
{
|
||||||
|
public class DTOChannelsIO
|
||||||
|
{
|
||||||
|
public List<DigitalIN> DI { get; set; } = new List<DigitalIN>();
|
||||||
|
public List<DigitalOUT> DO { get; set; } = new List<DigitalOUT>();
|
||||||
|
public List<AnalogIN> AI { get; set; } = new List<AnalogIN>();
|
||||||
|
public List<AnalogOUT> AO { get; set; } = new List<AnalogOUT>();
|
||||||
|
}
|
||||||
|
public class DigitalIN : IoItemConf
|
||||||
|
{
|
||||||
|
public bool Value { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is DigitalIN item))
|
||||||
|
return false;
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Bank != item.Bank)
|
||||||
|
return false;
|
||||||
|
if (Position != item.Position)
|
||||||
|
return false;
|
||||||
|
if (Page != item.Page)
|
||||||
|
return false;
|
||||||
|
if (Wire != Wire)
|
||||||
|
return false;
|
||||||
|
if (Profinet != item.Profinet)
|
||||||
|
return false;
|
||||||
|
if (Label != item.Label)
|
||||||
|
return false;
|
||||||
|
if (Visible != item.Visible)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class AnalogIN : IoItemConf
|
||||||
|
{
|
||||||
|
public int Value { get; set; } = 0;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is AnalogIN item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Bank != item.Bank)
|
||||||
|
return false;
|
||||||
|
if (Position != item.Position)
|
||||||
|
return false;
|
||||||
|
if (Page != item.Page)
|
||||||
|
return false;
|
||||||
|
if (Wire != Wire)
|
||||||
|
return false;
|
||||||
|
if (Profinet != item.Profinet)
|
||||||
|
return false;
|
||||||
|
if (Label != item.Label)
|
||||||
|
return false;
|
||||||
|
if (Visible != item.Visible)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class DigitalOUT : DigitalIN
|
||||||
|
{
|
||||||
|
public bool ForceEnabled { get; set; } = true;
|
||||||
|
public bool ForceZero { get; set; } = false;
|
||||||
|
public bool ForceOne { get; set; } = false;
|
||||||
|
public bool IsForced { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is DigitalOUT item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Bank != item.Bank)
|
||||||
|
return false;
|
||||||
|
if (Position != item.Position)
|
||||||
|
return false;
|
||||||
|
if (Page != item.Page)
|
||||||
|
return false;
|
||||||
|
if (Wire != Wire)
|
||||||
|
return false;
|
||||||
|
if (Profinet != item.Profinet)
|
||||||
|
return false;
|
||||||
|
if (Label != item.Label)
|
||||||
|
return false;
|
||||||
|
if (Visible != item.Visible)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
if (ForceEnabled != item.ForceEnabled)
|
||||||
|
return false;
|
||||||
|
if (ForceZero != item.ForceZero)
|
||||||
|
return false;
|
||||||
|
if (ForceOne != item.ForceOne)
|
||||||
|
return false;
|
||||||
|
if (IsForced != item.IsForced)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class AnalogOUT : AnalogIN
|
||||||
|
{
|
||||||
|
public bool ForceEnabled { get; set; } = true;
|
||||||
|
public int ForcedValue { get; set; } = 0;
|
||||||
|
public bool IsForced { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is AnalogOUT item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Bank != item.Bank)
|
||||||
|
return false;
|
||||||
|
if (Position != item.Position)
|
||||||
|
return false;
|
||||||
|
if (Page != item.Page)
|
||||||
|
return false;
|
||||||
|
if (Wire != Wire)
|
||||||
|
return false;
|
||||||
|
if (Profinet != item.Profinet)
|
||||||
|
return false;
|
||||||
|
if (Label != item.Label)
|
||||||
|
return false;
|
||||||
|
if (Visible != item.Visible)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
if (ForceEnabled != item.ForceEnabled)
|
||||||
|
return false;
|
||||||
|
if (ForcedValue != item.ForcedValue)
|
||||||
|
return false;
|
||||||
|
if (IsForced != item.IsForced)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DTOModels.ThIO
|
||||||
|
{
|
||||||
|
public class DTOChannelsIOVal
|
||||||
|
{
|
||||||
|
public List<DigInVal> DI { get; set; } = new List<DigInVal>();
|
||||||
|
public List<DigOutVal> DO { get; set; } = new List<DigOutVal>();
|
||||||
|
public List<AnalInVal> AI { get; set; } = new List<AnalInVal>();
|
||||||
|
public List<AnalOutVal> AO { get; set; } = new List<AnalOutVal>();
|
||||||
|
}
|
||||||
|
public class DigInVal: IoItem
|
||||||
|
{
|
||||||
|
public bool Value { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is DigInVal item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class AnalInVal: IoItem
|
||||||
|
{
|
||||||
|
public int Value { get; set; } = 0;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is AnalInVal item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class DigOutVal : DigInVal
|
||||||
|
{
|
||||||
|
public bool ForceEnabled { get; set; } = true;
|
||||||
|
public bool ForceZero { get; set; } = false;
|
||||||
|
public bool ForceOne { get; set; } = false;
|
||||||
|
public bool IsForced { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is DigOutVal item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (ForceEnabled != item.ForceEnabled)
|
||||||
|
return false;
|
||||||
|
if (ForceZero != item.ForceZero)
|
||||||
|
return false;
|
||||||
|
if (ForceOne != item.ForceOne)
|
||||||
|
return false;
|
||||||
|
if (IsForced != item.IsForced)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class AnalOutVal : AnalInVal
|
||||||
|
{
|
||||||
|
public bool ForceEnabled { get; set; } = true;
|
||||||
|
public int ForcedValue { get; set; } = 0;
|
||||||
|
public bool IsForced { get; set; } = false;
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is AnalOutVal item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (ForceEnabled != item.ForceEnabled)
|
||||||
|
return false;
|
||||||
|
if (ForcedValue != item.ForcedValue)
|
||||||
|
return false;
|
||||||
|
if (IsForced != item.IsForced)
|
||||||
|
return false;
|
||||||
|
if (Value != item.Value)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DTOModels.ThIO
|
||||||
|
{
|
||||||
|
public class DTOChannelsSetup
|
||||||
|
{
|
||||||
|
public List<string> DI { get; set; } = new List<string>();
|
||||||
|
public List<string> DO { get; set; } = new List<string>();
|
||||||
|
public List<string> AI { get; set; } = new List<string>();
|
||||||
|
public List<string> AO { get; set; } = new List<string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DTOModels.ThIO
|
||||||
|
{
|
||||||
|
public class DTOCycleLog
|
||||||
|
{
|
||||||
|
public List<CycleEvent> events { get; set; } = new List<CycleEvent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CycleEvent
|
||||||
|
{
|
||||||
|
public DateTime dtEvent { get; set; }
|
||||||
|
|
||||||
|
public int code { get; set; } = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DTOModels.ThIO
|
||||||
|
{
|
||||||
|
public class IoItem
|
||||||
|
{
|
||||||
|
public int Id { get; set; } = 0;
|
||||||
|
}
|
||||||
|
public class IoItemDigi : IoItem
|
||||||
|
{
|
||||||
|
public bool value { get; set; } = false;
|
||||||
|
}
|
||||||
|
public class IoItemAnal : IoItem
|
||||||
|
{
|
||||||
|
public int value { get; set; } = 0;
|
||||||
|
}
|
||||||
|
public class IoItemConf : IoItem
|
||||||
|
{
|
||||||
|
public string Bank { get; set; } = "0";
|
||||||
|
public string Position { get; set; } = "0";
|
||||||
|
public string Page { get; set; } = "0";
|
||||||
|
public string Wire { get; set; } = "0";
|
||||||
|
public string Profinet { get; set; } = "0";
|
||||||
|
public string Label { get; set; } = "LBL";
|
||||||
|
public bool Visible { get; set; } = true;
|
||||||
|
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (!(obj is IoItemConf item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (Id != item.Id)
|
||||||
|
return false;
|
||||||
|
if (Bank != item.Bank)
|
||||||
|
return false;
|
||||||
|
if (Position != item.Position)
|
||||||
|
return false;
|
||||||
|
if (Page != item.Page)
|
||||||
|
return false;
|
||||||
|
if (Wire != Wire)
|
||||||
|
return false;
|
||||||
|
if (Profinet != item.Profinet)
|
||||||
|
return false;
|
||||||
|
if (Label != item.Label)
|
||||||
|
return false;
|
||||||
|
if (Visible != item.Visible)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Hash gen
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,95 +7,112 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Thermo.Active.Model.DTOModels.ThProd
|
namespace Thermo.Active.Model.DTOModels.ThProd
|
||||||
{
|
{
|
||||||
public class DTOProdInfo
|
public class DTOProdInfo
|
||||||
{
|
|
||||||
public DateTime DtEvent { get; set; }
|
|
||||||
public short NumTarget { get; set; } = 0;
|
|
||||||
public short NumDone { get; set; } = 0;
|
|
||||||
public double TimeWarm { get; set; } = 0;
|
|
||||||
public double TimeVent { get; set; } = 0;
|
|
||||||
public double TimeVacuum { get; set; } = 0;
|
|
||||||
public double TimeCycleGross { get; set; } = 0;
|
|
||||||
public double TimeCycleNet { get; set; } = 0;
|
|
||||||
public int NumDec { get; set; } = 1;
|
|
||||||
public int ScaleFactor { get; set; } = 1000;
|
|
||||||
public double MaterialTempEndWarm { get; set; } = 0;
|
|
||||||
public double MaterialTempEndVent { get; set; } = 0;
|
|
||||||
public double MoldTemp { get; set; } = 0;
|
|
||||||
public double VacuumReadVal { get; set; } = 0;
|
|
||||||
public double MouldEnergyOUT { get; set; } = 0;
|
|
||||||
public double MouldEnergyIN { get; set; } = 0;
|
|
||||||
public bool IsScrap { get; set; } = false;
|
|
||||||
public short NumPreHot { get; set; } = 0;
|
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
|
||||||
{
|
{
|
||||||
// Object is not a GaugeModel instance
|
#region Public Constructors
|
||||||
if (!(obj is DTOProdInfo item))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (DtEvent != item.DtEvent)
|
public DTOProdInfo()
|
||||||
return false;
|
{
|
||||||
if (NumTarget != item.NumTarget)
|
}
|
||||||
return false;
|
|
||||||
if (NumDone != item.NumDone)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(TimeWarm - item.TimeWarm), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(TimeVent - item.TimeVent), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(TimeVacuum - item.TimeVacuum), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(TimeCycleGross - item.TimeCycleGross), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(TimeCycleNet - item.TimeCycleNet), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(MaterialTempEndWarm - item.MaterialTempEndWarm), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(MaterialTempEndVent - item.MaterialTempEndVent), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(MoldTemp - item.MoldTemp), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(VacuumReadVal - item.VacuumReadVal), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(MouldEnergyOUT - item.MouldEnergyOUT), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (Math.Round(Math.Abs(MouldEnergyIN - item.MouldEnergyIN), 1) >= Constants.EPSILON)
|
|
||||||
return false;
|
|
||||||
if (IsScrap != item.IsScrap)
|
|
||||||
return false;
|
|
||||||
if (NumPreHot != item.NumPreHot)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
public DTOProdInfo(ThermoModels.ProdInfoModel pimRawData)
|
||||||
}
|
{
|
||||||
public override int GetHashCode()
|
this.DtEvent = pimRawData.DtEvent;
|
||||||
{
|
this.NumDone = pimRawData.NumDone;
|
||||||
return base.GetHashCode();
|
this.NumTarget = pimRawData.NumTarget;
|
||||||
}
|
this.ThermoImage = pimRawData.ThermoImage;
|
||||||
|
this.TimeCycleGross = Math.Round((double)pimRawData.TimeCycleGross / this.ScaleFactor, 2);
|
||||||
|
this.TimeCycleNet = Math.Round((double)pimRawData.TimeCycleNet / this.ScaleFactor, 2);
|
||||||
|
this.TimeVacuum = Math.Round((double)pimRawData.TimeVacuum / this.ScaleFactor, 2);
|
||||||
|
this.TimeVent = Math.Round((double)pimRawData.TimeVent / this.ScaleFactor, 2);
|
||||||
|
this.TimeWarm = Math.Round((double)pimRawData.TimeWarm / this.ScaleFactor, 2);
|
||||||
|
this.MaterialTempEndWarm = pimRawData.MaterialTempEndWarm;
|
||||||
|
this.MaterialTempEndVent = pimRawData.MaterialTempEndVent;
|
||||||
|
this.MoldTemp = pimRawData.MoldTemp;
|
||||||
|
this.VacuumReadVal = pimRawData.VacuumReadVal;
|
||||||
|
this.MouldEnergyIN = pimRawData.MouldEnergyIN;
|
||||||
|
this.MouldEnergyOUT = pimRawData.MouldEnergyOUT;
|
||||||
|
this.IsScrap = pimRawData.IsScrap;
|
||||||
|
this.NumPreHot = pimRawData.NumPreHot;
|
||||||
|
}
|
||||||
|
|
||||||
public DTOProdInfo()
|
#endregion Public Constructors
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public DTOProdInfo(ThermoModels.ProdInfoModel pimRawData)
|
#region Public Properties
|
||||||
{
|
|
||||||
this.DtEvent = pimRawData.DtEvent;
|
public DateTime DtEvent { get; set; }
|
||||||
this.NumDone = pimRawData.NumDone;
|
public bool IsScrap { get; set; } = false;
|
||||||
this.NumTarget = pimRawData.NumTarget;
|
public double MaterialTempEndVent { get; set; } = 0;
|
||||||
this.TimeCycleGross = Math.Round((double)pimRawData.TimeCycleGross / this.ScaleFactor, 2);
|
public double MaterialTempEndWarm { get; set; } = 0;
|
||||||
this.TimeCycleNet = Math.Round((double)pimRawData.TimeCycleNet / this.ScaleFactor, 2);
|
public double MoldTemp { get; set; } = 0;
|
||||||
this.TimeVacuum = Math.Round((double)pimRawData.TimeVacuum / this.ScaleFactor, 2);
|
public double MouldEnergyIN { get; set; } = 0;
|
||||||
this.TimeVent = Math.Round((double)pimRawData.TimeVent / this.ScaleFactor, 2);
|
public double MouldEnergyOUT { get; set; } = 0;
|
||||||
this.TimeWarm = Math.Round((double)pimRawData.TimeWarm / this.ScaleFactor, 2);
|
public int NumDec { get; set; } = 1;
|
||||||
this.MaterialTempEndWarm = pimRawData.MaterialTempEndWarm;
|
public short NumDone { get; set; } = 0;
|
||||||
this.MaterialTempEndVent = pimRawData.MaterialTempEndVent;
|
public short NumPreHot { get; set; } = 0;
|
||||||
this.MoldTemp = pimRawData.MoldTemp;
|
public short NumTarget { get; set; } = 0;
|
||||||
this.VacuumReadVal = pimRawData.VacuumReadVal;
|
public int ScaleFactor { get; set; } = 1000;
|
||||||
this.MouldEnergyIN = pimRawData.MouldEnergyIN;
|
public string ThermoImage { get; set; } = "";
|
||||||
this.MouldEnergyOUT = pimRawData.MouldEnergyOUT;
|
public double TimeCycleGross { get; set; } = 0;
|
||||||
this.IsScrap = pimRawData.IsScrap;
|
public double TimeCycleNet { get; set; } = 0;
|
||||||
this.NumPreHot = pimRawData.NumPreHot;
|
public double TimeVacuum { get; set; } = 0;
|
||||||
|
public double TimeVent { get; set; } = 0;
|
||||||
|
public double TimeWarm { get; set; } = 0;
|
||||||
|
public double VacuumReadVal { get; set; } = 0;
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
// Object is not a GaugeModel instance
|
||||||
|
if (!(obj is DTOProdInfo item))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (DtEvent != item.DtEvent)
|
||||||
|
return false;
|
||||||
|
if (NumTarget != item.NumTarget)
|
||||||
|
return false;
|
||||||
|
if (NumDone != item.NumDone)
|
||||||
|
return false;
|
||||||
|
if (ThermoImage != item.ThermoImage)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(TimeWarm - item.TimeWarm), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(TimeVent - item.TimeVent), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(TimeVacuum - item.TimeVacuum), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(TimeCycleGross - item.TimeCycleGross), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(TimeCycleNet - item.TimeCycleNet), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(MaterialTempEndWarm - item.MaterialTempEndWarm), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(MaterialTempEndVent - item.MaterialTempEndVent), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(MoldTemp - item.MoldTemp), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(VacuumReadVal - item.VacuumReadVal), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(MouldEnergyOUT - item.MouldEnergyOUT), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (Math.Round(Math.Abs(MouldEnergyIN - item.MouldEnergyIN), 1) >= Constants.EPSILON)
|
||||||
|
return false;
|
||||||
|
if (IsScrap != item.IsScrap)
|
||||||
|
return false;
|
||||||
|
if (NumPreHot != item.NumPreHot)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return base.GetHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -8,19 +8,47 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
|||||||
{
|
{
|
||||||
public class DTOThermoCam
|
public class DTOThermoCam
|
||||||
{
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Opzione ThermoCamera (set by PLC)
|
/// Thermo Image Size
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ThermoOptionActive { get; set; } = false;
|
public Size ImageSize { get; set; } = new Size();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Thermo Temperature Range
|
||||||
|
/// </summary>
|
||||||
|
public RangeVal RangeTemperature { get; set; } = new RangeVal();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Modalità ThermoCamera (set by HMI)
|
/// Modalità ThermoCamera (set by HMI)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ThermoCamMode { get; set; } = false;
|
public bool ThermoCamMode { get; set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Funzionamento ThermoCamera (set by HMI)
|
/// Funzionamento ThermoCamera (set by HMI)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ThermoCamOnOff { get; set; } = false;
|
public bool ThermoCamOnOff { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stato connessione ThermoCamera (in rete)
|
||||||
|
/// </summary>
|
||||||
|
public bool ThermoCamConnected { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Opzione ThermoCamera (set by PLC)
|
||||||
|
/// </summary>
|
||||||
|
public bool ThermoOptionActive { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Data ultima acquisizione
|
||||||
|
/// </summary>
|
||||||
|
public DateTime LastTakenImage { get; set; } = new DateTime(0);
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Equality test for class object
|
/// Equality test for class object
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -37,7 +65,13 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
|||||||
return false;
|
return false;
|
||||||
if (ThermoCamOnOff != item.ThermoCamOnOff)
|
if (ThermoCamOnOff != item.ThermoCamOnOff)
|
||||||
return false;
|
return false;
|
||||||
|
if (ImageSize != item.ImageSize)
|
||||||
|
return false;
|
||||||
|
if (RangeTemperature != item.RangeTemperature)
|
||||||
|
return false;
|
||||||
|
if (LastTakenImage != item.LastTakenImage)
|
||||||
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,5 +83,41 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
|||||||
{
|
{
|
||||||
return base.GetHashCode();
|
return base.GetHashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public class RangeVal
|
||||||
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VAlore MASSIMO
|
||||||
|
/// </summary>
|
||||||
|
public double Max { get; set; } = 50;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Valore minimo
|
||||||
|
/// </summary>
|
||||||
|
public double Min { get; set; } = 0;
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Size
|
||||||
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Dimensione X
|
||||||
|
/// </summary>
|
||||||
|
public int X { get; set; } = 100;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Dimensione X
|
||||||
|
/// </summary>
|
||||||
|
public int Y { get; set; } = 100;
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,14 +8,31 @@ namespace Thermo.Active.Model.DTOModels.ThWarmers
|
|||||||
{
|
{
|
||||||
public class ThermoPoint
|
public class ThermoPoint
|
||||||
{
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
public int X { get; set; } = 0;
|
public int X { get; set; } = 0;
|
||||||
public int Y { get; set; } = 0;
|
public int Y { get; set; } = 0;
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
public static int distance(ThermoPoint a, ThermoPoint b)
|
public static int distance(ThermoPoint a, ThermoPoint b)
|
||||||
{
|
{
|
||||||
int answ = 0;
|
int answ = 0;
|
||||||
answ = (int)Math.Sqrt(Math.Pow((a.X - b.X), 2) + Math.Pow((a.Y - b.Y), 2));
|
answ = (int)Math.Sqrt(Math.Pow((a.X - b.X), 2) + Math.Pow((a.Y - b.Y), 2));
|
||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public class ThermoPointFlir : ThermoPoint
|
||||||
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
public float Temperature { get; set; } = 0;
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Model.DatabaseModels
|
||||||
|
{
|
||||||
|
[Table("HistorySheets")]
|
||||||
|
public class HistorySheetModel
|
||||||
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
[Key]
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
[Column("DtEvent", Order = 0)]
|
||||||
|
public DateTime DtEvent { get; set; }
|
||||||
|
|
||||||
|
[Column("Recipe")]
|
||||||
|
public string RecipeName { get; set; }
|
||||||
|
|
||||||
|
[Column("NumDone")]
|
||||||
|
public short NumDone { get; set; }
|
||||||
|
|
||||||
|
[Column("FirstVal")]
|
||||||
|
public float FirstVal { get; set; }
|
||||||
|
|
||||||
|
[Column("SecondVal")]
|
||||||
|
public float SecondVal { get; set; }
|
||||||
|
|
||||||
|
[Column("ThirdVal")]
|
||||||
|
public float ThirdVal { get; set; }
|
||||||
|
|
||||||
|
[Column("TypeVal")]
|
||||||
|
public int TypeVal { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,43 +7,58 @@ namespace Thermo.Active.Model.DatabaseModels
|
|||||||
[Table("ProdInfo")]
|
[Table("ProdInfo")]
|
||||||
public class ProdInfoModel
|
public class ProdInfoModel
|
||||||
{
|
{
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
[Key]
|
[Key]
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
[Column("DtEvent", Order = 0)]
|
[Column("DtEvent", Order = 0)]
|
||||||
public DateTime DtEvent { get; set; }
|
public DateTime DtEvent { get; set; }
|
||||||
|
|
||||||
[Column("NumTarget")]
|
|
||||||
public short NumTarget { get; set; }
|
|
||||||
[Column("NumDone")]
|
|
||||||
public short NumDone { get; set; }
|
|
||||||
|
|
||||||
[Column("TimeWarm")]
|
|
||||||
public int TimeWarm { get; set; }
|
|
||||||
[Column("TimeVent")]
|
|
||||||
public int TimeVent { get; set; }
|
|
||||||
[Column("TimeVacuum")]
|
|
||||||
public int TimeVacuum { get; set; }
|
|
||||||
[Column("TimeCycleGross")]
|
|
||||||
public int TimeCycleGross { get; set; }
|
|
||||||
[Column("TimeCycleNet")]
|
|
||||||
public int TimeCycleNet { get; set; }
|
|
||||||
|
|
||||||
[Column("MaterialTempEndWarm")]
|
|
||||||
public double MaterialTempEndWarm { get; set; }
|
|
||||||
[Column("MaterialTempEndVent")]
|
|
||||||
public double MaterialTempEndVent { get; set; }
|
|
||||||
[Column("MoldTemp")]
|
|
||||||
public double MoldTemp { get; set; }
|
|
||||||
|
|
||||||
[Column("VacuumReadVal")]
|
|
||||||
public double VacuumReadVal { get; set; }
|
|
||||||
|
|
||||||
[Column("MouldEnergyOUT")]
|
|
||||||
public double MouldEnergyOUT { get; set; }
|
|
||||||
[Column("MouldEnergyIN")]
|
|
||||||
public double MouldEnergyIN { get; set; }
|
|
||||||
[Column("IsScrap")]
|
[Column("IsScrap")]
|
||||||
public bool IsScrap { get; set; }
|
public bool IsScrap { get; set; }
|
||||||
|
|
||||||
|
[Column("MaterialTempEndVent")]
|
||||||
|
public float MaterialTempEndVent { get; set; }
|
||||||
|
|
||||||
|
[Column("MaterialTempEndWarm")]
|
||||||
|
public float MaterialTempEndWarm { get; set; }
|
||||||
|
|
||||||
|
[Column("MoldTemp")]
|
||||||
|
public float MoldTemp { get; set; }
|
||||||
|
|
||||||
|
[Column("MouldEnergyIN")]
|
||||||
|
public float MouldEnergyIN { get; set; }
|
||||||
|
|
||||||
|
[Column("MouldEnergyOUT")]
|
||||||
|
public float MouldEnergyOUT { get; set; }
|
||||||
|
|
||||||
|
[Column("NumDone")]
|
||||||
|
public short NumDone { get; set; }
|
||||||
|
|
||||||
|
[Column("NumTarget")]
|
||||||
|
public short NumTarget { get; set; }
|
||||||
|
|
||||||
|
[Column("ThermoImage")]
|
||||||
|
public string ThermoImage { get; set; }
|
||||||
|
|
||||||
|
[Column("TimeCycleGross")]
|
||||||
|
public int TimeCycleGross { get; set; }
|
||||||
|
|
||||||
|
[Column("TimeCycleNet")]
|
||||||
|
public int TimeCycleNet { get; set; }
|
||||||
|
|
||||||
|
[Column("TimeVacuum")]
|
||||||
|
public int TimeVacuum { get; set; }
|
||||||
|
|
||||||
|
[Column("TimeVent")]
|
||||||
|
public int TimeVent { get; set; }
|
||||||
|
|
||||||
|
[Column("TimeWarm")]
|
||||||
|
public int TimeWarm { get; set; }
|
||||||
|
|
||||||
|
[Column("VacuumReadVal")]
|
||||||
|
public float VacuumReadVal { get; set; }
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,6 +66,7 @@
|
|||||||
<Compile Include="ConfigModels\ExtSoftwareModel.cs" />
|
<Compile Include="ConfigModels\ExtSoftwareModel.cs" />
|
||||||
<Compile Include="ConfigModels\InputOperatorConfigModel.cs" />
|
<Compile Include="ConfigModels\InputOperatorConfigModel.cs" />
|
||||||
<Compile Include="ConfigModels\AxesConfigModel.cs" />
|
<Compile Include="ConfigModels\AxesConfigModel.cs" />
|
||||||
|
<Compile Include="ConfigModels\IOConfigModel.cs" />
|
||||||
<Compile Include="ConfigModels\ThermoProdConfigModel.cs" />
|
<Compile Include="ConfigModels\ThermoProdConfigModel.cs" />
|
||||||
<Compile Include="ConfigModels\ModBlockConfigModel.cs" />
|
<Compile Include="ConfigModels\ModBlockConfigModel.cs" />
|
||||||
<Compile Include="ConfigModels\RiskConfigModel.cs" />
|
<Compile Include="ConfigModels\RiskConfigModel.cs" />
|
||||||
@@ -84,6 +85,7 @@
|
|||||||
<Compile Include="DatabaseModels\AlarmNoteModel.cs" />
|
<Compile Include="DatabaseModels\AlarmNoteModel.cs" />
|
||||||
<Compile Include="DatabaseModels\AlarmOccurrencesModel.cs" />
|
<Compile Include="DatabaseModels\AlarmOccurrencesModel.cs" />
|
||||||
<Compile Include="DatabaseModels\AlarmUserModel.cs" />
|
<Compile Include="DatabaseModels\AlarmUserModel.cs" />
|
||||||
|
<Compile Include="DatabaseModels\HistorySheetModel.cs" />
|
||||||
<Compile Include="DatabaseModels\FavoriteUserSoftKeyModel.cs" />
|
<Compile Include="DatabaseModels\FavoriteUserSoftKeyModel.cs" />
|
||||||
<Compile Include="DatabaseModels\FunctionAccessModel.cs" />
|
<Compile Include="DatabaseModels\FunctionAccessModel.cs" />
|
||||||
<Compile Include="ConfigModels\MessageModel.cs" />
|
<Compile Include="ConfigModels\MessageModel.cs" />
|
||||||
@@ -112,6 +114,11 @@
|
|||||||
<Compile Include="DTOModels\DTOM156InputModel.cs" />
|
<Compile Include="DTOModels\DTOM156InputModel.cs" />
|
||||||
<Compile Include="DTOModels\DTOMessageModel.cs" />
|
<Compile Include="DTOModels\DTOMessageModel.cs" />
|
||||||
<Compile Include="DTOModels\ThAxes\DTOAxisInfoModel.cs" />
|
<Compile Include="DTOModels\ThAxes\DTOAxisInfoModel.cs" />
|
||||||
|
<Compile Include="DTOModels\ThIO\DTOChannelsIOVal.cs" />
|
||||||
|
<Compile Include="DTOModels\ThIO\DTOCycleLog.cs" />
|
||||||
|
<Compile Include="DTOModels\ThIO\DTOChannelsSetup.cs" />
|
||||||
|
<Compile Include="DTOModels\ThIO\DTOChannelsIO.cs" />
|
||||||
|
<Compile Include="DTOModels\ThIO\IoItemConf.cs" />
|
||||||
<Compile Include="DTOModels\ThModules\DTOModulesBlock.cs" />
|
<Compile Include="DTOModels\ThModules\DTOModulesBlock.cs" />
|
||||||
<Compile Include="DTOModels\ThProd\DTOProdInfo.cs" />
|
<Compile Include="DTOModels\ThProd\DTOProdInfo.cs" />
|
||||||
<Compile Include="DTOModels\ThProd\DTOThermoPanelProd.cs" />
|
<Compile Include="DTOModels\ThProd\DTOThermoPanelProd.cs" />
|
||||||
|
|||||||
+1012
-466
File diff suppressed because it is too large
Load Diff
@@ -28,7 +28,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
@@ -38,6 +38,10 @@
|
|||||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
||||||
+400
-400
@@ -30,436 +30,436 @@ namespace Thermo.Active.UI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerControlWindow));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerControlWindow));
|
||||||
this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.resetCountersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetCountersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetMachineWorkingHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.TXTstatus = new System.Windows.Forms.TextBox();
|
this.TXTstatus = new System.Windows.Forms.TextBox();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
this.stopServerButton = new System.Windows.Forms.Button();
|
this.stopServerButton = new System.Windows.Forms.Button();
|
||||||
this.openUiButton = new System.Windows.Forms.Button();
|
this.openUiButton = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.TXTVersion = new System.Windows.Forms.Label();
|
this.TXTVersion = new System.Windows.Forms.Label();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.TXTType = new System.Windows.Forms.Label();
|
this.TXTType = new System.Windows.Forms.Label();
|
||||||
this.CHNcConnected = new System.Windows.Forms.CheckBox();
|
this.CHNcConnected = new System.Windows.Forms.CheckBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.TXTMachId = new System.Windows.Forms.Label();
|
this.TXTMachId = new System.Windows.Forms.Label();
|
||||||
this.LISTThreadStatus = new System.Windows.Forms.ListView();
|
this.LISTThreadStatus = new System.Windows.Forms.ListView();
|
||||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.closeCMSServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.closeCMSServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.serviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.serviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.passwordToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.passwordToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.goBackToStandardModeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.goBackToStandardModeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.resetSpindleHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetSpindleHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.resetCountersToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetCountersToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.resetMachineWorkingHoursToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.NotifyIconMenu.SuspendLayout();
|
this.NotifyIconMenu.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// StepNotifyIcon
|
// StepNotifyIcon
|
||||||
//
|
//
|
||||||
this.StepNotifyIcon.BalloonTipText = "Active";
|
this.StepNotifyIcon.BalloonTipText = "Active";
|
||||||
this.StepNotifyIcon.ContextMenuStrip = this.NotifyIconMenu;
|
this.StepNotifyIcon.ContextMenuStrip = this.NotifyIconMenu;
|
||||||
this.StepNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("StepNotifyIcon.Icon")));
|
this.StepNotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("StepNotifyIcon.Icon")));
|
||||||
this.StepNotifyIcon.Text = "Active";
|
this.StepNotifyIcon.Text = "Active";
|
||||||
this.StepNotifyIcon.Visible = true;
|
this.StepNotifyIcon.Visible = true;
|
||||||
this.StepNotifyIcon.DoubleClick += new System.EventHandler(this.NotifyIcon_Click);
|
this.StepNotifyIcon.DoubleClick += new System.EventHandler(this.NotifyIcon_Click);
|
||||||
//
|
//
|
||||||
// NotifyIconMenu
|
// NotifyIconMenu
|
||||||
//
|
//
|
||||||
this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.adminMachineToolStripMenuItem,
|
this.adminMachineToolStripMenuItem,
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
this.StopServerItem});
|
this.StopServerItem});
|
||||||
this.NotifyIconMenu.Name = "NotifyIconMenu";
|
this.NotifyIconMenu.Name = "NotifyIconMenu";
|
||||||
this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||||
this.NotifyIconMenu.Size = new System.Drawing.Size(175, 54);
|
this.NotifyIconMenu.Size = new System.Drawing.Size(175, 54);
|
||||||
//
|
//
|
||||||
// adminMachineToolStripMenuItem
|
// adminMachineToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.passwordToolStripMenuItem,
|
this.passwordToolStripMenuItem,
|
||||||
this.goBackToStandardModeToolStripMenuItem,
|
this.goBackToStandardModeToolStripMenuItem,
|
||||||
this.toolStripSeparator,
|
this.toolStripSeparator,
|
||||||
this.resetSpindleHoursToolStripMenuItem,
|
this.resetSpindleHoursToolStripMenuItem,
|
||||||
this.resetCountersToolStripMenuItem,
|
this.resetCountersToolStripMenuItem,
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem});
|
this.resetMachineWorkingHoursToolStripMenuItem});
|
||||||
this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem";
|
this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem";
|
||||||
this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||||
this.adminMachineToolStripMenuItem.Text = "Service";
|
this.adminMachineToolStripMenuItem.Text = "Service";
|
||||||
//
|
//
|
||||||
// passwordToolStripMenuItem
|
// passwordToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.passwordToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
this.passwordToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||||
this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem";
|
this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem";
|
||||||
this.passwordToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
this.passwordToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||||
this.passwordToolStripMenuItem.Text = "Password";
|
this.passwordToolStripMenuItem.Text = "Password";
|
||||||
this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click);
|
this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// goBackToStandardModeToolStripMenuItem
|
// goBackToStandardModeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.goBackToStandardModeToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
this.goBackToStandardModeToolStripMenuItem.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||||
this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem";
|
this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem";
|
||||||
this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||||
this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode";
|
this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode";
|
||||||
this.goBackToStandardModeToolStripMenuItem.Visible = false;
|
this.goBackToStandardModeToolStripMenuItem.Visible = false;
|
||||||
this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click);
|
this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator
|
// toolStripSeparator
|
||||||
//
|
//
|
||||||
this.toolStripSeparator.Name = "toolStripSeparator";
|
this.toolStripSeparator.Name = "toolStripSeparator";
|
||||||
this.toolStripSeparator.Size = new System.Drawing.Size(231, 6);
|
this.toolStripSeparator.Size = new System.Drawing.Size(231, 6);
|
||||||
this.toolStripSeparator.Visible = false;
|
this.toolStripSeparator.Visible = false;
|
||||||
//
|
//
|
||||||
// resetSpindleHoursToolStripMenuItem
|
// resetSpindleHoursToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem";
|
this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem";
|
||||||
this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Active Time";
|
this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Active Time";
|
||||||
this.resetSpindleHoursToolStripMenuItem.Visible = false;
|
this.resetSpindleHoursToolStripMenuItem.Visible = false;
|
||||||
this.resetSpindleHoursToolStripMenuItem.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem_Click);
|
this.resetSpindleHoursToolStripMenuItem.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// resetCountersToolStripMenuItem
|
// resetCountersToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.resetCountersToolStripMenuItem.Name = "resetCountersToolStripMenuItem";
|
this.resetCountersToolStripMenuItem.Name = "resetCountersToolStripMenuItem";
|
||||||
this.resetCountersToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
this.resetCountersToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetCountersToolStripMenuItem.Text = "Reset CMS-Active Counters";
|
this.resetCountersToolStripMenuItem.Text = "Reset CMS-Active Counters";
|
||||||
this.resetCountersToolStripMenuItem.Visible = false;
|
this.resetCountersToolStripMenuItem.Visible = false;
|
||||||
this.resetCountersToolStripMenuItem.Click += new System.EventHandler(this.resetCountersToolStripMenuItem_Click);
|
this.resetCountersToolStripMenuItem.Click += new System.EventHandler(this.resetCountersToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// resetMachineWorkingHoursToolStripMenuItem
|
// resetMachineWorkingHoursToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem.Name = "resetMachineWorkingHoursToolStripMenuItem";
|
this.resetMachineWorkingHoursToolStripMenuItem.Name = "resetMachineWorkingHoursToolStripMenuItem";
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
this.resetMachineWorkingHoursToolStripMenuItem.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem.Text = "Reset Machine Working Hours";
|
this.resetMachineWorkingHoursToolStripMenuItem.Text = "Reset Machine Working Hours";
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem.Visible = false;
|
this.resetMachineWorkingHoursToolStripMenuItem.Visible = false;
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem_Click);
|
this.resetMachineWorkingHoursToolStripMenuItem.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
this.toolStripSeparator3.Size = new System.Drawing.Size(171, 6);
|
this.toolStripSeparator3.Size = new System.Drawing.Size(171, 6);
|
||||||
//
|
//
|
||||||
// StopServerItem
|
// StopServerItem
|
||||||
//
|
//
|
||||||
this.StopServerItem.Name = "StopServerItem";
|
this.StopServerItem.Name = "StopServerItem";
|
||||||
this.StopServerItem.Size = new System.Drawing.Size(174, 22);
|
this.StopServerItem.Size = new System.Drawing.Size(174, 22);
|
||||||
this.StopServerItem.Text = "Close Active Server";
|
this.StopServerItem.Text = "Close Active Server";
|
||||||
this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click);
|
this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click);
|
||||||
//
|
//
|
||||||
// TXTstatus
|
// TXTstatus
|
||||||
//
|
//
|
||||||
this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2);
|
this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2);
|
||||||
this.TXTstatus.Enabled = false;
|
this.TXTstatus.Enabled = false;
|
||||||
this.TXTstatus.Location = new System.Drawing.Point(3, 435);
|
this.TXTstatus.Location = new System.Drawing.Point(3, 620);
|
||||||
this.TXTstatus.Name = "TXTstatus";
|
this.TXTstatus.Name = "TXTstatus";
|
||||||
this.TXTstatus.ReadOnly = true;
|
this.TXTstatus.ReadOnly = true;
|
||||||
this.TXTstatus.Size = new System.Drawing.Size(438, 20);
|
this.TXTstatus.Size = new System.Drawing.Size(438, 20);
|
||||||
this.TXTstatus.TabIndex = 8;
|
this.TXTstatus.TabIndex = 8;
|
||||||
this.TXTstatus.Text = "...";
|
this.TXTstatus.Text = "...";
|
||||||
//
|
//
|
||||||
// tableLayoutPanel1
|
// tableLayoutPanel1
|
||||||
//
|
//
|
||||||
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.tableLayoutPanel1.ColumnCount = 2;
|
this.tableLayoutPanel1.ColumnCount = 2;
|
||||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2);
|
this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2);
|
this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3);
|
this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
|
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0);
|
this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0);
|
||||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 27);
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 27);
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
this.tableLayoutPanel1.RowCount = 3;
|
this.tableLayoutPanel1.RowCount = 3;
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(444, 457);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(444, 642);
|
||||||
this.tableLayoutPanel1.TabIndex = 58;
|
this.tableLayoutPanel1.TabIndex = 58;
|
||||||
//
|
//
|
||||||
// stopServerButton
|
// stopServerButton
|
||||||
//
|
//
|
||||||
this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
this.stopServerButton.Location = new System.Drawing.Point(225, 381);
|
this.stopServerButton.Location = new System.Drawing.Point(225, 566);
|
||||||
this.stopServerButton.Name = "stopServerButton";
|
this.stopServerButton.Name = "stopServerButton";
|
||||||
this.stopServerButton.Size = new System.Drawing.Size(216, 48);
|
this.stopServerButton.Size = new System.Drawing.Size(216, 48);
|
||||||
this.stopServerButton.TabIndex = 3;
|
this.stopServerButton.TabIndex = 3;
|
||||||
this.stopServerButton.TabStop = false;
|
this.stopServerButton.TabStop = false;
|
||||||
this.stopServerButton.Text = "Close Active";
|
this.stopServerButton.Text = "Close Active";
|
||||||
this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
|
this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
|
||||||
//
|
//
|
||||||
// openUiButton
|
// openUiButton
|
||||||
//
|
//
|
||||||
this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
this.openUiButton.Location = new System.Drawing.Point(3, 381);
|
this.openUiButton.Location = new System.Drawing.Point(3, 566);
|
||||||
this.openUiButton.Name = "openUiButton";
|
this.openUiButton.Name = "openUiButton";
|
||||||
this.openUiButton.Size = new System.Drawing.Size(216, 48);
|
this.openUiButton.Size = new System.Drawing.Size(216, 48);
|
||||||
this.openUiButton.TabIndex = 58;
|
this.openUiButton.TabIndex = 58;
|
||||||
this.openUiButton.TabStop = false;
|
this.openUiButton.TabStop = false;
|
||||||
this.openUiButton.Text = "Open Active Client";
|
this.openUiButton.Text = "Open Active Client";
|
||||||
this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click);
|
this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click);
|
||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
||||||
this.panel1.Controls.Add(this.label3);
|
this.panel1.Controls.Add(this.label3);
|
||||||
this.panel1.Controls.Add(this.TXTVersion);
|
this.panel1.Controls.Add(this.TXTVersion);
|
||||||
this.panel1.Controls.Add(this.label1);
|
this.panel1.Controls.Add(this.label1);
|
||||||
this.panel1.Controls.Add(this.TXTType);
|
this.panel1.Controls.Add(this.TXTType);
|
||||||
this.panel1.Controls.Add(this.CHNcConnected);
|
this.panel1.Controls.Add(this.CHNcConnected);
|
||||||
this.panel1.Controls.Add(this.label2);
|
this.panel1.Controls.Add(this.label2);
|
||||||
this.panel1.Controls.Add(this.TXTMachId);
|
this.panel1.Controls.Add(this.TXTMachId);
|
||||||
this.panel1.Location = new System.Drawing.Point(3, 292);
|
this.panel1.Location = new System.Drawing.Point(3, 477);
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
this.panel1.Size = new System.Drawing.Size(438, 83);
|
this.panel1.Size = new System.Drawing.Size(438, 83);
|
||||||
this.panel1.TabIndex = 9;
|
this.panel1.TabIndex = 9;
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
this.label3.AutoSize = true;
|
this.label3.AutoSize = true;
|
||||||
this.label3.Location = new System.Drawing.Point(3, 49);
|
this.label3.Location = new System.Drawing.Point(3, 49);
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
this.label3.Size = new System.Drawing.Size(78, 13);
|
this.label3.Size = new System.Drawing.Size(78, 13);
|
||||||
this.label3.TabIndex = 59;
|
this.label3.TabIndex = 59;
|
||||||
this.label3.Text = "Active Version:";
|
this.label3.Text = "Active Version:";
|
||||||
//
|
//
|
||||||
// TXTVersion
|
// TXTVersion
|
||||||
//
|
//
|
||||||
this.TXTVersion.AutoSize = true;
|
this.TXTVersion.AutoSize = true;
|
||||||
this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.TXTVersion.Location = new System.Drawing.Point(87, 49);
|
this.TXTVersion.Location = new System.Drawing.Point(87, 49);
|
||||||
this.TXTVersion.Name = "TXTVersion";
|
this.TXTVersion.Name = "TXTVersion";
|
||||||
this.TXTVersion.Size = new System.Drawing.Size(19, 13);
|
this.TXTVersion.Size = new System.Drawing.Size(19, 13);
|
||||||
this.TXTVersion.TabIndex = 58;
|
this.TXTVersion.TabIndex = 58;
|
||||||
this.TXTVersion.Text = "---";
|
this.TXTVersion.Text = "---";
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.label1.AutoSize = true;
|
||||||
this.label1.Location = new System.Drawing.Point(3, 24);
|
this.label1.Location = new System.Drawing.Point(3, 24);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
this.label1.Size = new System.Drawing.Size(44, 13);
|
this.label1.Size = new System.Drawing.Size(44, 13);
|
||||||
this.label1.TabIndex = 54;
|
this.label1.TabIndex = 54;
|
||||||
this.label1.Text = "Vendor:";
|
this.label1.Text = "Vendor:";
|
||||||
//
|
//
|
||||||
// TXTType
|
// TXTType
|
||||||
//
|
//
|
||||||
this.TXTType.AutoSize = true;
|
this.TXTType.AutoSize = true;
|
||||||
this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.TXTType.Location = new System.Drawing.Point(48, 24);
|
this.TXTType.Location = new System.Drawing.Point(48, 24);
|
||||||
this.TXTType.Name = "TXTType";
|
this.TXTType.Name = "TXTType";
|
||||||
this.TXTType.Size = new System.Drawing.Size(19, 13);
|
this.TXTType.Size = new System.Drawing.Size(19, 13);
|
||||||
this.TXTType.TabIndex = 53;
|
this.TXTType.TabIndex = 53;
|
||||||
this.TXTType.Text = "---";
|
this.TXTType.Text = "---";
|
||||||
//
|
//
|
||||||
// CHNcConnected
|
// CHNcConnected
|
||||||
//
|
//
|
||||||
this.CHNcConnected.AutoCheck = false;
|
this.CHNcConnected.AutoCheck = false;
|
||||||
this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
|
this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.CHNcConnected.Location = new System.Drawing.Point(340, 24);
|
this.CHNcConnected.Location = new System.Drawing.Point(340, 24);
|
||||||
this.CHNcConnected.Name = "CHNcConnected";
|
this.CHNcConnected.Name = "CHNcConnected";
|
||||||
this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
|
this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
|
||||||
this.CHNcConnected.TabIndex = 52;
|
this.CHNcConnected.TabIndex = 52;
|
||||||
this.CHNcConnected.Text = "Connected";
|
this.CHNcConnected.Text = "Connected";
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
this.label2.AutoSize = true;
|
||||||
this.label2.Location = new System.Drawing.Point(142, 24);
|
this.label2.Location = new System.Drawing.Point(142, 24);
|
||||||
this.label2.Name = "label2";
|
this.label2.Name = "label2";
|
||||||
this.label2.Size = new System.Drawing.Size(63, 13);
|
this.label2.Size = new System.Drawing.Size(63, 13);
|
||||||
this.label2.TabIndex = 57;
|
this.label2.TabIndex = 57;
|
||||||
this.label2.Text = "Machine Id:";
|
this.label2.Text = "Machine Id:";
|
||||||
//
|
//
|
||||||
// TXTMachId
|
// TXTMachId
|
||||||
//
|
//
|
||||||
this.TXTMachId.AutoSize = true;
|
this.TXTMachId.AutoSize = true;
|
||||||
this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.TXTMachId.Location = new System.Drawing.Point(240, 24);
|
this.TXTMachId.Location = new System.Drawing.Point(240, 24);
|
||||||
this.TXTMachId.Name = "TXTMachId";
|
this.TXTMachId.Name = "TXTMachId";
|
||||||
this.TXTMachId.Size = new System.Drawing.Size(19, 13);
|
this.TXTMachId.Size = new System.Drawing.Size(19, 13);
|
||||||
this.TXTMachId.TabIndex = 56;
|
this.TXTMachId.TabIndex = 56;
|
||||||
this.TXTMachId.Text = "---";
|
this.TXTMachId.Text = "---";
|
||||||
//
|
//
|
||||||
// LISTThreadStatus
|
// LISTThreadStatus
|
||||||
//
|
//
|
||||||
this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||||
this.columnHeader1,
|
this.columnHeader1,
|
||||||
this.columnHeader2});
|
this.columnHeader2});
|
||||||
this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2);
|
this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2);
|
||||||
this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.LISTThreadStatus.HideSelection = false;
|
this.LISTThreadStatus.HideSelection = false;
|
||||||
this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3);
|
this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3);
|
||||||
this.LISTThreadStatus.Name = "LISTThreadStatus";
|
this.LISTThreadStatus.Name = "LISTThreadStatus";
|
||||||
this.LISTThreadStatus.Size = new System.Drawing.Size(438, 283);
|
this.LISTThreadStatus.Size = new System.Drawing.Size(438, 468);
|
||||||
this.LISTThreadStatus.TabIndex = 59;
|
this.LISTThreadStatus.TabIndex = 59;
|
||||||
this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
|
this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
|
||||||
this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
|
this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
|
||||||
//
|
//
|
||||||
// columnHeader1
|
// columnHeader1
|
||||||
//
|
//
|
||||||
this.columnHeader1.Text = "Thread Name";
|
this.columnHeader1.Text = "Thread Name";
|
||||||
this.columnHeader1.Width = 328;
|
this.columnHeader1.Width = 200;
|
||||||
//
|
//
|
||||||
// columnHeader2
|
// columnHeader2
|
||||||
//
|
//
|
||||||
this.columnHeader2.Text = "Time";
|
this.columnHeader2.Text = "Time";
|
||||||
this.columnHeader2.Width = 78;
|
this.columnHeader2.Width = 230;
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuToolStripMenuItem});
|
this.menuToolStripMenuItem});
|
||||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.menuStrip1.Name = "menuStrip1";
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
this.menuStrip1.Size = new System.Drawing.Size(468, 24);
|
this.menuStrip1.Size = new System.Drawing.Size(468, 24);
|
||||||
this.menuStrip1.TabIndex = 59;
|
this.menuStrip1.TabIndex = 59;
|
||||||
this.menuStrip1.Text = "menuStrip1";
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
//
|
//
|
||||||
// menuToolStripMenuItem
|
// menuToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.menuToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.closeCMSServerToolStripMenuItem,
|
this.closeCMSServerToolStripMenuItem,
|
||||||
this.toolStripSeparator2,
|
this.toolStripSeparator2,
|
||||||
this.serviceToolStripMenuItem});
|
this.serviceToolStripMenuItem});
|
||||||
this.menuToolStripMenuItem.Name = "menuToolStripMenuItem";
|
this.menuToolStripMenuItem.Name = "menuToolStripMenuItem";
|
||||||
this.menuToolStripMenuItem.Size = new System.Drawing.Size(50, 20);
|
this.menuToolStripMenuItem.Size = new System.Drawing.Size(50, 20);
|
||||||
this.menuToolStripMenuItem.Text = "Menu";
|
this.menuToolStripMenuItem.Text = "Menu";
|
||||||
//
|
//
|
||||||
// closeCMSServerToolStripMenuItem
|
// closeCMSServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.closeCMSServerToolStripMenuItem.Name = "closeCMSServerToolStripMenuItem";
|
this.closeCMSServerToolStripMenuItem.Name = "closeCMSServerToolStripMenuItem";
|
||||||
this.closeCMSServerToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
this.closeCMSServerToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||||
this.closeCMSServerToolStripMenuItem.Text = "Close Active Server";
|
this.closeCMSServerToolStripMenuItem.Text = "Close Active Server";
|
||||||
this.closeCMSServerToolStripMenuItem.Click += new System.EventHandler(this.closeCMSServerToolStripMenuItem_Click);
|
this.closeCMSServerToolStripMenuItem.Click += new System.EventHandler(this.closeCMSServerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
this.toolStripSeparator2.Size = new System.Drawing.Size(171, 6);
|
this.toolStripSeparator2.Size = new System.Drawing.Size(171, 6);
|
||||||
//
|
//
|
||||||
// serviceToolStripMenuItem
|
// serviceToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.serviceToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.serviceToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.passwordToolStripMenuItem1,
|
this.passwordToolStripMenuItem1,
|
||||||
this.goBackToStandardModeToolStripMenuItem1,
|
this.goBackToStandardModeToolStripMenuItem1,
|
||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.resetSpindleHoursToolStripMenuItem1,
|
this.resetSpindleHoursToolStripMenuItem1,
|
||||||
this.resetCountersToolStripMenuItem1,
|
this.resetCountersToolStripMenuItem1,
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1});
|
this.resetMachineWorkingHoursToolStripMenuItem1});
|
||||||
this.serviceToolStripMenuItem.Name = "serviceToolStripMenuItem";
|
this.serviceToolStripMenuItem.Name = "serviceToolStripMenuItem";
|
||||||
this.serviceToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
this.serviceToolStripMenuItem.Size = new System.Drawing.Size(174, 22);
|
||||||
this.serviceToolStripMenuItem.Text = "Service";
|
this.serviceToolStripMenuItem.Text = "Service";
|
||||||
//
|
//
|
||||||
// passwordToolStripMenuItem1
|
// passwordToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.passwordToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
this.passwordToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Lock_icon;
|
||||||
this.passwordToolStripMenuItem1.Name = "passwordToolStripMenuItem1";
|
this.passwordToolStripMenuItem1.Name = "passwordToolStripMenuItem1";
|
||||||
this.passwordToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
this.passwordToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||||
this.passwordToolStripMenuItem1.Text = "Password";
|
this.passwordToolStripMenuItem1.Text = "Password";
|
||||||
this.passwordToolStripMenuItem1.Click += new System.EventHandler(this.passwordToolStripMenuItem1_Click);
|
this.passwordToolStripMenuItem1.Click += new System.EventHandler(this.passwordToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// goBackToStandardModeToolStripMenuItem1
|
// goBackToStandardModeToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
this.goBackToStandardModeToolStripMenuItem1.Image = global::Thermo.Active.UI.Properties.Resources.Apps_Unlock_icon;
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Name = "goBackToStandardModeToolStripMenuItem1";
|
this.goBackToStandardModeToolStripMenuItem1.Name = "goBackToStandardModeToolStripMenuItem1";
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
this.goBackToStandardModeToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Text = "Go back to standard mode";
|
this.goBackToStandardModeToolStripMenuItem1.Text = "Go back to standard mode";
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Visible = false;
|
this.goBackToStandardModeToolStripMenuItem1.Visible = false;
|
||||||
this.goBackToStandardModeToolStripMenuItem1.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem1_Click);
|
this.goBackToStandardModeToolStripMenuItem1.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(231, 6);
|
this.toolStripSeparator1.Size = new System.Drawing.Size(231, 6);
|
||||||
this.toolStripSeparator1.Visible = false;
|
this.toolStripSeparator1.Visible = false;
|
||||||
//
|
//
|
||||||
// resetSpindleHoursToolStripMenuItem1
|
// resetSpindleHoursToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.resetSpindleHoursToolStripMenuItem1.Name = "resetSpindleHoursToolStripMenuItem1";
|
this.resetSpindleHoursToolStripMenuItem1.Name = "resetSpindleHoursToolStripMenuItem1";
|
||||||
this.resetSpindleHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
this.resetSpindleHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetSpindleHoursToolStripMenuItem1.Text = "Reset Spindle Active Time";
|
this.resetSpindleHoursToolStripMenuItem1.Text = "Reset Spindle Active Time";
|
||||||
this.resetSpindleHoursToolStripMenuItem1.Visible = false;
|
this.resetSpindleHoursToolStripMenuItem1.Visible = false;
|
||||||
this.resetSpindleHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem1_Click);
|
this.resetSpindleHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetSpindleHoursToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// resetCountersToolStripMenuItem1
|
// resetCountersToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.resetCountersToolStripMenuItem1.Name = "resetCountersToolStripMenuItem1";
|
this.resetCountersToolStripMenuItem1.Name = "resetCountersToolStripMenuItem1";
|
||||||
this.resetCountersToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
this.resetCountersToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetCountersToolStripMenuItem1.Text = "Reset CMS-Active Counters";
|
this.resetCountersToolStripMenuItem1.Text = "Reset CMS-Active Counters";
|
||||||
this.resetCountersToolStripMenuItem1.Visible = false;
|
this.resetCountersToolStripMenuItem1.Visible = false;
|
||||||
this.resetCountersToolStripMenuItem1.Click += new System.EventHandler(this.resetCountersToolStripMenuItem1_Click);
|
this.resetCountersToolStripMenuItem1.Click += new System.EventHandler(this.resetCountersToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// resetMachineWorkingHoursToolStripMenuItem1
|
// resetMachineWorkingHoursToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1.Name = "resetMachineWorkingHoursToolStripMenuItem1";
|
this.resetMachineWorkingHoursToolStripMenuItem1.Name = "resetMachineWorkingHoursToolStripMenuItem1";
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
this.resetMachineWorkingHoursToolStripMenuItem1.Size = new System.Drawing.Size(234, 22);
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1.Text = "Reset Machine Working Hours";
|
this.resetMachineWorkingHoursToolStripMenuItem1.Text = "Reset Machine Working Hours";
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1.Visible = false;
|
this.resetMachineWorkingHoursToolStripMenuItem1.Visible = false;
|
||||||
this.resetMachineWorkingHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem1_Click);
|
this.resetMachineWorkingHoursToolStripMenuItem1.Click += new System.EventHandler(this.resetMachineWorkingHoursToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// ServerControlWindow
|
// ServerControlWindow
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(468, 496);
|
this.ClientSize = new System.Drawing.Size(468, 681);
|
||||||
this.Controls.Add(this.menuStrip1);
|
this.Controls.Add(this.menuStrip1);
|
||||||
this.Controls.Add(this.tableLayoutPanel1);
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.MainMenuStrip = this.menuStrip1;
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
this.Margin = new System.Windows.Forms.Padding(2);
|
this.Margin = new System.Windows.Forms.Padding(2);
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "ServerControlWindow";
|
this.Name = "ServerControlWindow";
|
||||||
this.ShowInTaskbar = false;
|
this.ShowInTaskbar = false;
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing);
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing);
|
||||||
this.Load += new System.EventHandler(this.ServerControlWindow_Load);
|
this.Load += new System.EventHandler(this.ServerControlWindow_Load);
|
||||||
this.NotifyIconMenu.ResumeLayout(false);
|
this.NotifyIconMenu.ResumeLayout(false);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
this.tableLayoutPanel1.PerformLayout();
|
||||||
this.panel1.ResumeLayout(false);
|
this.panel1.ResumeLayout(false);
|
||||||
this.panel1.PerformLayout();
|
this.panel1.PerformLayout();
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -267,16 +267,18 @@ namespace Thermo.Active.UI
|
|||||||
if (!isUpdatingThreads)
|
if (!isUpdatingThreads)
|
||||||
{
|
{
|
||||||
isUpdatingThreads = true;
|
isUpdatingThreads = true;
|
||||||
Dictionary<String, String> Threads = new Dictionary<String, String>((Dictionary<String, String>)a);
|
Dictionary<String, String> myThreads = new Dictionary<String, String>((Dictionary<String, String>)a);
|
||||||
//Begin the update
|
//Begin the update
|
||||||
LISTThreadStatus.BeginUpdate();
|
LISTThreadStatus.BeginUpdate();
|
||||||
//clear the List
|
//clear the List
|
||||||
LISTThreadStatus.Items.Clear();
|
LISTThreadStatus.Items.Clear();
|
||||||
//Add all items
|
//Add all items
|
||||||
foreach (KeyValuePair<string, String> Thr in Threads)
|
foreach (KeyValuePair<string, String> Thr in myThreads)
|
||||||
|
{
|
||||||
LISTThreadStatus.Items.Add(new ListViewItem(new String[]{Thr.Key,Thr.Value }));
|
LISTThreadStatus.Items.Add(new ListViewItem(new String[]{Thr.Key,Thr.Value }));
|
||||||
//End the update
|
}
|
||||||
LISTThreadStatus.EndUpdate();
|
//End the update
|
||||||
|
LISTThreadStatus.EndUpdate();
|
||||||
isUpdatingThreads = false;
|
isUpdatingThreads = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
@@ -38,6 +38,10 @@
|
|||||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -1,340 +1,435 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Automatically generated by nicola.carminati: 2020-11-03 -->
|
<!-- Automatically generated by nicola.carminati: 2021-03-10 -->
|
||||||
<root>
|
<root>
|
||||||
<language_it>Italiano</language_it>
|
<language_it>Italiano</language_it>
|
||||||
<header_maintainance_request>Effettuare manutenzione</header_maintainance_request>
|
<header_maintainance_request>Effettuare manutenzione</header_maintainance_request>
|
||||||
<support_summary>Scadenza:</support_summary>
|
<support_summary>Scadenza:</support_summary>
|
||||||
<header_maintainance_request_explanation>C'è una procedura da effettuare</header_maintainance_request_explanation>
|
<header_maintainance_request_explanation>C'è una procedura da effettuare</header_maintainance_request_explanation>
|
||||||
<alarm_ribbon_title_more_items>Ci sono %d allarmi attivi</alarm_ribbon_title_more_items>
|
<alarm_ribbon_title_more_items>Ci sono %d allarmi attivi</alarm_ribbon_title_more_items>
|
||||||
<warning_ribbon_title_more_items>Ci sono %d warning attivi</warning_ribbon_title_more_items>
|
<warning_ribbon_title_more_items>Ci sono %d warning attivi</warning_ribbon_title_more_items>
|
||||||
<userinfo_lbl_title>Impostazioni Utente</userinfo_lbl_title>
|
<userinfo_lbl_title>Impostazioni Utente</userinfo_lbl_title>
|
||||||
<userinfo_btn_logout>Log out</userinfo_btn_logout>
|
<userinfo_btn_logout>Log out</userinfo_btn_logout>
|
||||||
<userinfo_lbl_language>Lingua</userinfo_lbl_language>
|
<userinfo_lbl_language>Lingua</userinfo_lbl_language>
|
||||||
<userinfo_btn_cancel>Annulla</userinfo_btn_cancel>
|
<userinfo_btn_cancel>Annulla</userinfo_btn_cancel>
|
||||||
<userinfo_btn_save>Salva</userinfo_btn_save>
|
<userinfo_btn_save>Salva</userinfo_btn_save>
|
||||||
<login_lbl_title>Login utente</login_lbl_title>
|
<login_lbl_title>Login utente</login_lbl_title>
|
||||||
<login_lbl_username>Nome utente</login_lbl_username>
|
<login_lbl_username>Nome utente</login_lbl_username>
|
||||||
<login_lbl_password>Password</login_lbl_password>
|
<login_lbl_password>Password</login_lbl_password>
|
||||||
<login_btn_login>Log in</login_btn_login>
|
<login_btn_login>Log in</login_btn_login>
|
||||||
<login_lbl_invalidusername>Nome utente errato</login_lbl_invalidusername>
|
<login_lbl_invalidusername>Nome utente errato</login_lbl_invalidusername>
|
||||||
<login_lbl_invalidpassword>Password errata</login_lbl_invalidpassword>
|
<login_lbl_invalidpassword>Password errata</login_lbl_invalidpassword>
|
||||||
<alarms_btn_history_show>Vedi storico allarmi</alarms_btn_history_show>
|
<alarms_btn_history_show>Vedi storico allarmi</alarms_btn_history_show>
|
||||||
<alarms_refresh_all>Refresh tutti</alarms_refresh_all>
|
<alarms_refresh_all>Refresh tutti</alarms_refresh_all>
|
||||||
<alarm_item_btn_show>Vedi</alarm_item_btn_show>
|
<alarm_item_btn_show>Vedi</alarm_item_btn_show>
|
||||||
<alarm_ribbon_title_1_item>Allarme</alarm_ribbon_title_1_item>
|
<alarm_ribbon_title_1_item>Allarme</alarm_ribbon_title_1_item>
|
||||||
<warning_ribbon_title_1_item>Warning</warning_ribbon_title_1_item>
|
<warning_ribbon_title_1_item>Warning</warning_ribbon_title_1_item>
|
||||||
<alarm_detail_lbl_status>Stato</alarm_detail_lbl_status>
|
<alarm_detail_lbl_status>Stato</alarm_detail_lbl_status>
|
||||||
<alarm_manual_lbl_title>Procedura ripristino</alarm_manual_lbl_title>
|
<alarm_manual_lbl_title>Procedura ripristino</alarm_manual_lbl_title>
|
||||||
<alarm_manual_lbl_description>Risoluzione dell'allarme</alarm_manual_lbl_description>
|
<alarm_manual_lbl_description>Risoluzione dell'allarme</alarm_manual_lbl_description>
|
||||||
<alarm_manual_btn_start>Avvia</alarm_manual_btn_start>
|
<alarm_manual_btn_start>Avvia</alarm_manual_btn_start>
|
||||||
<alarm_detail_btn_show_manual>Vedi Manuale</alarm_detail_btn_show_manual>
|
<alarm_detail_btn_show_manual>Vedi Manuale</alarm_detail_btn_show_manual>
|
||||||
<alarm_detail_btn_ask_help>Chiedi Aiuto</alarm_detail_btn_ask_help>
|
<alarm_detail_btn_ask_help>Chiedi Aiuto</alarm_detail_btn_ask_help>
|
||||||
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
|
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
|
||||||
<alarm_btn_back_to_list>Torna alla lista</alarm_btn_back_to_list>
|
<alarm_btn_back_to_list>Torna alla lista</alarm_btn_back_to_list>
|
||||||
<alarm_status_active>Attivo</alarm_status_active>
|
<alarm_status_active>Attivo</alarm_status_active>
|
||||||
<alarm_status_deleted>Eliminato</alarm_status_deleted>
|
<alarm_status_deleted>Eliminato</alarm_status_deleted>
|
||||||
<alarm_btn_add_attach>Aggiungi un allegato</alarm_btn_add_attach>
|
<alarm_btn_add_attach>Aggiungi un allegato</alarm_btn_add_attach>
|
||||||
<machineinfo_lbl_title>Informazioni Macchina</machineinfo_lbl_title>
|
<machineinfo_lbl_title>Informazioni Macchina</machineinfo_lbl_title>
|
||||||
<machine_serial_number>Matricola Nr:</machine_serial_number>
|
<machine_serial_number>Matricola Nr:</machine_serial_number>
|
||||||
<machine_installation_date>Data di installazione:</machine_installation_date>
|
<machine_installation_date>Data di installazione:</machine_installation_date>
|
||||||
<machineinfo_model_nc>Modello Cn:</machineinfo_model_nc>
|
<machineinfo_model_nc>Modello Cn:</machineinfo_model_nc>
|
||||||
<machineinfo_serial_nc>Num. Seriale Cn:</machineinfo_serial_nc>
|
<machineinfo_serial_nc>Num. Seriale Cn:</machineinfo_serial_nc>
|
||||||
<machineinfo_firmware_version>Versione firmware Cn:</machineinfo_firmware_version>
|
<machineinfo_firmware_version>Versione firmware Cn:</machineinfo_firmware_version>
|
||||||
<machineinfo_plc_version>Versione Plc:</machineinfo_plc_version>
|
<machineinfo_plc_version>Versione Plc:</machineinfo_plc_version>
|
||||||
<machineinfo_current_language>Lingua selezionata Cn:</machineinfo_current_language>
|
<machineinfo_current_language>Lingua selezionata Cn:</machineinfo_current_language>
|
||||||
<machineinfo_processes>Numero di processi Cn:</machineinfo_processes>
|
<machineinfo_processes>Numero di processi Cn:</machineinfo_processes>
|
||||||
<machineinfo_datetime>Time-Stamp Cn:</machineinfo_datetime>
|
<machineinfo_datetime>Time-Stamp Cn:</machineinfo_datetime>
|
||||||
<machineinfo_umeas>Unità di misura Cn:</machineinfo_umeas>
|
<machineinfo_umeas>Unità di misura Cn:</machineinfo_umeas>
|
||||||
<machineinfo_server_cms_version>Versione Server CMS-Active:</machineinfo_server_cms_version>
|
<machineinfo_server_cms_version>Versione Server CMS-Active:</machineinfo_server_cms_version>
|
||||||
<machineinfo_core_cms_version>Versione Core CMS-Active:</machineinfo_core_cms_version>
|
<machineinfo_core_cms_version>Versione Core CMS-Active:</machineinfo_core_cms_version>
|
||||||
<machineinfo_cms_client_version>Versione Client CMS-Active:</machineinfo_cms_client_version>
|
<machineinfo_cms_client_version>Versione Client CMS-Active:</machineinfo_cms_client_version>
|
||||||
<machineinfo_cms_dateformat>Formato delle date CMS-Active:</machineinfo_cms_dateformat>
|
<machineinfo_cms_dateformat>Formato delle date CMS-Active:</machineinfo_cms_dateformat>
|
||||||
<contactinfo_lbl_title>Informazioni di contatto</contactinfo_lbl_title>
|
<contactinfo_lbl_title>Informazioni di contatto</contactinfo_lbl_title>
|
||||||
<contactinfo_lbl_company>Nome contatto:</contactinfo_lbl_company>
|
<contactinfo_lbl_company>Nome contatto:</contactinfo_lbl_company>
|
||||||
<contactinfo_lbl_email>Email:</contactinfo_lbl_email>
|
<contactinfo_lbl_email>Email:</contactinfo_lbl_email>
|
||||||
<contactinfo_lbl_phoneNumber>Telefono:</contactinfo_lbl_phoneNumber>
|
<contactinfo_lbl_phoneNumber>Telefono:</contactinfo_lbl_phoneNumber>
|
||||||
<utilities_header_label>Utility & Software esterni</utilities_header_label>
|
<utilities_header_label>Utility & Software esterni</utilities_header_label>
|
||||||
<modal_nochangepage_title>Operazione non posssibile</modal_nochangepage_title>
|
<modal_nochangepage_title>Operazione non posssibile</modal_nochangepage_title>
|
||||||
<modal_confirm_close_application>Sei sicuro di voler chiudere Active?</modal_confirm_close_application>
|
<modal_confirm_close_application>Sei sicuro di voler chiudere Active?</modal_confirm_close_application>
|
||||||
<modal_nocloseapp_title>Operazione non possibile</modal_nocloseapp_title>
|
<modal_nocloseapp_title>Operazione non possibile</modal_nocloseapp_title>
|
||||||
<modal_confirm_title>Richiesta di conferma</modal_confirm_title>
|
<modal_confirm_title>Richiesta di conferma</modal_confirm_title>
|
||||||
<modal_ok_button>Ok</modal_ok_button>
|
<modal_ok_button>Ok</modal_ok_button>
|
||||||
<modal_cancel_button>Annulla</modal_cancel_button>
|
<modal_cancel_button>Annulla</modal_cancel_button>
|
||||||
<maintenance_header_title>Gestore Manutenzioni</maintenance_header_title>
|
<maintenance_header_title>Gestore Manutenzioni</maintenance_header_title>
|
||||||
<maintenance_card_btn_save_note>Salva</maintenance_card_btn_save_note>
|
<maintenance_card_btn_save_note>Salva</maintenance_card_btn_save_note>
|
||||||
<maintenance_card_btn_view_all_attach>Mostra tutti i file</maintenance_card_btn_view_all_attach>
|
<maintenance_card_btn_view_all_attach>Mostra tutti i file</maintenance_card_btn_view_all_attach>
|
||||||
<maintenance_card_btn_hide_all_attach>Mostra solo gli ultimi file</maintenance_card_btn_hide_all_attach>
|
<maintenance_card_btn_hide_all_attach>Mostra solo gli ultimi file</maintenance_card_btn_hide_all_attach>
|
||||||
<maintenance_card_btn_add_attach>Aggiungi un file</maintenance_card_btn_add_attach>
|
<maintenance_card_btn_add_attach>Aggiungi un file</maintenance_card_btn_add_attach>
|
||||||
<maintenance_card_btn_view_all_note>Mostra tutte le note</maintenance_card_btn_view_all_note>
|
<maintenance_card_btn_view_all_note>Mostra tutte le note</maintenance_card_btn_view_all_note>
|
||||||
<maintenance_card_btn_hide_all_note>Mostra solo le ultime le note</maintenance_card_btn_hide_all_note>
|
<maintenance_card_btn_hide_all_note>Mostra solo le ultime le note</maintenance_card_btn_hide_all_note>
|
||||||
<maintenance_card_label_btn_footer>Segna come eseguita</maintenance_card_label_btn_footer>
|
<maintenance_card_label_btn_footer>Segna come eseguita</maintenance_card_label_btn_footer>
|
||||||
<maintenance_header_label_procedure>Ricerca la manutenzione per nome</maintenance_header_label_procedure>
|
<maintenance_header_label_procedure>Ricerca la manutenzione per nome</maintenance_header_label_procedure>
|
||||||
<maintenance_header_label_procedure_placeholder>Nome della manutenzione...</maintenance_header_label_procedure_placeholder>
|
<maintenance_header_label_procedure_placeholder>Nome della manutenzione...</maintenance_header_label_procedure_placeholder>
|
||||||
<maintenance_header_label_state>Stato</maintenance_header_label_state>
|
<maintenance_header_label_state>Stato</maintenance_header_label_state>
|
||||||
<maintenance_label_create_intervention>Crea un intervento di manutenzione</maintenance_label_create_intervention>
|
<maintenance_label_create_intervention>Crea un intervento di manutenzione</maintenance_label_create_intervention>
|
||||||
<maintenance_label_disable-maintenance>Seleziona una manutenzione...</maintenance_label_disable-maintenance>
|
<maintenance_label_disable-maintenance>Seleziona una manutenzione...</maintenance_label_disable-maintenance>
|
||||||
<maintenance_state_expired>Scaduta</maintenance_state_expired>
|
<maintenance_state_expired>Scaduta</maintenance_state_expired>
|
||||||
<maintenance_state_closed>Chiusa</maintenance_state_closed>
|
<maintenance_state_closed>Chiusa</maintenance_state_closed>
|
||||||
<maintenance_state_running>Non Scaduta</maintenance_state_running>
|
<maintenance_state_running>Non Scaduta</maintenance_state_running>
|
||||||
<maintenance_state_ending>In Scadenza</maintenance_state_ending>
|
<maintenance_state_ending>In Scadenza</maintenance_state_ending>
|
||||||
<maintenance_table_header_counter>Contatore</maintenance_table_header_counter>
|
<maintenance_table_header_counter>Contatore</maintenance_table_header_counter>
|
||||||
<maintenance_table_header_deadline>Scadenza</maintenance_table_header_deadline>
|
<maintenance_table_header_deadline>Scadenza</maintenance_table_header_deadline>
|
||||||
<maintenance_table_header_state>Stato</maintenance_table_header_state>
|
<maintenance_table_header_state>Stato</maintenance_table_header_state>
|
||||||
<maintenance_table_header_title>Titolo</maintenance_table_header_title>
|
<maintenance_table_header_title>Titolo</maintenance_table_header_title>
|
||||||
<maintenance_card_label_date_timestamp>Aggiunta il %s alle %s</maintenance_card_label_date_timestamp>
|
<maintenance_card_label_date_timestamp>Aggiunta il %s alle %s</maintenance_card_label_date_timestamp>
|
||||||
<maintenance_card_btn_cancel_modify_note>Cancella</maintenance_card_btn_cancel_modify_note>
|
<maintenance_card_btn_cancel_modify_note>Cancella</maintenance_card_btn_cancel_modify_note>
|
||||||
<maintenance_card_btn_save_modify_note>Salva</maintenance_card_btn_save_modify_note>
|
<maintenance_card_btn_save_modify_note>Salva</maintenance_card_btn_save_modify_note>
|
||||||
<maintenance_date_neverdone>Nessun intervento di manutenzione effettuato</maintenance_date_neverdone>
|
<maintenance_date_neverdone>Nessun intervento di manutenzione effettuato</maintenance_date_neverdone>
|
||||||
<maintenance_date_justdone>Ultimo intervento effettuato pochi minuti fa, da: %s</maintenance_date_justdone>
|
<maintenance_date_justdone>Ultimo intervento effettuato pochi minuti fa, da: %s</maintenance_date_justdone>
|
||||||
<maintenance_date_hours>Ultimo intervento effettuato %d ore fa, da: %s</maintenance_date_hours>
|
<maintenance_date_hours>Ultimo intervento effettuato %d ore fa, da: %s</maintenance_date_hours>
|
||||||
<maintenance_date_days>Ultimo intervento effettuato %d giorni fa, da: %s</maintenance_date_days>
|
<maintenance_date_days>Ultimo intervento effettuato %d giorni fa, da: %s</maintenance_date_days>
|
||||||
<maintenance_date_fixeddate>Ultimo intervento effettuato in data: %s, da: %s</maintenance_date_fixeddate>
|
<maintenance_date_fixeddate>Ultimo intervento effettuato in data: %s, da: %s</maintenance_date_fixeddate>
|
||||||
<maintenance_card_created_timestamp>Manutenzione creata in data %s alle ore %s</maintenance_card_created_timestamp>
|
<maintenance_card_created_timestamp>Manutenzione creata in data %s alle ore %s</maintenance_card_created_timestamp>
|
||||||
<maintenance_card_attachments>Allegati</maintenance_card_attachments>
|
<maintenance_card_attachments>Allegati</maintenance_card_attachments>
|
||||||
<maintenance_card_notes>Note</maintenance_card_notes>
|
<maintenance_card_notes>Note</maintenance_card_notes>
|
||||||
<create_maintenance_lbl_title_window>Creazione intervento di manutenzione</create_maintenance_lbl_title_window>
|
<create_maintenance_lbl_title_window>Creazione intervento di manutenzione</create_maintenance_lbl_title_window>
|
||||||
<create_maintenance_lbl_title>Titolo</create_maintenance_lbl_title>
|
<create_maintenance_lbl_title>Titolo</create_maintenance_lbl_title>
|
||||||
<create_maintenance_btn_cancel>Annulla</create_maintenance_btn_cancel>
|
<create_maintenance_btn_cancel>Annulla</create_maintenance_btn_cancel>
|
||||||
<create_maintenance_lbl_date>Data</create_maintenance_lbl_date>
|
<create_maintenance_lbl_date>Data</create_maintenance_lbl_date>
|
||||||
<create_maintenance_lbl_description>Descrizione</create_maintenance_lbl_description>
|
<create_maintenance_lbl_description>Descrizione</create_maintenance_lbl_description>
|
||||||
<create_maintenance_lbl_end_time>Ora</create_maintenance_lbl_end_time>
|
<create_maintenance_lbl_end_time>Ora</create_maintenance_lbl_end_time>
|
||||||
<create_maintenance_lbl_typology>Tipo</create_maintenance_lbl_typology>
|
<create_maintenance_lbl_typology>Tipo</create_maintenance_lbl_typology>
|
||||||
<create_maintenance_lbl_repeat>Ripeti ogni</create_maintenance_lbl_repeat>
|
<create_maintenance_lbl_repeat>Ripeti ogni</create_maintenance_lbl_repeat>
|
||||||
<create_maintenance_repeat_day>Giorni</create_maintenance_repeat_day>
|
<create_maintenance_repeat_day>Giorni</create_maintenance_repeat_day>
|
||||||
<create_maintenance_repeat_hour>Ore</create_maintenance_repeat_hour>
|
<create_maintenance_repeat_hour>Ore</create_maintenance_repeat_hour>
|
||||||
<create_maintenance_repeat_minutes>Minuti</create_maintenance_repeat_minutes>
|
<create_maintenance_repeat_minutes>Minuti</create_maintenance_repeat_minutes>
|
||||||
<create_maintenance_repeat_months>Mesi</create_maintenance_repeat_months>
|
<create_maintenance_repeat_months>Mesi</create_maintenance_repeat_months>
|
||||||
<create_maintenance_lbl_fixeddate>Data Fissa</create_maintenance_lbl_fixeddate>
|
<create_maintenance_lbl_fixeddate>Data Fissa</create_maintenance_lbl_fixeddate>
|
||||||
<create_maintenance_lbl_temporal>Temporale</create_maintenance_lbl_temporal>
|
<create_maintenance_lbl_temporal>Temporale</create_maintenance_lbl_temporal>
|
||||||
<create_maintenance_btn_add_confirm>Crea Manutenzione</create_maintenance_btn_add_confirm>
|
<create_maintenance_btn_add_confirm>Crea Manutenzione</create_maintenance_btn_add_confirm>
|
||||||
<create_maintenance_btn_edit_confirm>Modifica Manutenzione</create_maintenance_btn_edit_confirm>
|
<create_maintenance_btn_edit_confirm>Modifica Manutenzione</create_maintenance_btn_edit_confirm>
|
||||||
<modal_load_program_lbl_title_window>Carica-Ricetta</modal_load_program_lbl_title_window>
|
<modal_load_program_lbl_title_window>Carica-Ricetta</modal_load_program_lbl_title_window>
|
||||||
<modal_load_program_search_placeholder>Cerca una ricetta per nome</modal_load_program_search_placeholder>
|
<modal_load_program_search_placeholder>Cerca una ricetta per nome</modal_load_program_search_placeholder>
|
||||||
<modal_load_program_creation_date>Data di creazione:</modal_load_program_creation_date>
|
<modal_load_program_creation_date>Data di creazione:</modal_load_program_creation_date>
|
||||||
<modal_load_program_last_change_date>Data di ult. mod:</modal_load_program_last_change_date>
|
<modal_load_program_last_change_date>Data di ult. mod:</modal_load_program_last_change_date>
|
||||||
<modal_load_program_lbl_img_not_found>Preview non disponibile</modal_load_program_lbl_img_not_found>
|
<modal_load_program_lbl_img_not_found>Preview non disponibile</modal_load_program_lbl_img_not_found>
|
||||||
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
|
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
|
||||||
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
|
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
|
||||||
<alarm_history_header_title>Gestore Storico Allarmi</alarm_history_header_title>
|
<alarm_history_header_title>Gestore Storico Allarmi</alarm_history_header_title>
|
||||||
<alarm_history_body_filter>Filtra allarmi per titolo</alarm_history_body_filter>
|
<alarm_history_body_filter>Filtra allarmi per titolo</alarm_history_body_filter>
|
||||||
<alarm_history_body_filter_placeholder>Titolo...</alarm_history_body_filter_placeholder>
|
<alarm_history_body_filter_placeholder>Titolo...</alarm_history_body_filter_placeholder>
|
||||||
<alarm_history_body_filter_source>Sorgente</alarm_history_body_filter_source>
|
<alarm_history_body_filter_source>Sorgente</alarm_history_body_filter_source>
|
||||||
<alarm_history_body_date_range>Intervallo date</alarm_history_body_date_range>
|
<alarm_history_body_date_range>Intervallo date</alarm_history_body_date_range>
|
||||||
<alarm_history_body_user>Utenti</alarm_history_body_user>
|
<alarm_history_body_user>Utenti</alarm_history_body_user>
|
||||||
<alarms_history_table_source>Sorgente</alarms_history_table_source>
|
<alarms_history_table_source>Sorgente</alarms_history_table_source>
|
||||||
<alarms_history_table_title>Titolo</alarms_history_table_title>
|
<alarms_history_table_title>Titolo</alarms_history_table_title>
|
||||||
<alarms_history_table_date>Data</alarms_history_table_date>
|
<alarms_history_table_date>Data</alarms_history_table_date>
|
||||||
<alarms_history_table_user>Utenti</alarms_history_table_user>
|
<alarms_history_table_user>Utenti</alarms_history_table_user>
|
||||||
<alarm_history_label_select_alarms>Seleziona un allarme...</alarm_history_label_select_alarms>
|
<alarm_history_label_select_alarms>Seleziona un allarme...</alarm_history_label_select_alarms>
|
||||||
<alarm_history_users_not_user>Nessun-Utente</alarm_history_users_not_user>
|
<alarm_history_users_not_user>Nessun-Utente</alarm_history_users_not_user>
|
||||||
<create_user_lbl_title_window>Modifica utente</create_user_lbl_title_window>
|
<create_user_lbl_title_window>Modifica utente</create_user_lbl_title_window>
|
||||||
<create_user_lbl_firstname>Nome</create_user_lbl_firstname>
|
<create_user_lbl_firstname>Nome</create_user_lbl_firstname>
|
||||||
<create_user_lbl_lastname>Cognome</create_user_lbl_lastname>
|
<create_user_lbl_lastname>Cognome</create_user_lbl_lastname>
|
||||||
<create_user_lbl_password>Password</create_user_lbl_password>
|
<create_user_lbl_password>Password</create_user_lbl_password>
|
||||||
<create_user_lbl_username>Username</create_user_lbl_username>
|
<create_user_lbl_username>Username</create_user_lbl_username>
|
||||||
<create_user_btn_add_confirm>Aggiungi</create_user_btn_add_confirm>
|
<create_user_btn_add_confirm>Aggiungi</create_user_btn_add_confirm>
|
||||||
<create_user_btn_edit_confirm>Modifica</create_user_btn_edit_confirm>
|
<create_user_btn_edit_confirm>Modifica</create_user_btn_edit_confirm>
|
||||||
<create_user_btn_cancel>Annulla</create_user_btn_cancel>
|
<create_user_btn_cancel>Annulla</create_user_btn_cancel>
|
||||||
<password_user_lbl_actpassword>Password attuale</password_user_lbl_actpassword>
|
<password_user_lbl_actpassword>Password attuale</password_user_lbl_actpassword>
|
||||||
<password_user_lbl_newpassword>Password nuova</password_user_lbl_newpassword>
|
<password_user_lbl_newpassword>Password nuova</password_user_lbl_newpassword>
|
||||||
<password_user_lbl_title_window>Modifica password: %s</password_user_lbl_title_window>
|
<password_user_lbl_title_window>Modifica password: %s</password_user_lbl_title_window>
|
||||||
<role_user_lbl_title_window>Modifica ruolo: %s</role_user_lbl_title_window>
|
<role_user_lbl_title_window>Modifica ruolo: %s</role_user_lbl_title_window>
|
||||||
<modal_confirm_delete_user>Sei sicuro di voler eliminare l'utente?</modal_confirm_delete_user>
|
<modal_confirm_delete_user>Sei sicuro di voler eliminare l'utente?</modal_confirm_delete_user>
|
||||||
<users_label_create_users>Aggiungi un nuovo utente</users_label_create_users>
|
<users_label_create_users>Aggiungi un nuovo utente</users_label_create_users>
|
||||||
<users_header_title>Gestore Utenti</users_header_title>
|
<users_header_title>Gestore Utenti</users_header_title>
|
||||||
<users_header_label_userfilter>Filtra utenti per Username</users_header_label_userfilter>
|
<users_header_label_userfilter>Filtra utenti per Username</users_header_label_userfilter>
|
||||||
<users_header_label_userfilter_placeholder>Username...</users_header_label_userfilter_placeholder>
|
<users_header_label_userfilter_placeholder>Username...</users_header_label_userfilter_placeholder>
|
||||||
<users_table_header_avatar>Avatar</users_table_header_avatar>
|
<users_table_header_avatar>Avatar</users_table_header_avatar>
|
||||||
<users_table_header_username>Username</users_table_header_username>
|
<users_table_header_username>Username</users_table_header_username>
|
||||||
<users_table_header_firstname>Nome</users_table_header_firstname>
|
<users_table_header_firstname>Nome</users_table_header_firstname>
|
||||||
<users_table_header_lastname>Cognome</users_table_header_lastname>
|
<users_table_header_lastname>Cognome</users_table_header_lastname>
|
||||||
<users_table_header_language>Lingua</users_table_header_language>
|
<users_table_header_language>Lingua</users_table_header_language>
|
||||||
<users_table_header_role>Ruolo</users_table_header_role>
|
<users_table_header_role>Ruolo</users_table_header_role>
|
||||||
<footer_tooltip_production>Manager della produzione</footer_tooltip_production>
|
<footer_tooltip_production>Manager della produzione</footer_tooltip_production>
|
||||||
<footer_tooltip_maintenance>Manager manutenzioni macchina</footer_tooltip_maintenance>
|
<footer_tooltip_maintenance>Manager manutenzioni macchina</footer_tooltip_maintenance>
|
||||||
<footer_tooltip_alarms>Storico allarmi</footer_tooltip_alarms>
|
<footer_tooltip_alarms>Storico allarmi</footer_tooltip_alarms>
|
||||||
<footer_tooltip_report>Report e stato macchina</footer_tooltip_report>
|
<footer_tooltip_report>Report e stato macchina</footer_tooltip_report>
|
||||||
<footer_tooltip_utilities>Utility e software esterni</footer_tooltip_utilities>
|
<footer_tooltip_utilities>Utility e software esterni</footer_tooltip_utilities>
|
||||||
<footer_tooltip_users>User Manager</footer_tooltip_users>
|
<footer_tooltip_users>User Manager</footer_tooltip_users>
|
||||||
<header_tooltip_btn_close>Chiudi CMS-Active</header_tooltip_btn_close>
|
<header_tooltip_btn_close>Chiudi CMS-Active</header_tooltip_btn_close>
|
||||||
<header_tooltip_btn_minimize>Minimizza CMS-Active</header_tooltip_btn_minimize>
|
<header_tooltip_btn_minimize>Minimizza CMS-Active</header_tooltip_btn_minimize>
|
||||||
<header_tooltip_btn_mchinfo>Visualizza Informazioni macchina</header_tooltip_btn_mchinfo>
|
<header_tooltip_btn_mchinfo>Visualizza Informazioni macchina</header_tooltip_btn_mchinfo>
|
||||||
<header_tooltip_btn_usrinfo>Visualizza Informazioni utente</header_tooltip_btn_usrinfo>
|
<header_tooltip_btn_usrinfo>Visualizza Informazioni utente</header_tooltip_btn_usrinfo>
|
||||||
<header_tooltip_btn_nc_maintenance>Apre/Chiude la lista delle manutenzioni scadute</header_tooltip_btn_nc_maintenance>
|
<header_tooltip_btn_nc_maintenance>Apre/Chiude la lista delle manutenzioni scadute</header_tooltip_btn_nc_maintenance>
|
||||||
<header_tooltip_nc_error>CN in Errore. Apre/Chiude la lista degli allarmi</header_tooltip_nc_error>
|
<header_tooltip_nc_error>CN in Errore. Apre/Chiude la lista degli allarmi</header_tooltip_nc_error>
|
||||||
<header_tooltip_nc_idle>CN in Attesa di Comandi</header_tooltip_nc_idle>
|
<header_tooltip_nc_idle>CN in Attesa di Comandi</header_tooltip_nc_idle>
|
||||||
<header_tooltip_Nc_Process>Informazioni processo</header_tooltip_Nc_Process>
|
<header_tooltip_Nc_Process>Informazioni processo</header_tooltip_Nc_Process>
|
||||||
<header_tooltip_mainstat_ko>Dispositivi macchina non ok</header_tooltip_mainstat_ko>
|
<header_tooltip_mainstat_ko>Dispositivi macchina non ok</header_tooltip_mainstat_ko>
|
||||||
<header_tooltip_mainstat_ok>Macchina in funzione</header_tooltip_mainstat_ok>
|
<header_tooltip_mainstat_ok>Macchina in funzione</header_tooltip_mainstat_ok>
|
||||||
<header_tooltip_powstat_ko>Macchina Non pronta a lavorare</header_tooltip_powstat_ko>
|
<header_tooltip_powstat_ko>Macchina Non pronta a lavorare</header_tooltip_powstat_ko>
|
||||||
<header_tooltip_powstat_ok>Macchina pronta a lavorare</header_tooltip_powstat_ok>
|
<header_tooltip_powstat_ok>Macchina pronta a lavorare</header_tooltip_powstat_ok>
|
||||||
<header_tooltip_emergency>Pulsanti di emergenza premuti</header_tooltip_emergency>
|
<header_tooltip_emergency>Pulsanti di emergenza premuti</header_tooltip_emergency>
|
||||||
<header_tooltip_key>Chiave non inserita</header_tooltip_key>
|
<header_tooltip_key>Chiave non inserita</header_tooltip_key>
|
||||||
<header_tooltip_power-on>Assi non in potenza</header_tooltip_power-on>
|
<header_tooltip_power-on>Assi non in potenza</header_tooltip_power-on>
|
||||||
<header_tooltip_protections>Protezioni di sicurezza non ok</header_tooltip_protections>
|
<header_tooltip_protections>Protezioni di sicurezza non ok</header_tooltip_protections>
|
||||||
<header_tooltip_settings-mode>Modalità setting attiva</header_tooltip_settings-mode>
|
<header_tooltip_settings-mode>Modalità setting attiva</header_tooltip_settings-mode>
|
||||||
<header_tooltip_air-flow>Aria compressa non ok</header_tooltip_air-flow>
|
<header_tooltip_air-flow>Aria compressa non ok</header_tooltip_air-flow>
|
||||||
<header_tooltip_zeroing>Azzeramento assi necessario</header_tooltip_zeroing>
|
<header_tooltip_zeroing>Azzeramento assi necessario</header_tooltip_zeroing>
|
||||||
<modal_load_program_empty_folder>Cartella Vuota</modal_load_program_empty_folder>
|
<modal_load_program_empty_folder>Cartella Vuota</modal_load_program_empty_folder>
|
||||||
<alarm_history_label_date_timestamp>Aggiunta il %s alle %s</alarm_history_label_date_timestamp>
|
<alarm_history_label_date_timestamp>Aggiunta il %s alle %s</alarm_history_label_date_timestamp>
|
||||||
<alarm_history_btn_save_note>Salva</alarm_history_btn_save_note>
|
<alarm_history_btn_save_note>Salva</alarm_history_btn_save_note>
|
||||||
<contactinfo_lbl_assistance_name>Informazioni sull'assistenza clienti:</contactinfo_lbl_assistance_name>
|
<contactinfo_lbl_assistance_name>Informazioni sull'assistenza clienti:</contactinfo_lbl_assistance_name>
|
||||||
<contactinfo_lbl_qrdescription>Per maggiori informazioni clicca sul simbolo qui sotto o scansiona il codice con il tuo telefono:</contactinfo_lbl_qrdescription>
|
<contactinfo_lbl_qrdescription>Per maggiori informazioni clicca sul simbolo qui sotto o scansiona il codice con il tuo telefono:</contactinfo_lbl_qrdescription>
|
||||||
<contactinfo_btn_reloadfile>Ricarica dal file</contactinfo_btn_reloadfile>
|
<contactinfo_btn_reloadfile>Ricarica dal file</contactinfo_btn_reloadfile>
|
||||||
<contactinfo_btn_showcmsdata>Mostra dati CMS</contactinfo_btn_showcmsdata>
|
<contactinfo_btn_showcmsdata>Mostra dati CMS</contactinfo_btn_showcmsdata>
|
||||||
<contactinfo_btn_openinbrowser>Apri nel browser</contactinfo_btn_openinbrowser>
|
<contactinfo_btn_openinbrowser>Apri nel browser</contactinfo_btn_openinbrowser>
|
||||||
<contactinfo_error_customer_configfile>Errore nel file "C:\CMS\ContactInfo.xml"</contactinfo_error_customer_configfile>
|
<contactinfo_error_customer_configfile>Errore nel file "C:\CMS\ContactInfo.xml"</contactinfo_error_customer_configfile>
|
||||||
<create_maintenance_lbl_machine>Macchina</create_maintenance_lbl_machine>
|
<create_maintenance_lbl_machine>Macchina</create_maintenance_lbl_machine>
|
||||||
<maintenance_machine_timer>Timer Macchina</maintenance_machine_timer>
|
<maintenance_machine_timer>Timer Macchina</maintenance_machine_timer>
|
||||||
<maintenance_remaining>Tempo rimanente</maintenance_remaining>
|
<maintenance_remaining>Tempo rimanente</maintenance_remaining>
|
||||||
<maintenance_interval_timer>Intervallo</maintenance_interval_timer>
|
<maintenance_interval_timer>Intervallo</maintenance_interval_timer>
|
||||||
<maintenance_status>Stato</maintenance_status>
|
<maintenance_status>Stato</maintenance_status>
|
||||||
<maintenance_btn_showhistory>Mostra cronologia</maintenance_btn_showhistory>
|
<maintenance_btn_showhistory>Mostra cronologia</maintenance_btn_showhistory>
|
||||||
<history_maintenance_lbl_title_window>Storico delle manutenzioni eseguite</history_maintenance_lbl_title_window>
|
<history_maintenance_lbl_title_window>Storico delle manutenzioni eseguite</history_maintenance_lbl_title_window>
|
||||||
<history_maintenance_table_header_date>Dati</history_maintenance_table_header_date>
|
<history_maintenance_table_header_date>Dati</history_maintenance_table_header_date>
|
||||||
<history_maintenance_table_header_user>Utente</history_maintenance_table_header_user>
|
<history_maintenance_table_header_user>Utente</history_maintenance_table_header_user>
|
||||||
<history_maintenance_table_header_counter>contatore</history_maintenance_table_header_counter>
|
<history_maintenance_table_header_counter>contatore</history_maintenance_table_header_counter>
|
||||||
<maintenance_exp_date>Scadenza</maintenance_exp_date>
|
<maintenance_exp_date>Scadenza</maintenance_exp_date>
|
||||||
<label_no_recipe>Nessuna ricetta caricata</label_no_recipe>
|
<label_no_recipe>Nessuna ricetta caricata</label_no_recipe>
|
||||||
<modal_title_edit_note>Modifica Note</modal_title_edit_note>
|
<modal_title_edit_note>Modifica Note</modal_title_edit_note>
|
||||||
<modal_recipe_note>Note della ricetta</modal_recipe_note>
|
<modal_recipe_note>Note della ricetta</modal_recipe_note>
|
||||||
<recipe_save>Salva</recipe_save>
|
<recipe_save>Salva</recipe_save>
|
||||||
<recipe_saveas_button>Salva con nome</recipe_saveas_button>
|
<recipe_saveas_button>Salva con nome</recipe_saveas_button>
|
||||||
<recipe_saveas>Salva come nuova ricetta</recipe_saveas>
|
<recipe_saveas>Salva come nuova ricetta</recipe_saveas>
|
||||||
<recipe_change_note>Modifica Note ricetta</recipe_change_note>
|
<recipe_change_note>Modifica Note ricetta</recipe_change_note>
|
||||||
<modal_title_save_as>Salva come nuova ricetta</modal_title_save_as>
|
<modal_title_save_as>Salva come nuova ricetta</modal_title_save_as>
|
||||||
<modal_confirm_save_recipe>Confermi di voler sovrascrivere la ricetta?</modal_confirm_save_recipe>
|
<modal_confirm_save_recipe>Confermi di voler sovrascrivere la ricetta?</modal_confirm_save_recipe>
|
||||||
<modal_title_duplicate_recipe>Duplica Ricetta</modal_title_duplicate_recipe>
|
<modal_title_duplicate_recipe>Duplica Ricetta</modal_title_duplicate_recipe>
|
||||||
<folder_name>Nuova Cartella</folder_name>
|
<folder_name>Nuova Cartella</folder_name>
|
||||||
<recipe_name>Nome della ricetta</recipe_name>
|
<recipe_name>Nome della ricetta</recipe_name>
|
||||||
<cancel>Annulla</cancel>
|
<cancel>Annulla</cancel>
|
||||||
<confirm>Conferma</confirm>
|
<confirm>Conferma</confirm>
|
||||||
<modal_load_program_lbl_sheet_x>Dimensione lastra X:</modal_load_program_lbl_sheet_x>
|
<modal_load_program_lbl_sheet_x>Dimensione lastra X:</modal_load_program_lbl_sheet_x>
|
||||||
<modal_load_program_lbl_sheet_y>Dimensione lastra Y:</modal_load_program_lbl_sheet_y>
|
<modal_load_program_lbl_sheet_y>Dimensione lastra Y:</modal_load_program_lbl_sheet_y>
|
||||||
<modal_load_program_lbl_sheet_z>Spessore lastra:</modal_load_program_lbl_sheet_z>
|
<modal_load_program_lbl_sheet_z>Spessore lastra:</modal_load_program_lbl_sheet_z>
|
||||||
<modal_load_program_lbl_notes>Note:</modal_load_program_lbl_notes>
|
<modal_load_program_lbl_notes>Note:</modal_load_program_lbl_notes>
|
||||||
<modal_confirm_delete_recipe>Confermi di voler eliminare la ricetta?</modal_confirm_delete_recipe>
|
<modal_confirm_delete_recipe>Confermi di voler eliminare la ricetta?</modal_confirm_delete_recipe>
|
||||||
<modal_load_program_lbl_box_selected_folder>Cartella selezionata:</modal_load_program_lbl_box_selected_folder>
|
<modal_load_program_lbl_box_selected_folder>Cartella selezionata:</modal_load_program_lbl_box_selected_folder>
|
||||||
<modal_load_program_lbl_box_operations>Azioni disponibili:</modal_load_program_lbl_box_operations>
|
<modal_load_program_lbl_box_operations>Azioni disponibili:</modal_load_program_lbl_box_operations>
|
||||||
<modal_load_program_btn_upload_recipe>Carica e attiva ricetta</modal_load_program_btn_upload_recipe>
|
<modal_load_program_btn_upload_recipe>Carica e attiva ricetta</modal_load_program_btn_upload_recipe>
|
||||||
<setup_lbl_title>Setup</setup_lbl_title>
|
<setup_lbl_title>Setup</setup_lbl_title>
|
||||||
<lbl_recipe_overview_general>Formato</lbl_recipe_overview_general>
|
<lbl_recipe_overview_general>Formato</lbl_recipe_overview_general>
|
||||||
<lbl_recipe_overview_positions>Quote e velocità</lbl_recipe_overview_positions>
|
<lbl_recipe_overview_positions>Quote e velocità</lbl_recipe_overview_positions>
|
||||||
<lbl_recipe_overview_cycle>Ciclo</lbl_recipe_overview_cycle>
|
<lbl_recipe_overview_cycle>Ciclo</lbl_recipe_overview_cycle>
|
||||||
<lbl_recipe_overview_heats>Riscaldi</lbl_recipe_overview_heats>
|
<lbl_recipe_overview_heats>Riscaldi</lbl_recipe_overview_heats>
|
||||||
<lbl_recipe_overview_pyrometer>Pirometro</lbl_recipe_overview_pyrometer>
|
<lbl_recipe_overview_pyrometer>Pirometro</lbl_recipe_overview_pyrometer>
|
||||||
<lbl_recipe_overview_drawing>Imbutitura</lbl_recipe_overview_drawing>
|
<lbl_recipe_overview_drawing>Imbutitura</lbl_recipe_overview_drawing>
|
||||||
<lbl_recipe_overview_upperplate>Controstampo</lbl_recipe_overview_upperplate>
|
<lbl_recipe_overview_upperplate>Controstampo</lbl_recipe_overview_upperplate>
|
||||||
<lbl_recipe_overview_cooling>Raffreddamento</lbl_recipe_overview_cooling>
|
<lbl_recipe_overview_cooling>Raffreddamento</lbl_recipe_overview_cooling>
|
||||||
<lbl_recipe_overview_vacuum>Vuoto</lbl_recipe_overview_vacuum>
|
<lbl_recipe_overview_vacuum>Vuoto</lbl_recipe_overview_vacuum>
|
||||||
<lbl_recipe_overview_extraction>Estrazione</lbl_recipe_overview_extraction>
|
<lbl_recipe_overview_extraction>Estrazione</lbl_recipe_overview_extraction>
|
||||||
<lbl_recipe_overview_options>Opzioni</lbl_recipe_overview_options>
|
<lbl_recipe_overview_options>Opzioni</lbl_recipe_overview_options>
|
||||||
<process-heating>Riscaldo</process-heating>
|
<process-heating>Riscaldo</process-heating>
|
||||||
<process-forming>Formatura</process-forming>
|
<process-forming>Formatura</process-forming>
|
||||||
<process-extraction>Estrazione</process-extraction>
|
<process-extraction>Estrazione</process-extraction>
|
||||||
<preferred-softkeys>Softkey preferite</preferred-softkeys>
|
<preferred-softkeys>Softkey preferite</preferred-softkeys>
|
||||||
<progr-preriscaldo_lbl_title>Programmazione preriscaldo</progr-preriscaldo_lbl_title>
|
<progr-preriscaldo_lbl_title>Programmazione preriscaldo</progr-preriscaldo_lbl_title>
|
||||||
<history-item_warmup>Tempo di riscaldo</history-item_warmup>
|
<history-item_warmup>Tempo di riscaldo</history-item_warmup>
|
||||||
<history-item_vacuum>Vuoto</history-item_vacuum>
|
<history-item_vacuum>Vuoto</history-item_vacuum>
|
||||||
<history-item_cycletime>Tempo ciclo netto</history-item_cycletime>
|
<history-item_cycletime>Tempo ciclo netto</history-item_cycletime>
|
||||||
<dashboard-timing-start>Inizio</dashboard-timing-start>
|
<dashboard-timing-start>Inizio</dashboard-timing-start>
|
||||||
<dashboard-timing-elapsed>Tempo trascorso</dashboard-timing-elapsed>
|
<dashboard-timing-elapsed>Tempo trascorso</dashboard-timing-elapsed>
|
||||||
<dashboard-timing-end>Fine</dashboard-timing-end>
|
<dashboard-timing-end>Fine</dashboard-timing-end>
|
||||||
<remainging_days>gg</remainging_days>
|
<remainging_days>gg</remainging_days>
|
||||||
<dashboard-setpoint>Set point</dashboard-setpoint>
|
<dashboard-setpoint>Set point</dashboard-setpoint>
|
||||||
<dashboard-remaining-time>Tempo rimanente</dashboard-remaining-time>
|
<dashboard-remaining-time>Tempo rimanente</dashboard-remaining-time>
|
||||||
<dashboard-piece-hours>Pezzi/Ora</dashboard-piece-hours>
|
<dashboard-piece-hours>Pezzi/Ora</dashboard-piece-hours>
|
||||||
<dashboard-time-cycle>Tempo/Ciclo</dashboard-time-cycle>
|
<dashboard-time-cycle>Tempo/Ciclo</dashboard-time-cycle>
|
||||||
<run_auto>Auto</run_auto>
|
<run_auto>Auto</run_auto>
|
||||||
<run_manual>Manuale</run_manual>
|
<run_manual>Manuale</run_manual>
|
||||||
<mould>Stampo</mould>
|
<mould>Stampo</mould>
|
||||||
<sheet>Lastra</sheet>
|
<sheet>Lastra</sheet>
|
||||||
<plate>Stampo</plate>
|
<plate>Stampo</plate>
|
||||||
<upperplate>Controstampo</upperplate>
|
<upperplate>Controstampo</upperplate>
|
||||||
<Frame>Cornice</Frame>
|
<Frame>Cornice</Frame>
|
||||||
<formatoinfo_lbl_title>Formato</formatoinfo_lbl_title>
|
<formatoinfo_lbl_title>Formato</formatoinfo_lbl_title>
|
||||||
<position_upperplate>Discesa controstampo</position_upperplate>
|
<position_upperplate>Discesa controstampo</position_upperplate>
|
||||||
<position_frame>Discesa cornice</position_frame>
|
<position_frame>Discesa cornice</position_frame>
|
||||||
<position_mould>Salita Stampo</position_mould>
|
<position_mould>Salita Stampo</position_mould>
|
||||||
<cycle>Ciclo di formatura</cycle>
|
<cycle>Ciclo di formatura</cycle>
|
||||||
<loader>Caricatore</loader>
|
<loader>Caricatore</loader>
|
||||||
<cycle_crystallisation>Cristallizzazione (secondo riscaldo)</cycle_crystallisation>
|
<cycle_crystallisation>Cristallizzazione (secondo riscaldo)</cycle_crystallisation>
|
||||||
<acrilic_frame>Cornice per acrilico</acrilic_frame>
|
<acrilic_frame>Cornice per acrilico</acrilic_frame>
|
||||||
<additional_heating>Riscaldo superiore supplementare</additional_heating>
|
<additional_heating>Riscaldo superiore supplementare</additional_heating>
|
||||||
<upperheaters>Riscaldi superiori</upperheaters>
|
<upperheaters>Riscaldi superiori</upperheaters>
|
||||||
<lowerheaters>Riscaldi inferiori</lowerheaters>
|
<lowerheaters>Riscaldi inferiori</lowerheaters>
|
||||||
<decomsustain>Sostentamento/Decompressione</decomsustain>
|
<decomsustain>Sostentamento/Decompressione</decomsustain>
|
||||||
<warmers_select_all>Tutti</warmers_select_all>
|
<warmers_select_all>Tutti</warmers_select_all>
|
||||||
<warmers_select_none>Nessuno</warmers_select_none>
|
<warmers_select_none>Nessuno</warmers_select_none>
|
||||||
<warmers_power>Gestione potenza</warmers_power>
|
<warmers_power>Gestione potenza</warmers_power>
|
||||||
<warmers_select_power>Seleziona...</warmers_select_power>
|
<warmers_select_power>Seleziona...</warmers_select_power>
|
||||||
<warmers_autocomposition>Autocomposizione</warmers_autocomposition>
|
<warmers_autocomposition>Autocomposizione</warmers_autocomposition>
|
||||||
<upperthermoregulator>Termoregolazione riscaldo superiore</upperthermoregulator>
|
<upperthermoregulator>Termoregolazione riscaldo superiore</upperthermoregulator>
|
||||||
<lowerthermoregulator>Termoregolazione riscaldo inferiore</lowerthermoregulator>
|
<lowerthermoregulator>Termoregolazione riscaldo inferiore</lowerthermoregulator>
|
||||||
<pyrometer>Pirometro</pyrometer>
|
<pyrometer>Pirometro</pyrometer>
|
||||||
<drawinginfo_lbl_title>Imbutitura</drawinginfo_lbl_title>
|
<drawinginfo_lbl_title>Imbutitura</drawinginfo_lbl_title>
|
||||||
<upperplate_cycle>Ciclo controstampo</upperplate_cycle>
|
<upperplate_cycle>Ciclo controstampo</upperplate_cycle>
|
||||||
<upperplate_air>Aria controstampo</upperplate_air>
|
<upperplate_air>Aria controstampo</upperplate_air>
|
||||||
<upperplate_vacuum>Vuoto controstampo</upperplate_vacuum>
|
<upperplate_vacuum>Vuoto controstampo</upperplate_vacuum>
|
||||||
<upperplate_extraction>Estrazione controstampo</upperplate_extraction>
|
<upperplate_extraction>Estrazione controstampo</upperplate_extraction>
|
||||||
<blowers>Ventilatori</blowers>
|
<blowers>Ventilatori</blowers>
|
||||||
<nebulizers>Nebulizzatori</nebulizers>
|
<nebulizers>Nebulizzatori</nebulizers>
|
||||||
<telescopic>Telescopici</telescopic>
|
<telescopic>Telescopici</telescopic>
|
||||||
<shutters>Otturatori</shutters>
|
<shutters>Otturatori</shutters>
|
||||||
<main_vacuum>Vuoto principale</main_vacuum>
|
<main_vacuum>Vuoto principale</main_vacuum>
|
||||||
<direct_vacuum>Vuoto diretto</direct_vacuum>
|
<direct_vacuum>Vuoto diretto</direct_vacuum>
|
||||||
<aux_vacuum>Vuoto ausiliario</aux_vacuum>
|
<aux_vacuum>Vuoto ausiliario</aux_vacuum>
|
||||||
<pre_vacuum>Pre-Vuoto</pre_vacuum>
|
<pre_vacuum>Pre-Vuoto</pre_vacuum>
|
||||||
<main_extraction>Estrazione principale</main_extraction>
|
<main_extraction>Estrazione principale</main_extraction>
|
||||||
<aux_extraction>Estrazione ausiliaria</aux_extraction>
|
<aux_extraction>Estrazione ausiliaria</aux_extraction>
|
||||||
<modal_options_no_more_parameters>Nessun altro parametro da gestire</modal_options_no_more_parameters>
|
<modal_options_no_more_parameters>Nessun altro parametro da gestire</modal_options_no_more_parameters>
|
||||||
<thermoregulators>Termoregolatori</thermoregulators>
|
<thermoregulators>Termoregolatori</thermoregulators>
|
||||||
<undercut_mould>Sottosquadra stampo</undercut_mould>
|
<undercut_mould>Sottosquadra stampo</undercut_mould>
|
||||||
<udercut_uppermould>Sottosquadra controstampo</udercut_uppermould>
|
<udercut_uppermould>Sottosquadra controstampo</udercut_uppermould>
|
||||||
<warmers_selection>Selezione</warmers_selection>
|
<warmers_selection>Selezione</warmers_selection>
|
||||||
<opzioniinfo_lbl_title>Opzioni</opzioniinfo_lbl_title>
|
<opzioniinfo_lbl_title>Opzioni</opzioniinfo_lbl_title>
|
||||||
<history_item_venttime>Tempo raffreddamento</history_item_venttime>
|
<history_item_venttime>Tempo raffreddamento</history_item_venttime>
|
||||||
<history_item_cycletimegross>Tempo ciclo lordo</history_item_cycletimegross>
|
<history_item_cycletimegross>Tempo ciclo lordo</history_item_cycletimegross>
|
||||||
<history_item_tempstampo>T. stampo</history_item_tempstampo>
|
<history_item_tempstampo>T. stampo</history_item_tempstampo>
|
||||||
<history_item_materialtempendwarm>T. Materiale fine riscaldo</history_item_materialtempendwarm>
|
<history_item_materialtempendwarm>T. Materiale fine riscaldo</history_item_materialtempendwarm>
|
||||||
<history_item_materialtempendvent>T. Materiale fine ventilazione</history_item_materialtempendvent>
|
<history_item_materialtempendvent>T. Materiale fine ventilazione</history_item_materialtempendvent>
|
||||||
<history_item_vacuumtime>Tempo vuoto</history_item_vacuumtime>
|
<history_item_vacuumtime>Tempo vuoto</history_item_vacuumtime>
|
||||||
<history_item_mouldenergyin>Consumo energia netto</history_item_mouldenergyin>
|
<history_item_mouldenergyin>Consumo energia netto</history_item_mouldenergyin>
|
||||||
<history_item_mouldenergyout>Consumo energia lordo</history_item_mouldenergyout>
|
<history_item_mouldenergyout>Consumo energia lordo</history_item_mouldenergyout>
|
||||||
<footer_tooltip_ricetta>Carica ricetta</footer_tooltip_ricetta>
|
<footer_tooltip_ricetta>Carica ricetta</footer_tooltip_ricetta>
|
||||||
<footer_tooltip_setup>Setup ricetta</footer_tooltip_setup>
|
<footer_tooltip_setup>Setup ricetta</footer_tooltip_setup>
|
||||||
<footer_tooltip_progr_prerisc>Pre-riscaldo</footer_tooltip_progr_prerisc>
|
<footer_tooltip_progr_prerisc>Pre-riscaldo</footer_tooltip_progr_prerisc>
|
||||||
<footer_tooltip_dashboard>Dashboard</footer_tooltip_dashboard>
|
<footer_tooltip_dashboard>Dashboard</footer_tooltip_dashboard>
|
||||||
<gauge_potenza>Potenza</gauge_potenza>
|
<gauge_potenza>Potenza</gauge_potenza>
|
||||||
<gauge_vuoto>Vuoto</gauge_vuoto>
|
<gauge_vuoto>Vuoto</gauge_vuoto>
|
||||||
<gauge_aria>Aria</gauge_aria>
|
<gauge_aria>Aria</gauge_aria>
|
||||||
<lbl_btn_preheating_all>Seleziona tutti i giorni</lbl_btn_preheating_all>
|
<lbl_btn_preheating_all>Seleziona tutti i giorni</lbl_btn_preheating_all>
|
||||||
<lbl_btn_preheating_non>Deseleziona tutti i giorni</lbl_btn_preheating_non>
|
<lbl_btn_preheating_non>Deseleziona tutti i giorni</lbl_btn_preheating_non>
|
||||||
<softkey_confirm>Sei sicuro?</softkey_confirm>
|
<softkey_confirm>Sei sicuro?</softkey_confirm>
|
||||||
<confirm_request_confirm>Conferma</confirm_request_confirm>
|
<confirm_request_confirm>Conferma</confirm_request_confirm>
|
||||||
<confirm_request_cancel>Annulla</confirm_request_cancel>
|
<confirm_request_cancel>Annulla</confirm_request_cancel>
|
||||||
<lbl_loader_load_area>Area di carico</lbl_loader_load_area>
|
<lbl_loader_load_area>Area di carico</lbl_loader_load_area>
|
||||||
<avvio_prod_lbl_title>Avvio produione</avvio_prod_lbl_title>
|
<avvio_prod_lbl_title>Avvio produione</avvio_prod_lbl_title>
|
||||||
<new_production>Nuovo lotto produttivo</new_production>
|
<new_production>Nuovo lotto produttivo</new_production>
|
||||||
<warmup_cycles>Cicli di warmup</warmup_cycles>
|
<warmup_cycles>Cicli di warmup</warmup_cycles>
|
||||||
<warmup_cycles_pieces>Numero di cicli:</warmup_cycles_pieces>
|
<warmup_cycles_pieces>Numero di cicli:</warmup_cycles_pieces>
|
||||||
<modal_start_button>Avvio</modal_start_button>
|
<modal_start_button>Avvio</modal_start_button>
|
||||||
<edit_prod_lbl_title>Modifica produione</edit_prod_lbl_title>
|
<edit_prod_lbl_title>Modifica produione</edit_prod_lbl_title>
|
||||||
<production_management>Lotto di produzione</production_management>
|
<production_management>Lotto di produzione</production_management>
|
||||||
<production_enabling>Setta numeto max di pezzi</production_enabling>
|
<production_enabling>Setta numeto max di pezzi</production_enabling>
|
||||||
<mock_pieces>Numero di pezzi:</mock_pieces>
|
<mock_pieces>Numero di pezzi:</mock_pieces>
|
||||||
<heats_alert_thermocamera_not_enabled>Thermoprophet non abilitato</heats_alert_thermocamera_not_enabled>
|
<heats_alert_thermocamera_not_enabled>Thermoprophet non abilitato</heats_alert_thermocamera_not_enabled>
|
||||||
<thermoprophet>Thermoprophet</thermoprophet>
|
<thermoprophet>Thermoprophet</thermoprophet>
|
||||||
<thermocamera_mode>Modalità Thermoprophet</thermocamera_mode>
|
<thermocamera_mode>Modalità Thermoprophet</thermocamera_mode>
|
||||||
<warmers_showcamera>Mostra immagine thermocamera</warmers_showcamera>
|
<warmers_showcamera>Mostra immagine thermocamera</warmers_showcamera>
|
||||||
<warmers_enable>Gestione abilitazione/disabilitazione</warmers_enable>
|
<warmers_enable>Gestione abilitazione/disabilitazione</warmers_enable>
|
||||||
<warmers_enabletemp>Abilita selzionate</warmers_enabletemp>
|
<warmers_enabletemp>Abilita selzionate</warmers_enabletemp>
|
||||||
<warmers_disabletemp>Disabilita selezionate</warmers_disabletemp>
|
<warmers_disabletemp>Disabilita selezionate</warmers_disabletemp>
|
||||||
<warmers_temperature>Gestione temperature</warmers_temperature>
|
<warmers_temperature>Gestione temperature</warmers_temperature>
|
||||||
<warmers_set_temperature>Fissa tutte le temperature</warmers_set_temperature>
|
<warmers_set_temperature>Fissa tutte le temperature</warmers_set_temperature>
|
||||||
<thermocamera_on_off>Attivazione Thermoprophet</thermocamera_on_off>
|
<thermocamera_on_off>Attivazione Thermoprophet</thermocamera_on_off>
|
||||||
<modal_title_backup>Backup ricette</modal_title_backup>
|
<modal_title_backup>Backup ricette</modal_title_backup>
|
||||||
<select_devices>Seleziona dispositivo</select_devices>
|
<select_devices>Seleziona dispositivo</select_devices>
|
||||||
<warmers_clear_temperature>Annulla tutte le temperature</warmers_clear_temperature>
|
<warmers_clear_temperature>Annulla tutte le temperature</warmers_clear_temperature>
|
||||||
<heats_alert_thermocamera_enabled>Thermoprophet abilitato</heats_alert_thermocamera_enabled>
|
<heats_alert_thermocamera_enabled>Thermoprophet abilitato</heats_alert_thermocamera_enabled>
|
||||||
|
<modal_resistance_info>Info Resistenza</modal_resistance_info>
|
||||||
|
<resistance_info_id_group>ID Gruppo:</resistance_info_id_group>
|
||||||
|
<resistance_info_id_reflector>ID Riflettore:</resistance_info_id_reflector>
|
||||||
|
<resistance_info_id_output>ID Output</resistance_info_id_output>
|
||||||
|
<resistance_info_wire_broken>Resistenza / Cavo rotto</resistance_info_wire_broken>
|
||||||
|
<resistance_info_fuse_blown>Fusibile Bruciato:</resistance_info_fuse_blown>
|
||||||
|
<resistance_info_short_triac>Corto Circuito:</resistance_info_short_triac>
|
||||||
|
<resistance_info_amp_low>Corrente troppo bassa:</resistance_info_amp_low>
|
||||||
|
<resistance_info_phase_missing>Una o più fasi mancanti:</resistance_info_phase_missing>
|
||||||
|
<resistance_info_ssr_overload>Sovraccarico SSR:</resistance_info_ssr_overload>
|
||||||
|
<resistance_info_frequency_not_ok>Frequenza non 49..51 o 59..61 Hz:</resistance_info_frequency_not_ok>
|
||||||
|
<underthehood_label_input>Input</underthehood_label_input>
|
||||||
|
<underthehood_label_output>Output</underthehood_label_output>
|
||||||
|
<underthehood_label_pinned>Selezionati</underthehood_label_pinned>
|
||||||
|
<underthehood_label_page>Pagina</underthehood_label_page>
|
||||||
|
<underthehood_label_wire>Cavo</underthehood_label_wire>
|
||||||
|
<underthehood_label_profinet>Profinet</underthehood_label_profinet>
|
||||||
|
<underthehood_label_desc>Descrizione</underthehood_label_desc>
|
||||||
|
<underthehood_label_val>Valore</underthehood_label_val>
|
||||||
|
<underthehood_label_force>Forzatura</underthehood_label_force>
|
||||||
|
<underthehood_label_io>Gestione IO</underthehood_label_io>
|
||||||
|
<underthehood_label_loga>Log - Ciclo automatico</underthehood_label_loga>
|
||||||
|
<underthehood_label_logm>Log - Lastre</underthehood_label_logm>
|
||||||
|
<underthehood_label_assi>Gestione assi</underthehood_label_assi>
|
||||||
|
<underthehood_label_riscaldi>Gestione riscaldi</underthehood_label_riscaldi>
|
||||||
|
<underthehood_btn_details>Dettagli</underthehood_btn_details>
|
||||||
|
<underthehood_label_cell>Cella</underthehood_label_cell>
|
||||||
|
<underthehood_label_reflector>Riflettore</underthehood_label_reflector>
|
||||||
|
<underthehood_label_channel>Canale</underthehood_label_channel>
|
||||||
|
<underthehood_label_board>Board</underthehood_label_board>
|
||||||
|
<underthehood_label_currenta>Corrente [A]</underthehood_label_currenta>
|
||||||
|
<underthehood_label_currentp>Power [%%]</underthehood_label_currentp>
|
||||||
|
<underthehood_label_status>Stato</underthehood_label_status>
|
||||||
|
<underthehood_label_date>Data</underthehood_label_date>
|
||||||
|
<underthehood_label_message>Messaggio</underthehood_label_message>
|
||||||
|
<underthehood_btn_zero>Set Zero</underthehood_btn_zero>
|
||||||
|
<underthehood_label_axis_enabled>Abilitato</underthehood_label_axis_enabled>
|
||||||
|
<underthehood_label_axes>Asse</underthehood_label_axes>
|
||||||
|
<underthehood_label_position>Posizione</underthehood_label_position>
|
||||||
|
<underthehood_label_speed>Velocità</underthehood_label_speed>
|
||||||
|
<underthehood_label_torque>Carico</underthehood_label_torque>
|
||||||
|
<underthehood_label_errorcode>Cod. errore</underthehood_label_errorcode>
|
||||||
|
<underthehood_label_motion>Fase mot.</underthehood_label_motion>
|
||||||
|
<underthehood_btn_align>Allinea</underthehood_btn_align>
|
||||||
|
<underthehood_btn_probe>Set Probe</underthehood_btn_probe>
|
||||||
|
<underthehood_btn_setslaves>Set posizione slave</underthehood_btn_setslaves>
|
||||||
|
<cmsconnect_info_lbl_title>Gestione CMS-Connect</cmsconnect_info_lbl_title>
|
||||||
|
<cmsconnect_info_menu_conn_status>Stato connessione</cmsconnect_info_menu_conn_status>
|
||||||
|
<cmsconnect_info_menu_networkconfig>Configurazione rete</cmsconnect_info_menu_networkconfig>
|
||||||
|
<cmsconnect_info_menu_proxyconfig>Configurazione s. proxy</cmsconnect_info_menu_proxyconfig>
|
||||||
|
<cmsconnect_info_menu_activation>Attivazione</cmsconnect_info_menu_activation>
|
||||||
|
<cmsconnect_info_menu_messages>Messaggi</cmsconnect_info_menu_messages>
|
||||||
|
<cmsconnect_info_menu_reboot>Riavvio</cmsconnect_info_menu_reboot>
|
||||||
|
<cmsconnect_info_lbl_url>Url</cmsconnect_info_lbl_url>
|
||||||
|
<cmsconnect_info_lbl_port>Porta</cmsconnect_info_lbl_port>
|
||||||
|
<cmsconnect_info_btn_run_conn_test>Avvia test</cmsconnect_info_btn_run_conn_test>
|
||||||
|
<star_keyboard_softkeys>Softkey in console</star_keyboard_softkeys>
|
||||||
|
<footer_tooltip_under_hood>Sotto il cofano</footer_tooltip_under_hood>
|
||||||
|
<underthehood_btn_move>Muovi</underthehood_btn_move>
|
||||||
|
<modal_confirm_mode_manual>Confermi di voler passare alla modalità manuale?</modal_confirm_mode_manual>
|
||||||
|
<cmsconnect_info_lbl_dhcp>Dhcp</cmsconnect_info_lbl_dhcp>
|
||||||
|
<cmsconnect_info_lbl_netmask>Netmask</cmsconnect_info_lbl_netmask>
|
||||||
|
<cmsconnect_info_lbl_dgateway>Default Gateway</cmsconnect_info_lbl_dgateway>
|
||||||
|
<cmsconnect_info_lbl_dns>Server Dns</cmsconnect_info_lbl_dns>
|
||||||
|
<cmsconnect_info_lbl_pref>Prefissi</cmsconnect_info_lbl_pref>
|
||||||
|
<cmsconnect_info_lbl_pref_placeholder>aggiungi un prefisso in ogni linea</cmsconnect_info_lbl_pref_placeholder>
|
||||||
|
<cmsconnect_info_lbl_proxy>Proxy</cmsconnect_info_lbl_proxy>
|
||||||
|
<cmsconnect_info_lbl_ip>Ip</cmsconnect_info_lbl_ip>
|
||||||
|
<cmsconnect_info_lbl_username>Username</cmsconnect_info_lbl_username>
|
||||||
|
<cmsconnect_info_lbl_password>Password</cmsconnect_info_lbl_password>
|
||||||
|
<cmsconnect_info_lbl_proxy_filters>Filtri proxy</cmsconnect_info_lbl_proxy_filters>
|
||||||
|
<cmsconnect_info_lbl_dns_placeholder>aggiungi un indirizzo in ogni linea</cmsconnect_info_lbl_dns_placeholder>
|
||||||
|
<cmsconnect_info_btn_load>Carica</cmsconnect_info_btn_load>
|
||||||
|
<cmsconnect_info_btn_save>Salva</cmsconnect_info_btn_save>
|
||||||
|
<connect_qrcode_activation_title>Scansiona il codice QR</connect_qrcode_activation_title>
|
||||||
|
<connect_link_activation_title>E inserisci il codice:</connect_link_activation_title>
|
||||||
|
<messages_lbl_create_message>Messaggio</messages_lbl_create_message>
|
||||||
|
<cmsconnect_info_messages_duration>Durata</cmsconnect_info_messages_duration>
|
||||||
|
<cmsconnect_info_messages_department>Dipartimento</cmsconnect_info_messages_department>
|
||||||
|
<cmsconnect_info_messages_department_maintenance>Manutenzione</cmsconnect_info_messages_department_maintenance>
|
||||||
|
<cmsconnect_info_messages_department_production>Produzione</cmsconnect_info_messages_department_production>
|
||||||
|
<cmsconnect_info_btn_send_message>Invia messaggio</cmsconnect_info_btn_send_message>
|
||||||
|
<cmsconnect_info_btn_reboot>Riavvia</cmsconnect_info_btn_reboot>
|
||||||
|
<modal_axis_info>Info Asse</modal_axis_info>
|
||||||
|
<axis_info_id>Id:</axis_info_id>
|
||||||
|
<axis_info_name>Nome:</axis_info_name>
|
||||||
|
<axis_info_torque>In coppia:</axis_info_torque>
|
||||||
|
<axis_info_gantry>Gantry:</axis_info_gantry>
|
||||||
|
<axis_info_moving>In movimento:</axis_info_moving>
|
||||||
|
<axis_info_zero>Azzerato:</axis_info_zero>
|
||||||
|
<axis_info_position>In posizione:</axis_info_position>
|
||||||
|
<axis_info_error>In errore:</axis_info_error>
|
||||||
|
<axis_info_brakealm>Allarme test freno:</axis_info_brakealm>
|
||||||
|
<bitselect_select_none>Nessuno</bitselect_select_none>
|
||||||
|
<bitselect_select_all>Tutti</bitselect_select_all>
|
||||||
</root>
|
</root>
|
||||||
@@ -1,340 +1,435 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Automatically generated by nicola.carminati: 2020-11-03 -->
|
<!-- Automatically generated by nicola.carminati: 2021-03-10 -->
|
||||||
<root>
|
<root>
|
||||||
<language_it>English</language_it>
|
<language_it>English</language_it>
|
||||||
<header_maintainance_request>Maintenance request</header_maintainance_request>
|
<header_maintainance_request>Maintenance request</header_maintainance_request>
|
||||||
<support_summary>Expiration:</support_summary>
|
<support_summary>Expiration:</support_summary>
|
||||||
<header_maintainance_request_explanation>There is a procedure to be performed</header_maintainance_request_explanation>
|
<header_maintainance_request_explanation>There is a procedure to be performed</header_maintainance_request_explanation>
|
||||||
<alarm_ribbon_title_more_items>There are %d active alarms</alarm_ribbon_title_more_items>
|
<alarm_ribbon_title_more_items>There are %d active alarms</alarm_ribbon_title_more_items>
|
||||||
<warning_ribbon_title_more_items>There are %d active warnings</warning_ribbon_title_more_items>
|
<warning_ribbon_title_more_items>There are %d active warnings</warning_ribbon_title_more_items>
|
||||||
<userinfo_lbl_title>User Settings</userinfo_lbl_title>
|
<userinfo_lbl_title>User Settings</userinfo_lbl_title>
|
||||||
<userinfo_btn_logout>Log out</userinfo_btn_logout>
|
<userinfo_btn_logout>Log out</userinfo_btn_logout>
|
||||||
<userinfo_lbl_language>Language</userinfo_lbl_language>
|
<userinfo_lbl_language>Language</userinfo_lbl_language>
|
||||||
<userinfo_btn_cancel>Cancel</userinfo_btn_cancel>
|
<userinfo_btn_cancel>Cancel</userinfo_btn_cancel>
|
||||||
<userinfo_btn_save>Save</userinfo_btn_save>
|
<userinfo_btn_save>Save</userinfo_btn_save>
|
||||||
<login_lbl_title>User login</login_lbl_title>
|
<login_lbl_title>User login</login_lbl_title>
|
||||||
<login_lbl_username>User name</login_lbl_username>
|
<login_lbl_username>User name</login_lbl_username>
|
||||||
<login_lbl_password>Password</login_lbl_password>
|
<login_lbl_password>Password</login_lbl_password>
|
||||||
<login_btn_login>Log in</login_btn_login>
|
<login_btn_login>Log in</login_btn_login>
|
||||||
<login_lbl_invalidusername>Invalid user name</login_lbl_invalidusername>
|
<login_lbl_invalidusername>Invalid user name</login_lbl_invalidusername>
|
||||||
<login_lbl_invalidpassword>Invalid password</login_lbl_invalidpassword>
|
<login_lbl_invalidpassword>Invalid password</login_lbl_invalidpassword>
|
||||||
<alarms_btn_history_show>Show alarms history</alarms_btn_history_show>
|
<alarms_btn_history_show>Show alarms history</alarms_btn_history_show>
|
||||||
<alarms_refresh_all>Refresh all</alarms_refresh_all>
|
<alarms_refresh_all>Refresh all</alarms_refresh_all>
|
||||||
<alarm_item_btn_show>Show</alarm_item_btn_show>
|
<alarm_item_btn_show>Show</alarm_item_btn_show>
|
||||||
<alarm_ribbon_title_1_item>Alarm</alarm_ribbon_title_1_item>
|
<alarm_ribbon_title_1_item>Alarm</alarm_ribbon_title_1_item>
|
||||||
<warning_ribbon_title_1_item>Warning</warning_ribbon_title_1_item>
|
<warning_ribbon_title_1_item>Warning</warning_ribbon_title_1_item>
|
||||||
<alarm_detail_lbl_status>Status</alarm_detail_lbl_status>
|
<alarm_detail_lbl_status>Status</alarm_detail_lbl_status>
|
||||||
<alarm_manual_lbl_title>Restore procedure</alarm_manual_lbl_title>
|
<alarm_manual_lbl_title>Restore procedure</alarm_manual_lbl_title>
|
||||||
<alarm_manual_lbl_description>Alarm resolution</alarm_manual_lbl_description>
|
<alarm_manual_lbl_description>Alarm resolution</alarm_manual_lbl_description>
|
||||||
<alarm_manual_btn_start>Start</alarm_manual_btn_start>
|
<alarm_manual_btn_start>Start</alarm_manual_btn_start>
|
||||||
<alarm_detail_btn_show_manual>Show Manual</alarm_detail_btn_show_manual>
|
<alarm_detail_btn_show_manual>Show Manual</alarm_detail_btn_show_manual>
|
||||||
<alarm_detail_btn_ask_help>Ask Help</alarm_detail_btn_ask_help>
|
<alarm_detail_btn_ask_help>Ask Help</alarm_detail_btn_ask_help>
|
||||||
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
|
<alarm_detail_btn_refresh>Refresh</alarm_detail_btn_refresh>
|
||||||
<alarm_btn_back_to_list>Back to alarm list</alarm_btn_back_to_list>
|
<alarm_btn_back_to_list>Back to alarm list</alarm_btn_back_to_list>
|
||||||
<alarm_status_active>Active</alarm_status_active>
|
<alarm_status_active>Active</alarm_status_active>
|
||||||
<alarm_status_deleted>Deleted</alarm_status_deleted>
|
<alarm_status_deleted>Deleted</alarm_status_deleted>
|
||||||
<alarm_btn_add_attach>Add an attachment</alarm_btn_add_attach>
|
<alarm_btn_add_attach>Add an attachment</alarm_btn_add_attach>
|
||||||
<machineinfo_lbl_title>Machine Info</machineinfo_lbl_title>
|
<machineinfo_lbl_title>Machine Info</machineinfo_lbl_title>
|
||||||
<machine_serial_number>Machine Id:</machine_serial_number>
|
<machine_serial_number>Machine Id:</machine_serial_number>
|
||||||
<machine_installation_date>Installation date:</machine_installation_date>
|
<machine_installation_date>Installation date:</machine_installation_date>
|
||||||
<machineinfo_model_nc>Nc Model:</machineinfo_model_nc>
|
<machineinfo_model_nc>Nc Model:</machineinfo_model_nc>
|
||||||
<machineinfo_serial_nc>Nc Serial Num:</machineinfo_serial_nc>
|
<machineinfo_serial_nc>Nc Serial Num:</machineinfo_serial_nc>
|
||||||
<machineinfo_firmware_version>Nc Firmware Version:</machineinfo_firmware_version>
|
<machineinfo_firmware_version>Nc Firmware Version:</machineinfo_firmware_version>
|
||||||
<machineinfo_plc_version>Plc Version:</machineinfo_plc_version>
|
<machineinfo_plc_version>Plc Version:</machineinfo_plc_version>
|
||||||
<machineinfo_current_language>Nc Selected Language:</machineinfo_current_language>
|
<machineinfo_current_language>Nc Selected Language:</machineinfo_current_language>
|
||||||
<machineinfo_processes>Nc Configured Processes:</machineinfo_processes>
|
<machineinfo_processes>Nc Configured Processes:</machineinfo_processes>
|
||||||
<machineinfo_datetime>Nc Time-Stamp:</machineinfo_datetime>
|
<machineinfo_datetime>Nc Time-Stamp:</machineinfo_datetime>
|
||||||
<machineinfo_umeas>Nc Unit measure:</machineinfo_umeas>
|
<machineinfo_umeas>Nc Unit measure:</machineinfo_umeas>
|
||||||
<machineinfo_server_cms_version>CMS-Active Server Version:</machineinfo_server_cms_version>
|
<machineinfo_server_cms_version>CMS-Active Server Version:</machineinfo_server_cms_version>
|
||||||
<machineinfo_core_cms_version>CMS-Active Core Version:</machineinfo_core_cms_version>
|
<machineinfo_core_cms_version>CMS-Active Core Version:</machineinfo_core_cms_version>
|
||||||
<machineinfo_cms_client_version>CMS-Active Client Version:</machineinfo_cms_client_version>
|
<machineinfo_cms_client_version>CMS-Active Client Version:</machineinfo_cms_client_version>
|
||||||
<machineinfo_cms_dateformat>CMS-Active Data Format:</machineinfo_cms_dateformat>
|
<machineinfo_cms_dateformat>CMS-Active Data Format:</machineinfo_cms_dateformat>
|
||||||
<contactinfo_lbl_title>Contact Info</contactinfo_lbl_title>
|
<contactinfo_lbl_title>Contact Info</contactinfo_lbl_title>
|
||||||
<contactinfo_lbl_company>Contact Name:</contactinfo_lbl_company>
|
<contactinfo_lbl_company>Contact Name:</contactinfo_lbl_company>
|
||||||
<contactinfo_lbl_email>Email:</contactinfo_lbl_email>
|
<contactinfo_lbl_email>Email:</contactinfo_lbl_email>
|
||||||
<contactinfo_lbl_phoneNumber>Phone Number:</contactinfo_lbl_phoneNumber>
|
<contactinfo_lbl_phoneNumber>Phone Number:</contactinfo_lbl_phoneNumber>
|
||||||
<utilities_header_label>Utilities & External Softwares</utilities_header_label>
|
<utilities_header_label>Utilities & External Softwares</utilities_header_label>
|
||||||
<modal_nochangepage_title>Operation not allowed</modal_nochangepage_title>
|
<modal_nochangepage_title>Operation not allowed</modal_nochangepage_title>
|
||||||
<modal_confirm_close_application>Are you sure you want to close Active?</modal_confirm_close_application>
|
<modal_confirm_close_application>Are you sure you want to close Active?</modal_confirm_close_application>
|
||||||
<modal_nocloseapp_title>Action not allowed</modal_nocloseapp_title>
|
<modal_nocloseapp_title>Action not allowed</modal_nocloseapp_title>
|
||||||
<modal_confirm_title>Confirm Operation</modal_confirm_title>
|
<modal_confirm_title>Confirm Operation</modal_confirm_title>
|
||||||
<modal_ok_button>Ok</modal_ok_button>
|
<modal_ok_button>Ok</modal_ok_button>
|
||||||
<modal_cancel_button>Cancel</modal_cancel_button>
|
<modal_cancel_button>Cancel</modal_cancel_button>
|
||||||
<maintenance_header_title>Maintenance manager</maintenance_header_title>
|
<maintenance_header_title>Maintenance manager</maintenance_header_title>
|
||||||
<maintenance_card_btn_save_note>Save</maintenance_card_btn_save_note>
|
<maintenance_card_btn_save_note>Save</maintenance_card_btn_save_note>
|
||||||
<maintenance_card_btn_view_all_attach>Show all files</maintenance_card_btn_view_all_attach>
|
<maintenance_card_btn_view_all_attach>Show all files</maintenance_card_btn_view_all_attach>
|
||||||
<maintenance_card_btn_hide_all_attach>Show only last files</maintenance_card_btn_hide_all_attach>
|
<maintenance_card_btn_hide_all_attach>Show only last files</maintenance_card_btn_hide_all_attach>
|
||||||
<maintenance_card_btn_add_attach>Add a file</maintenance_card_btn_add_attach>
|
<maintenance_card_btn_add_attach>Add a file</maintenance_card_btn_add_attach>
|
||||||
<maintenance_card_btn_view_all_note>Show all notes</maintenance_card_btn_view_all_note>
|
<maintenance_card_btn_view_all_note>Show all notes</maintenance_card_btn_view_all_note>
|
||||||
<maintenance_card_btn_hide_all_note>Show olny last notes</maintenance_card_btn_hide_all_note>
|
<maintenance_card_btn_hide_all_note>Show olny last notes</maintenance_card_btn_hide_all_note>
|
||||||
<maintenance_card_label_btn_footer>Mark as performed</maintenance_card_label_btn_footer>
|
<maintenance_card_label_btn_footer>Mark as performed</maintenance_card_label_btn_footer>
|
||||||
<maintenance_header_label_procedure>Find a maintenance by name</maintenance_header_label_procedure>
|
<maintenance_header_label_procedure>Find a maintenance by name</maintenance_header_label_procedure>
|
||||||
<maintenance_header_label_procedure_placeholder>Maintenance name...</maintenance_header_label_procedure_placeholder>
|
<maintenance_header_label_procedure_placeholder>Maintenance name...</maintenance_header_label_procedure_placeholder>
|
||||||
<maintenance_header_label_state>State</maintenance_header_label_state>
|
<maintenance_header_label_state>State</maintenance_header_label_state>
|
||||||
<maintenance_label_create_intervention>Create a new maintenance-event</maintenance_label_create_intervention>
|
<maintenance_label_create_intervention>Create a new maintenance-event</maintenance_label_create_intervention>
|
||||||
<maintenance_label_disable-maintenance>Select a maintenance...</maintenance_label_disable-maintenance>
|
<maintenance_label_disable-maintenance>Select a maintenance...</maintenance_label_disable-maintenance>
|
||||||
<maintenance_state_expired>Expired</maintenance_state_expired>
|
<maintenance_state_expired>Expired</maintenance_state_expired>
|
||||||
<maintenance_state_closed>Closed</maintenance_state_closed>
|
<maintenance_state_closed>Closed</maintenance_state_closed>
|
||||||
<maintenance_state_running>Not expired</maintenance_state_running>
|
<maintenance_state_running>Not expired</maintenance_state_running>
|
||||||
<maintenance_state_ending>Expiring</maintenance_state_ending>
|
<maintenance_state_ending>Expiring</maintenance_state_ending>
|
||||||
<maintenance_table_header_counter>Counter</maintenance_table_header_counter>
|
<maintenance_table_header_counter>Counter</maintenance_table_header_counter>
|
||||||
<maintenance_table_header_deadline>Expires in</maintenance_table_header_deadline>
|
<maintenance_table_header_deadline>Expires in</maintenance_table_header_deadline>
|
||||||
<maintenance_table_header_state>State</maintenance_table_header_state>
|
<maintenance_table_header_state>State</maintenance_table_header_state>
|
||||||
<maintenance_table_header_title>Title</maintenance_table_header_title>
|
<maintenance_table_header_title>Title</maintenance_table_header_title>
|
||||||
<maintenance_card_label_date_timestamp>Added in %s at %s</maintenance_card_label_date_timestamp>
|
<maintenance_card_label_date_timestamp>Added in %s at %s</maintenance_card_label_date_timestamp>
|
||||||
<maintenance_card_btn_cancel_modify_note>Cancel</maintenance_card_btn_cancel_modify_note>
|
<maintenance_card_btn_cancel_modify_note>Cancel</maintenance_card_btn_cancel_modify_note>
|
||||||
<maintenance_card_btn_save_modify_note>Save</maintenance_card_btn_save_modify_note>
|
<maintenance_card_btn_save_modify_note>Save</maintenance_card_btn_save_modify_note>
|
||||||
<maintenance_date_neverdone>Maintenance never registered</maintenance_date_neverdone>
|
<maintenance_date_neverdone>Maintenance never registered</maintenance_date_neverdone>
|
||||||
<maintenance_date_justdone>Last maintenance registered few minutes ago, from: %s</maintenance_date_justdone>
|
<maintenance_date_justdone>Last maintenance registered few minutes ago, from: %s</maintenance_date_justdone>
|
||||||
<maintenance_date_hours>Last maintenance registered %d hours ago, from: %s</maintenance_date_hours>
|
<maintenance_date_hours>Last maintenance registered %d hours ago, from: %s</maintenance_date_hours>
|
||||||
<maintenance_date_days>Last maintenance registered %d days ago, from: %s</maintenance_date_days>
|
<maintenance_date_days>Last maintenance registered %d days ago, from: %s</maintenance_date_days>
|
||||||
<maintenance_date_fixeddate>Last maintenance registered in: %s, from: %s</maintenance_date_fixeddate>
|
<maintenance_date_fixeddate>Last maintenance registered in: %s, from: %s</maintenance_date_fixeddate>
|
||||||
<maintenance_card_created_timestamp>Maintenance created in %s at %s</maintenance_card_created_timestamp>
|
<maintenance_card_created_timestamp>Maintenance created in %s at %s</maintenance_card_created_timestamp>
|
||||||
<maintenance_card_attachments>Attachments</maintenance_card_attachments>
|
<maintenance_card_attachments>Attachments</maintenance_card_attachments>
|
||||||
<maintenance_card_notes>Notes</maintenance_card_notes>
|
<maintenance_card_notes>Notes</maintenance_card_notes>
|
||||||
<create_maintenance_lbl_title_window>Maintenance-event creation</create_maintenance_lbl_title_window>
|
<create_maintenance_lbl_title_window>Maintenance-event creation</create_maintenance_lbl_title_window>
|
||||||
<create_maintenance_lbl_title>Title</create_maintenance_lbl_title>
|
<create_maintenance_lbl_title>Title</create_maintenance_lbl_title>
|
||||||
<create_maintenance_btn_cancel>Cancel</create_maintenance_btn_cancel>
|
<create_maintenance_btn_cancel>Cancel</create_maintenance_btn_cancel>
|
||||||
<create_maintenance_lbl_date>Date</create_maintenance_lbl_date>
|
<create_maintenance_lbl_date>Date</create_maintenance_lbl_date>
|
||||||
<create_maintenance_lbl_description>Description</create_maintenance_lbl_description>
|
<create_maintenance_lbl_description>Description</create_maintenance_lbl_description>
|
||||||
<create_maintenance_lbl_end_time>Time</create_maintenance_lbl_end_time>
|
<create_maintenance_lbl_end_time>Time</create_maintenance_lbl_end_time>
|
||||||
<create_maintenance_lbl_typology>Type</create_maintenance_lbl_typology>
|
<create_maintenance_lbl_typology>Type</create_maintenance_lbl_typology>
|
||||||
<create_maintenance_lbl_repeat>Repeat every</create_maintenance_lbl_repeat>
|
<create_maintenance_lbl_repeat>Repeat every</create_maintenance_lbl_repeat>
|
||||||
<create_maintenance_repeat_day>Days</create_maintenance_repeat_day>
|
<create_maintenance_repeat_day>Days</create_maintenance_repeat_day>
|
||||||
<create_maintenance_repeat_hour>Hours</create_maintenance_repeat_hour>
|
<create_maintenance_repeat_hour>Hours</create_maintenance_repeat_hour>
|
||||||
<create_maintenance_repeat_minutes>Minutes</create_maintenance_repeat_minutes>
|
<create_maintenance_repeat_minutes>Minutes</create_maintenance_repeat_minutes>
|
||||||
<create_maintenance_repeat_months>Months</create_maintenance_repeat_months>
|
<create_maintenance_repeat_months>Months</create_maintenance_repeat_months>
|
||||||
<create_maintenance_lbl_fixeddate>Fixed date</create_maintenance_lbl_fixeddate>
|
<create_maintenance_lbl_fixeddate>Fixed date</create_maintenance_lbl_fixeddate>
|
||||||
<create_maintenance_lbl_temporal>Repeating event</create_maintenance_lbl_temporal>
|
<create_maintenance_lbl_temporal>Repeating event</create_maintenance_lbl_temporal>
|
||||||
<create_maintenance_btn_add_confirm>Create Maintenance</create_maintenance_btn_add_confirm>
|
<create_maintenance_btn_add_confirm>Create Maintenance</create_maintenance_btn_add_confirm>
|
||||||
<create_maintenance_btn_edit_confirm>Edit Maintenance</create_maintenance_btn_edit_confirm>
|
<create_maintenance_btn_edit_confirm>Edit Maintenance</create_maintenance_btn_edit_confirm>
|
||||||
<modal_load_program_lbl_title_window>Recipe-Loader</modal_load_program_lbl_title_window>
|
<modal_load_program_lbl_title_window>Recipe-Loader</modal_load_program_lbl_title_window>
|
||||||
<modal_load_program_search_placeholder>Find a recipe by name</modal_load_program_search_placeholder>
|
<modal_load_program_search_placeholder>Find a recipe by name</modal_load_program_search_placeholder>
|
||||||
<modal_load_program_creation_date>Creation Date:</modal_load_program_creation_date>
|
<modal_load_program_creation_date>Creation Date:</modal_load_program_creation_date>
|
||||||
<modal_load_program_last_change_date>Last change Date:</modal_load_program_last_change_date>
|
<modal_load_program_last_change_date>Last change Date:</modal_load_program_last_change_date>
|
||||||
<modal_load_program_lbl_img_not_found>Preview not available</modal_load_program_lbl_img_not_found>
|
<modal_load_program_lbl_img_not_found>Preview not available</modal_load_program_lbl_img_not_found>
|
||||||
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
|
<alarm_history_filter_nc>NC</alarm_history_filter_nc>
|
||||||
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
|
<alarm_history_filter_plc>PLC</alarm_history_filter_plc>
|
||||||
<alarm_history_header_title>Alarm history manager</alarm_history_header_title>
|
<alarm_history_header_title>Alarm history manager</alarm_history_header_title>
|
||||||
<alarm_history_body_filter>Filter alarm By Title</alarm_history_body_filter>
|
<alarm_history_body_filter>Filter alarm By Title</alarm_history_body_filter>
|
||||||
<alarm_history_body_filter_placeholder>Title...</alarm_history_body_filter_placeholder>
|
<alarm_history_body_filter_placeholder>Title...</alarm_history_body_filter_placeholder>
|
||||||
<alarm_history_body_filter_source>Source</alarm_history_body_filter_source>
|
<alarm_history_body_filter_source>Source</alarm_history_body_filter_source>
|
||||||
<alarm_history_body_date_range>Date range</alarm_history_body_date_range>
|
<alarm_history_body_date_range>Date range</alarm_history_body_date_range>
|
||||||
<alarm_history_body_user>Users</alarm_history_body_user>
|
<alarm_history_body_user>Users</alarm_history_body_user>
|
||||||
<alarms_history_table_source>Source</alarms_history_table_source>
|
<alarms_history_table_source>Source</alarms_history_table_source>
|
||||||
<alarms_history_table_title>Title</alarms_history_table_title>
|
<alarms_history_table_title>Title</alarms_history_table_title>
|
||||||
<alarms_history_table_date>Date</alarms_history_table_date>
|
<alarms_history_table_date>Date</alarms_history_table_date>
|
||||||
<alarms_history_table_user>User</alarms_history_table_user>
|
<alarms_history_table_user>User</alarms_history_table_user>
|
||||||
<alarm_history_label_select_alarms>Select an alarm...</alarm_history_label_select_alarms>
|
<alarm_history_label_select_alarms>Select an alarm...</alarm_history_label_select_alarms>
|
||||||
<alarm_history_users_not_user>No-users</alarm_history_users_not_user>
|
<alarm_history_users_not_user>No-users</alarm_history_users_not_user>
|
||||||
<create_user_lbl_title_window>User Editor</create_user_lbl_title_window>
|
<create_user_lbl_title_window>User Editor</create_user_lbl_title_window>
|
||||||
<create_user_lbl_firstname>First Name</create_user_lbl_firstname>
|
<create_user_lbl_firstname>First Name</create_user_lbl_firstname>
|
||||||
<create_user_lbl_lastname>Last Name</create_user_lbl_lastname>
|
<create_user_lbl_lastname>Last Name</create_user_lbl_lastname>
|
||||||
<create_user_lbl_password>Password</create_user_lbl_password>
|
<create_user_lbl_password>Password</create_user_lbl_password>
|
||||||
<create_user_lbl_username>Username</create_user_lbl_username>
|
<create_user_lbl_username>Username</create_user_lbl_username>
|
||||||
<create_user_btn_add_confirm>Add</create_user_btn_add_confirm>
|
<create_user_btn_add_confirm>Add</create_user_btn_add_confirm>
|
||||||
<create_user_btn_edit_confirm>Edit</create_user_btn_edit_confirm>
|
<create_user_btn_edit_confirm>Edit</create_user_btn_edit_confirm>
|
||||||
<create_user_btn_cancel>Cancel</create_user_btn_cancel>
|
<create_user_btn_cancel>Cancel</create_user_btn_cancel>
|
||||||
<password_user_lbl_actpassword>Actual password</password_user_lbl_actpassword>
|
<password_user_lbl_actpassword>Actual password</password_user_lbl_actpassword>
|
||||||
<password_user_lbl_newpassword>New password</password_user_lbl_newpassword>
|
<password_user_lbl_newpassword>New password</password_user_lbl_newpassword>
|
||||||
<password_user_lbl_title_window>Password Editor: %s</password_user_lbl_title_window>
|
<password_user_lbl_title_window>Password Editor: %s</password_user_lbl_title_window>
|
||||||
<role_user_lbl_title_window>Role Editor: %s</role_user_lbl_title_window>
|
<role_user_lbl_title_window>Role Editor: %s</role_user_lbl_title_window>
|
||||||
<modal_confirm_delete_user>Are you sure to delete the user?</modal_confirm_delete_user>
|
<modal_confirm_delete_user>Are you sure to delete the user?</modal_confirm_delete_user>
|
||||||
<users_label_create_users>Add new user</users_label_create_users>
|
<users_label_create_users>Add new user</users_label_create_users>
|
||||||
<users_header_title>Users Manager</users_header_title>
|
<users_header_title>Users Manager</users_header_title>
|
||||||
<users_header_label_userfilter>Filter users by Username</users_header_label_userfilter>
|
<users_header_label_userfilter>Filter users by Username</users_header_label_userfilter>
|
||||||
<users_header_label_userfilter_placeholder>Username...</users_header_label_userfilter_placeholder>
|
<users_header_label_userfilter_placeholder>Username...</users_header_label_userfilter_placeholder>
|
||||||
<users_table_header_avatar>Avatar</users_table_header_avatar>
|
<users_table_header_avatar>Avatar</users_table_header_avatar>
|
||||||
<users_table_header_username>Username</users_table_header_username>
|
<users_table_header_username>Username</users_table_header_username>
|
||||||
<users_table_header_firstname>First Name</users_table_header_firstname>
|
<users_table_header_firstname>First Name</users_table_header_firstname>
|
||||||
<users_table_header_lastname>Last Name</users_table_header_lastname>
|
<users_table_header_lastname>Last Name</users_table_header_lastname>
|
||||||
<users_table_header_language>Language</users_table_header_language>
|
<users_table_header_language>Language</users_table_header_language>
|
||||||
<users_table_header_role>Role</users_table_header_role>
|
<users_table_header_role>Role</users_table_header_role>
|
||||||
<footer_tooltip_production>Production Manager</footer_tooltip_production>
|
<footer_tooltip_production>Production Manager</footer_tooltip_production>
|
||||||
<footer_tooltip_maintenance>Maintenance Manager</footer_tooltip_maintenance>
|
<footer_tooltip_maintenance>Maintenance Manager</footer_tooltip_maintenance>
|
||||||
<footer_tooltip_alarms>Alarm History</footer_tooltip_alarms>
|
<footer_tooltip_alarms>Alarm History</footer_tooltip_alarms>
|
||||||
<footer_tooltip_report>Reports & Machine State</footer_tooltip_report>
|
<footer_tooltip_report>Reports & Machine State</footer_tooltip_report>
|
||||||
<footer_tooltip_utilities>Utilities & External softwares</footer_tooltip_utilities>
|
<footer_tooltip_utilities>Utilities & External softwares</footer_tooltip_utilities>
|
||||||
<footer_tooltip_users>Users Manager</footer_tooltip_users>
|
<footer_tooltip_users>Users Manager</footer_tooltip_users>
|
||||||
<header_tooltip_btn_close>Close CMS-Active</header_tooltip_btn_close>
|
<header_tooltip_btn_close>Close CMS-Active</header_tooltip_btn_close>
|
||||||
<header_tooltip_btn_minimize>Minimize CMS-Active</header_tooltip_btn_minimize>
|
<header_tooltip_btn_minimize>Minimize CMS-Active</header_tooltip_btn_minimize>
|
||||||
<header_tooltip_btn_mchinfo>Show machine info</header_tooltip_btn_mchinfo>
|
<header_tooltip_btn_mchinfo>Show machine info</header_tooltip_btn_mchinfo>
|
||||||
<header_tooltip_btn_usrinfo>Show user info</header_tooltip_btn_usrinfo>
|
<header_tooltip_btn_usrinfo>Show user info</header_tooltip_btn_usrinfo>
|
||||||
<header_tooltip_btn_nc_maintenance>Open/Close list of expired maintenances</header_tooltip_btn_nc_maintenance>
|
<header_tooltip_btn_nc_maintenance>Open/Close list of expired maintenances</header_tooltip_btn_nc_maintenance>
|
||||||
<header_tooltip_nc_error>NC in Error-state. Open/Close list of active alarms</header_tooltip_nc_error>
|
<header_tooltip_nc_error>NC in Error-state. Open/Close list of active alarms</header_tooltip_nc_error>
|
||||||
<header_tooltip_nc_idle>NC in Idle-state</header_tooltip_nc_idle>
|
<header_tooltip_nc_idle>NC in Idle-state</header_tooltip_nc_idle>
|
||||||
<header_tooltip_Nc_Process>Nc-process info</header_tooltip_Nc_Process>
|
<header_tooltip_Nc_Process>Nc-process info</header_tooltip_Nc_Process>
|
||||||
<header_tooltip_mainstat_ko>Machine devices not ok</header_tooltip_mainstat_ko>
|
<header_tooltip_mainstat_ko>Machine devices not ok</header_tooltip_mainstat_ko>
|
||||||
<header_tooltip_mainstat_ok>Machine operational</header_tooltip_mainstat_ok>
|
<header_tooltip_mainstat_ok>Machine operational</header_tooltip_mainstat_ok>
|
||||||
<header_tooltip_powstat_ko>Machine not ready to work</header_tooltip_powstat_ko>
|
<header_tooltip_powstat_ko>Machine not ready to work</header_tooltip_powstat_ko>
|
||||||
<header_tooltip_powstat_ok>Machine can work</header_tooltip_powstat_ok>
|
<header_tooltip_powstat_ok>Machine can work</header_tooltip_powstat_ok>
|
||||||
<header_tooltip_emergency>Emergency buttons pressed</header_tooltip_emergency>
|
<header_tooltip_emergency>Emergency buttons pressed</header_tooltip_emergency>
|
||||||
<header_tooltip_key>Security key not inserted</header_tooltip_key>
|
<header_tooltip_key>Security key not inserted</header_tooltip_key>
|
||||||
<header_tooltip_power-on>Axes not in power-state</header_tooltip_power-on>
|
<header_tooltip_power-on>Axes not in power-state</header_tooltip_power-on>
|
||||||
<header_tooltip_protections>Safety protections not ok</header_tooltip_protections>
|
<header_tooltip_protections>Safety protections not ok</header_tooltip_protections>
|
||||||
<header_tooltip_settings-mode>Setting-mode active</header_tooltip_settings-mode>
|
<header_tooltip_settings-mode>Setting-mode active</header_tooltip_settings-mode>
|
||||||
<header_tooltip_air-flow>Airflow pressure not ok</header_tooltip_air-flow>
|
<header_tooltip_air-flow>Airflow pressure not ok</header_tooltip_air-flow>
|
||||||
<header_tooltip_zeroing>Axes zeroing needed</header_tooltip_zeroing>
|
<header_tooltip_zeroing>Axes zeroing needed</header_tooltip_zeroing>
|
||||||
<modal_load_program_empty_folder>Empty Folder</modal_load_program_empty_folder>
|
<modal_load_program_empty_folder>Empty Folder</modal_load_program_empty_folder>
|
||||||
<alarm_history_label_date_timestamp>Added in %s at %s</alarm_history_label_date_timestamp>
|
<alarm_history_label_date_timestamp>Added in %s at %s</alarm_history_label_date_timestamp>
|
||||||
<alarm_history_btn_save_note>Save</alarm_history_btn_save_note>
|
<alarm_history_btn_save_note>Save</alarm_history_btn_save_note>
|
||||||
<contactinfo_lbl_assistance_name>Customer Care Info:</contactinfo_lbl_assistance_name>
|
<contactinfo_lbl_assistance_name>Customer Care Info:</contactinfo_lbl_assistance_name>
|
||||||
<contactinfo_lbl_qrdescription>For more information click on the symbol below or scan it the code with your phone:</contactinfo_lbl_qrdescription>
|
<contactinfo_lbl_qrdescription>For more information click on the symbol below or scan it the code with your phone:</contactinfo_lbl_qrdescription>
|
||||||
<contactinfo_btn_reloadfile>Reload from file</contactinfo_btn_reloadfile>
|
<contactinfo_btn_reloadfile>Reload from file</contactinfo_btn_reloadfile>
|
||||||
<contactinfo_btn_showcmsdata>Show CMS data</contactinfo_btn_showcmsdata>
|
<contactinfo_btn_showcmsdata>Show CMS data</contactinfo_btn_showcmsdata>
|
||||||
<contactinfo_btn_openinbrowser>Open In Browser</contactinfo_btn_openinbrowser>
|
<contactinfo_btn_openinbrowser>Open In Browser</contactinfo_btn_openinbrowser>
|
||||||
<contactinfo_error_customer_configfile>Error in file "C:\CMS\ContactInfo.xml"</contactinfo_error_customer_configfile>
|
<contactinfo_error_customer_configfile>Error in file "C:\CMS\ContactInfo.xml"</contactinfo_error_customer_configfile>
|
||||||
<create_maintenance_lbl_machine>Machine</create_maintenance_lbl_machine>
|
<create_maintenance_lbl_machine>Machine</create_maintenance_lbl_machine>
|
||||||
<maintenance_machine_timer>Machine-timer</maintenance_machine_timer>
|
<maintenance_machine_timer>Machine-timer</maintenance_machine_timer>
|
||||||
<maintenance_remaining>Remaining time</maintenance_remaining>
|
<maintenance_remaining>Remaining time</maintenance_remaining>
|
||||||
<maintenance_interval_timer>Interval</maintenance_interval_timer>
|
<maintenance_interval_timer>Interval</maintenance_interval_timer>
|
||||||
<maintenance_status>Status</maintenance_status>
|
<maintenance_status>Status</maintenance_status>
|
||||||
<maintenance_btn_showhistory>Show History</maintenance_btn_showhistory>
|
<maintenance_btn_showhistory>Show History</maintenance_btn_showhistory>
|
||||||
<history_maintenance_lbl_title_window>History of performed-maintenances</history_maintenance_lbl_title_window>
|
<history_maintenance_lbl_title_window>History of performed-maintenances</history_maintenance_lbl_title_window>
|
||||||
<history_maintenance_table_header_date>Data</history_maintenance_table_header_date>
|
<history_maintenance_table_header_date>Data</history_maintenance_table_header_date>
|
||||||
<history_maintenance_table_header_user>User</history_maintenance_table_header_user>
|
<history_maintenance_table_header_user>User</history_maintenance_table_header_user>
|
||||||
<history_maintenance_table_header_counter>Counter</history_maintenance_table_header_counter>
|
<history_maintenance_table_header_counter>Counter</history_maintenance_table_header_counter>
|
||||||
<maintenance_exp_date>Expires</maintenance_exp_date>
|
<maintenance_exp_date>Expires</maintenance_exp_date>
|
||||||
<label_no_recipe>No recipe loaded</label_no_recipe>
|
<label_no_recipe>No recipe loaded</label_no_recipe>
|
||||||
<modal_title_edit_note>Recipe notes</modal_title_edit_note>
|
<modal_title_edit_note>Recipe notes</modal_title_edit_note>
|
||||||
<modal_recipe_note>Notes of the recipe</modal_recipe_note>
|
<modal_recipe_note>Notes of the recipe</modal_recipe_note>
|
||||||
<recipe_save>Save</recipe_save>
|
<recipe_save>Save</recipe_save>
|
||||||
<recipe_saveas_button>Save as</recipe_saveas_button>
|
<recipe_saveas_button>Save as</recipe_saveas_button>
|
||||||
<recipe_saveas>Save as new recipe</recipe_saveas>
|
<recipe_saveas>Save as new recipe</recipe_saveas>
|
||||||
<recipe_change_note>Edit recipe notes</recipe_change_note>
|
<recipe_change_note>Edit recipe notes</recipe_change_note>
|
||||||
<modal_title_save_as>Save as new recipe</modal_title_save_as>
|
<modal_title_save_as>Save as new recipe</modal_title_save_as>
|
||||||
<modal_confirm_save_recipe>Do you confirm that you want to overwrite the recipe?</modal_confirm_save_recipe>
|
<modal_confirm_save_recipe>Do you confirm that you want to overwrite the recipe?</modal_confirm_save_recipe>
|
||||||
<modal_title_duplicate_recipe>Duplicate recipe</modal_title_duplicate_recipe>
|
<modal_title_duplicate_recipe>Duplicate recipe</modal_title_duplicate_recipe>
|
||||||
<folder_name>Folder name</folder_name>
|
<folder_name>Folder name</folder_name>
|
||||||
<recipe_name>Recipe name</recipe_name>
|
<recipe_name>Recipe name</recipe_name>
|
||||||
<cancel>Cancel</cancel>
|
<cancel>Cancel</cancel>
|
||||||
<confirm>Confirm</confirm>
|
<confirm>Confirm</confirm>
|
||||||
<modal_load_program_lbl_sheet_x>Sheet size X:</modal_load_program_lbl_sheet_x>
|
<modal_load_program_lbl_sheet_x>Sheet size X:</modal_load_program_lbl_sheet_x>
|
||||||
<modal_load_program_lbl_sheet_y>Sheet size Y:</modal_load_program_lbl_sheet_y>
|
<modal_load_program_lbl_sheet_y>Sheet size Y:</modal_load_program_lbl_sheet_y>
|
||||||
<modal_load_program_lbl_sheet_z>Sheet tickness:</modal_load_program_lbl_sheet_z>
|
<modal_load_program_lbl_sheet_z>Sheet tickness:</modal_load_program_lbl_sheet_z>
|
||||||
<modal_load_program_lbl_notes>Notes:</modal_load_program_lbl_notes>
|
<modal_load_program_lbl_notes>Notes:</modal_load_program_lbl_notes>
|
||||||
<modal_confirm_delete_recipe>Do you confirm that you want to delete the recipe?</modal_confirm_delete_recipe>
|
<modal_confirm_delete_recipe>Do you confirm that you want to delete the recipe?</modal_confirm_delete_recipe>
|
||||||
<modal_load_program_lbl_box_selected_folder>Selected folder:</modal_load_program_lbl_box_selected_folder>
|
<modal_load_program_lbl_box_selected_folder>Selected folder:</modal_load_program_lbl_box_selected_folder>
|
||||||
<modal_load_program_lbl_box_operations>Allowed actions:</modal_load_program_lbl_box_operations>
|
<modal_load_program_lbl_box_operations>Allowed actions:</modal_load_program_lbl_box_operations>
|
||||||
<modal_load_program_btn_upload_recipe>Load and activate recipe</modal_load_program_btn_upload_recipe>
|
<modal_load_program_btn_upload_recipe>Load and activate recipe</modal_load_program_btn_upload_recipe>
|
||||||
<setup_lbl_title>Setup</setup_lbl_title>
|
<setup_lbl_title>Setup</setup_lbl_title>
|
||||||
<lbl_recipe_overview_general>Dimensions</lbl_recipe_overview_general>
|
<lbl_recipe_overview_general>Dimensions</lbl_recipe_overview_general>
|
||||||
<lbl_recipe_overview_positions>Position & Speed</lbl_recipe_overview_positions>
|
<lbl_recipe_overview_positions>Position & Speed</lbl_recipe_overview_positions>
|
||||||
<lbl_recipe_overview_cycle>Cycle</lbl_recipe_overview_cycle>
|
<lbl_recipe_overview_cycle>Cycle</lbl_recipe_overview_cycle>
|
||||||
<lbl_recipe_overview_heats>Heaters</lbl_recipe_overview_heats>
|
<lbl_recipe_overview_heats>Heaters</lbl_recipe_overview_heats>
|
||||||
<lbl_recipe_overview_pyrometer>Pyrometer</lbl_recipe_overview_pyrometer>
|
<lbl_recipe_overview_pyrometer>Pyrometer</lbl_recipe_overview_pyrometer>
|
||||||
<lbl_recipe_overview_drawing>Drawing</lbl_recipe_overview_drawing>
|
<lbl_recipe_overview_drawing>Drawing</lbl_recipe_overview_drawing>
|
||||||
<lbl_recipe_overview_upperplate>Upperplate</lbl_recipe_overview_upperplate>
|
<lbl_recipe_overview_upperplate>Upperplate</lbl_recipe_overview_upperplate>
|
||||||
<lbl_recipe_overview_cooling>Cooling</lbl_recipe_overview_cooling>
|
<lbl_recipe_overview_cooling>Cooling</lbl_recipe_overview_cooling>
|
||||||
<lbl_recipe_overview_vacuum>Vacuum</lbl_recipe_overview_vacuum>
|
<lbl_recipe_overview_vacuum>Vacuum</lbl_recipe_overview_vacuum>
|
||||||
<lbl_recipe_overview_extraction>Extraction</lbl_recipe_overview_extraction>
|
<lbl_recipe_overview_extraction>Extraction</lbl_recipe_overview_extraction>
|
||||||
<lbl_recipe_overview_options>Options</lbl_recipe_overview_options>
|
<lbl_recipe_overview_options>Options</lbl_recipe_overview_options>
|
||||||
<process-heating>heating</process-heating>
|
<process-heating>heating</process-heating>
|
||||||
<process-forming>Forming</process-forming>
|
<process-forming>Forming</process-forming>
|
||||||
<process-extraction>Extraction</process-extraction>
|
<process-extraction>Extraction</process-extraction>
|
||||||
<preferred-softkeys>Preferred softkeys</preferred-softkeys>
|
<preferred-softkeys>Preferred softkeys</preferred-softkeys>
|
||||||
<progr-preriscaldo_lbl_title>Pre-heating programming</progr-preriscaldo_lbl_title>
|
<progr-preriscaldo_lbl_title>Pre-heating programming</progr-preriscaldo_lbl_title>
|
||||||
<history-item_warmup>Heating time</history-item_warmup>
|
<history-item_warmup>Heating time</history-item_warmup>
|
||||||
<history-item_vacuum>Vacuum</history-item_vacuum>
|
<history-item_vacuum>Vacuum</history-item_vacuum>
|
||||||
<history-item_cycletime>Net cycle time</history-item_cycletime>
|
<history-item_cycletime>Net cycle time</history-item_cycletime>
|
||||||
<dashboard-timing-start>Start</dashboard-timing-start>
|
<dashboard-timing-start>Start</dashboard-timing-start>
|
||||||
<dashboard-timing-elapsed>Elapsed time</dashboard-timing-elapsed>
|
<dashboard-timing-elapsed>Elapsed time</dashboard-timing-elapsed>
|
||||||
<dashboard-timing-end>End</dashboard-timing-end>
|
<dashboard-timing-end>End</dashboard-timing-end>
|
||||||
<remainging_days>dd</remainging_days>
|
<remainging_days>dd</remainging_days>
|
||||||
<dashboard-setpoint>Set point</dashboard-setpoint>
|
<dashboard-setpoint>Set point</dashboard-setpoint>
|
||||||
<dashboard-remaining-time>Remaining Time</dashboard-remaining-time>
|
<dashboard-remaining-time>Remaining Time</dashboard-remaining-time>
|
||||||
<dashboard-piece-hours>Piece/Hours</dashboard-piece-hours>
|
<dashboard-piece-hours>Piece/Hours</dashboard-piece-hours>
|
||||||
<dashboard-time-cycle>Time/Cycle</dashboard-time-cycle>
|
<dashboard-time-cycle>Time/Cycle</dashboard-time-cycle>
|
||||||
<run_auto>Auto</run_auto>
|
<run_auto>Auto</run_auto>
|
||||||
<run_manual>Manual</run_manual>
|
<run_manual>Manual</run_manual>
|
||||||
<mould>Mould</mould>
|
<mould>Mould</mould>
|
||||||
<sheet>Sheet</sheet>
|
<sheet>Sheet</sheet>
|
||||||
<plate>Plate</plate>
|
<plate>Plate</plate>
|
||||||
<upperplate>Upperplate</upperplate>
|
<upperplate>Upperplate</upperplate>
|
||||||
<Frame>Frame</Frame>
|
<Frame>Frame</Frame>
|
||||||
<formatoinfo_lbl_title>Dimensions</formatoinfo_lbl_title>
|
<formatoinfo_lbl_title>Dimensions</formatoinfo_lbl_title>
|
||||||
<position_upperplate>Upperplate lowering</position_upperplate>
|
<position_upperplate>Upperplate lowering</position_upperplate>
|
||||||
<position_frame>Frame lowering</position_frame>
|
<position_frame>Frame lowering</position_frame>
|
||||||
<position_mould>Mould rising</position_mould>
|
<position_mould>Mould rising</position_mould>
|
||||||
<cycle>Thermoforming cycle</cycle>
|
<cycle>Thermoforming cycle</cycle>
|
||||||
<loader>Loader</loader>
|
<loader>Loader</loader>
|
||||||
<cycle_crystallisation>Crystallization</cycle_crystallisation>
|
<cycle_crystallisation>Crystallization</cycle_crystallisation>
|
||||||
<acrilic_frame>Frame for acrylic cycle</acrilic_frame>
|
<acrilic_frame>Frame for acrylic cycle</acrilic_frame>
|
||||||
<additional_heating>Additional upper heating</additional_heating>
|
<additional_heating>Additional upper heating</additional_heating>
|
||||||
<upperheaters>Upper heaters</upperheaters>
|
<upperheaters>Upper heaters</upperheaters>
|
||||||
<lowerheaters>Lower heaters</lowerheaters>
|
<lowerheaters>Lower heaters</lowerheaters>
|
||||||
<decomsustain>Sustenance / Decompression</decomsustain>
|
<decomsustain>Sustenance / Decompression</decomsustain>
|
||||||
<warmers_select_all>All</warmers_select_all>
|
<warmers_select_all>All</warmers_select_all>
|
||||||
<warmers_select_none>None</warmers_select_none>
|
<warmers_select_none>None</warmers_select_none>
|
||||||
<warmers_power>Power Management</warmers_power>
|
<warmers_power>Power Management</warmers_power>
|
||||||
<warmers_select_power>Select....</warmers_select_power>
|
<warmers_select_power>Select....</warmers_select_power>
|
||||||
<warmers_autocomposition>Auto-composition</warmers_autocomposition>
|
<warmers_autocomposition>Auto-composition</warmers_autocomposition>
|
||||||
<upperthermoregulator>Upper heating thermoregulation</upperthermoregulator>
|
<upperthermoregulator>Upper heating thermoregulation</upperthermoregulator>
|
||||||
<lowerthermoregulator>Lower heating thermoregulation</lowerthermoregulator>
|
<lowerthermoregulator>Lower heating thermoregulation</lowerthermoregulator>
|
||||||
<pyrometer>Pyrometer</pyrometer>
|
<pyrometer>Pyrometer</pyrometer>
|
||||||
<drawinginfo_lbl_title>Drawing</drawinginfo_lbl_title>
|
<drawinginfo_lbl_title>Drawing</drawinginfo_lbl_title>
|
||||||
<upperplate_cycle>Upperplate Cycle</upperplate_cycle>
|
<upperplate_cycle>Upperplate Cycle</upperplate_cycle>
|
||||||
<upperplate_air>Upperplate Air</upperplate_air>
|
<upperplate_air>Upperplate Air</upperplate_air>
|
||||||
<upperplate_vacuum>Upperplate vacuum</upperplate_vacuum>
|
<upperplate_vacuum>Upperplate vacuum</upperplate_vacuum>
|
||||||
<upperplate_extraction>Upperplate extraction</upperplate_extraction>
|
<upperplate_extraction>Upperplate extraction</upperplate_extraction>
|
||||||
<blowers>Blowers</blowers>
|
<blowers>Blowers</blowers>
|
||||||
<nebulizers>Nebulizers</nebulizers>
|
<nebulizers>Nebulizers</nebulizers>
|
||||||
<telescopic>Telescopics</telescopic>
|
<telescopic>Telescopics</telescopic>
|
||||||
<shutters>Shutters</shutters>
|
<shutters>Shutters</shutters>
|
||||||
<main_vacuum>Main vacuum</main_vacuum>
|
<main_vacuum>Main vacuum</main_vacuum>
|
||||||
<direct_vacuum>Direct vacuum</direct_vacuum>
|
<direct_vacuum>Direct vacuum</direct_vacuum>
|
||||||
<aux_vacuum>Aux vacuum</aux_vacuum>
|
<aux_vacuum>Aux vacuum</aux_vacuum>
|
||||||
<pre_vacuum>Pre vacuum</pre_vacuum>
|
<pre_vacuum>Pre vacuum</pre_vacuum>
|
||||||
<main_extraction>Main extraction</main_extraction>
|
<main_extraction>Main extraction</main_extraction>
|
||||||
<aux_extraction>Aux extraction</aux_extraction>
|
<aux_extraction>Aux extraction</aux_extraction>
|
||||||
<modal_options_no_more_parameters>No more parameters to edit</modal_options_no_more_parameters>
|
<modal_options_no_more_parameters>No more parameters to edit</modal_options_no_more_parameters>
|
||||||
<thermoregulators>Thermoregulators</thermoregulators>
|
<thermoregulators>Thermoregulators</thermoregulators>
|
||||||
<undercut_mould>Mould undercuts</undercut_mould>
|
<undercut_mould>Mould undercuts</undercut_mould>
|
||||||
<udercut_uppermould>Upperplate undercuts</udercut_uppermould>
|
<udercut_uppermould>Upperplate undercuts</udercut_uppermould>
|
||||||
<warmers_selection>Heater selecion</warmers_selection>
|
<warmers_selection>Heater selecion</warmers_selection>
|
||||||
<opzioniinfo_lbl_title>Options</opzioniinfo_lbl_title>
|
<opzioniinfo_lbl_title>Options</opzioniinfo_lbl_title>
|
||||||
<history_item_venttime>Cooling time</history_item_venttime>
|
<history_item_venttime>Cooling time</history_item_venttime>
|
||||||
<history_item_cycletimegross>Gross cycle time</history_item_cycletimegross>
|
<history_item_cycletimegross>Gross cycle time</history_item_cycletimegross>
|
||||||
<history_item_tempstampo>Mould T.</history_item_tempstampo>
|
<history_item_tempstampo>Mould T.</history_item_tempstampo>
|
||||||
<history_item_materialtempendwarm>Material T. End-heating</history_item_materialtempendwarm>
|
<history_item_materialtempendwarm>Material T. End-heating</history_item_materialtempendwarm>
|
||||||
<history_item_materialtempendvent>Material T. End-cooling</history_item_materialtempendvent>
|
<history_item_materialtempendvent>Material T. End-cooling</history_item_materialtempendvent>
|
||||||
<history_item_vacuumtime>Vacuum time</history_item_vacuumtime>
|
<history_item_vacuumtime>Vacuum time</history_item_vacuumtime>
|
||||||
<history_item_mouldenergyin>Net cycle energy</history_item_mouldenergyin>
|
<history_item_mouldenergyin>Net cycle energy</history_item_mouldenergyin>
|
||||||
<history_item_mouldenergyout>Gross cycle energy</history_item_mouldenergyout>
|
<history_item_mouldenergyout>Gross cycle energy</history_item_mouldenergyout>
|
||||||
<footer_tooltip_ricetta>Load recype</footer_tooltip_ricetta>
|
<footer_tooltip_ricetta>Load recype</footer_tooltip_ricetta>
|
||||||
<footer_tooltip_setup>Setup recype</footer_tooltip_setup>
|
<footer_tooltip_setup>Setup recype</footer_tooltip_setup>
|
||||||
<footer_tooltip_progr_prerisc>Pre-Heating</footer_tooltip_progr_prerisc>
|
<footer_tooltip_progr_prerisc>Pre-Heating</footer_tooltip_progr_prerisc>
|
||||||
<footer_tooltip_dashboard>Dashboard</footer_tooltip_dashboard>
|
<footer_tooltip_dashboard>Dashboard</footer_tooltip_dashboard>
|
||||||
<gauge_potenza>Power</gauge_potenza>
|
<gauge_potenza>Power</gauge_potenza>
|
||||||
<gauge_vuoto>Vacuum</gauge_vuoto>
|
<gauge_vuoto>Vacuum</gauge_vuoto>
|
||||||
<gauge_aria>Air</gauge_aria>
|
<gauge_aria>Air</gauge_aria>
|
||||||
<lbl_btn_preheating_all>Select All Days</lbl_btn_preheating_all>
|
<lbl_btn_preheating_all>Select All Days</lbl_btn_preheating_all>
|
||||||
<lbl_btn_preheating_non>Deselect All Days</lbl_btn_preheating_non>
|
<lbl_btn_preheating_non>Deselect All Days</lbl_btn_preheating_non>
|
||||||
<softkey_confirm>Are you sure?</softkey_confirm>
|
<softkey_confirm>Are you sure?</softkey_confirm>
|
||||||
<confirm_request_confirm>Confirm</confirm_request_confirm>
|
<confirm_request_confirm>Confirm</confirm_request_confirm>
|
||||||
<confirm_request_cancel>Cancel</confirm_request_cancel>
|
<confirm_request_cancel>Cancel</confirm_request_cancel>
|
||||||
<lbl_loader_load_area>Loading area</lbl_loader_load_area>
|
<lbl_loader_load_area>Loading area</lbl_loader_load_area>
|
||||||
<avvio_prod_lbl_title>Start Production</avvio_prod_lbl_title>
|
<avvio_prod_lbl_title>Start Production</avvio_prod_lbl_title>
|
||||||
<new_production>New production lot</new_production>
|
<new_production>New production lot</new_production>
|
||||||
<warmup_cycles>Warmup cycles</warmup_cycles>
|
<warmup_cycles>Warmup cycles</warmup_cycles>
|
||||||
<warmup_cycles_pieces>Number of cycles:</warmup_cycles_pieces>
|
<warmup_cycles_pieces>Number of cycles:</warmup_cycles_pieces>
|
||||||
<modal_start_button>Start</modal_start_button>
|
<modal_start_button>Start</modal_start_button>
|
||||||
<edit_prod_lbl_title>Edit Production</edit_prod_lbl_title>
|
<edit_prod_lbl_title>Edit Production</edit_prod_lbl_title>
|
||||||
<production_management>Production lot</production_management>
|
<production_management>Production lot</production_management>
|
||||||
<production_enabling>Set the max number of pieces</production_enabling>
|
<production_enabling>Set the max number of pieces</production_enabling>
|
||||||
<mock_pieces>Number of pieces:</mock_pieces>
|
<mock_pieces>Number of pieces:</mock_pieces>
|
||||||
<heats_alert_thermocamera_not_enabled>Thermoprophet not enabled</heats_alert_thermocamera_not_enabled>
|
<heats_alert_thermocamera_not_enabled>Thermoprophet not enabled</heats_alert_thermocamera_not_enabled>
|
||||||
<thermoprophet>Thermoprophet</thermoprophet>
|
<thermoprophet>Thermoprophet</thermoprophet>
|
||||||
<thermocamera_mode>Thermoprophet mode</thermocamera_mode>
|
<thermocamera_mode>Thermoprophet mode</thermocamera_mode>
|
||||||
<warmers_showcamera>Show Camera Image</warmers_showcamera>
|
<warmers_showcamera>Show Camera Image</warmers_showcamera>
|
||||||
<warmers_enable>Enable/Disable Management</warmers_enable>
|
<warmers_enable>Enable/Disable Management</warmers_enable>
|
||||||
<warmers_enabletemp>Enable selected</warmers_enabletemp>
|
<warmers_enabletemp>Enable selected</warmers_enabletemp>
|
||||||
<warmers_disabletemp>Disable selected</warmers_disabletemp>
|
<warmers_disabletemp>Disable selected</warmers_disabletemp>
|
||||||
<warmers_temperature>Temps Management</warmers_temperature>
|
<warmers_temperature>Temps Management</warmers_temperature>
|
||||||
<warmers_set_temperature>Set all temperatures</warmers_set_temperature>
|
<warmers_set_temperature>Set all temperatures</warmers_set_temperature>
|
||||||
<thermocamera_on_off>Thermoprophet run</thermocamera_on_off>
|
<thermocamera_on_off>Thermoprophet run</thermocamera_on_off>
|
||||||
<modal_title_backup>Recipes backup</modal_title_backup>
|
<modal_title_backup>Recipes backup</modal_title_backup>
|
||||||
<select_devices>Select devices</select_devices>
|
<select_devices>Select devices</select_devices>
|
||||||
<warmers_clear_temperature>Clear all temperatures</warmers_clear_temperature>
|
<warmers_clear_temperature>Clear all temperatures</warmers_clear_temperature>
|
||||||
<heats_alert_thermocamera_enabled>Thermoprophet enabled</heats_alert_thermocamera_enabled>
|
<heats_alert_thermocamera_enabled>Thermoprophet enabled</heats_alert_thermocamera_enabled>
|
||||||
|
<modal_resistance_info>Warmer Info</modal_resistance_info>
|
||||||
|
<resistance_info_id_group>Group ID:</resistance_info_id_group>
|
||||||
|
<resistance_info_id_reflector>Reflector ID:</resistance_info_id_reflector>
|
||||||
|
<resistance_info_id_output>Output ID:</resistance_info_id_output>
|
||||||
|
<resistance_info_wire_broken>Heater / Wire broken:</resistance_info_wire_broken>
|
||||||
|
<resistance_info_fuse_blown>Fuse Blown:</resistance_info_fuse_blown>
|
||||||
|
<resistance_info_short_triac>Shortest Triac:</resistance_info_short_triac>
|
||||||
|
<resistance_info_amp_low>Amp too low:</resistance_info_amp_low>
|
||||||
|
<resistance_info_phase_missing>One or more phase are missing:</resistance_info_phase_missing>
|
||||||
|
<resistance_info_ssr_overload>SSR overload:</resistance_info_ssr_overload>
|
||||||
|
<resistance_info_frequency_not_ok>Frequency not 49..51 or 59..61 Hz:</resistance_info_frequency_not_ok>
|
||||||
|
<underthehood_label_input>Input</underthehood_label_input>
|
||||||
|
<underthehood_label_output>Output</underthehood_label_output>
|
||||||
|
<underthehood_label_pinned>Pinned</underthehood_label_pinned>
|
||||||
|
<underthehood_label_page>Page</underthehood_label_page>
|
||||||
|
<underthehood_label_wire>Wire</underthehood_label_wire>
|
||||||
|
<underthehood_label_profinet>Profinet</underthehood_label_profinet>
|
||||||
|
<underthehood_label_desc>Description</underthehood_label_desc>
|
||||||
|
<underthehood_label_val>Value</underthehood_label_val>
|
||||||
|
<underthehood_label_force>Force</underthehood_label_force>
|
||||||
|
<underthehood_label_io>IO Manager</underthehood_label_io>
|
||||||
|
<underthehood_label_loga>Log - Automatic cycle</underthehood_label_loga>
|
||||||
|
<underthehood_label_logm>Log - Sheets</underthehood_label_logm>
|
||||||
|
<underthehood_label_assi>Axes Manager</underthehood_label_assi>
|
||||||
|
<underthehood_label_riscaldi>Warmers Manager</underthehood_label_riscaldi>
|
||||||
|
<underthehood_btn_details>Details</underthehood_btn_details>
|
||||||
|
<underthehood_label_cell>Cell</underthehood_label_cell>
|
||||||
|
<underthehood_label_reflector>Reflector</underthehood_label_reflector>
|
||||||
|
<underthehood_label_channel>Channel</underthehood_label_channel>
|
||||||
|
<underthehood_label_board>Board</underthehood_label_board>
|
||||||
|
<underthehood_label_currenta>Current [A]</underthehood_label_currenta>
|
||||||
|
<underthehood_label_currentp>Power [%%]</underthehood_label_currentp>
|
||||||
|
<underthehood_label_status>Status</underthehood_label_status>
|
||||||
|
<underthehood_label_date>Date</underthehood_label_date>
|
||||||
|
<underthehood_label_message>Message</underthehood_label_message>
|
||||||
|
<underthehood_btn_zero>Zero</underthehood_btn_zero>
|
||||||
|
<underthehood_label_axis_enabled>Enabled</underthehood_label_axis_enabled>
|
||||||
|
<underthehood_label_axes>Axes</underthehood_label_axes>
|
||||||
|
<underthehood_label_position>Position</underthehood_label_position>
|
||||||
|
<underthehood_label_speed>Speed</underthehood_label_speed>
|
||||||
|
<underthehood_label_torque>Torque</underthehood_label_torque>
|
||||||
|
<underthehood_label_errorcode>Error Code</underthehood_label_errorcode>
|
||||||
|
<underthehood_label_motion>Motion Ph.</underthehood_label_motion>
|
||||||
|
<underthehood_btn_align>Align</underthehood_btn_align>
|
||||||
|
<underthehood_btn_probe>Probe</underthehood_btn_probe>
|
||||||
|
<underthehood_btn_setslaves>Set slaves position</underthehood_btn_setslaves>
|
||||||
|
<cmsconnect_info_lbl_title>CMS-Connect Manager</cmsconnect_info_lbl_title>
|
||||||
|
<cmsconnect_info_menu_conn_status>Connection status</cmsconnect_info_menu_conn_status>
|
||||||
|
<cmsconnect_info_menu_networkconfig>Network configuration</cmsconnect_info_menu_networkconfig>
|
||||||
|
<cmsconnect_info_menu_proxyconfig>Proxy configuration</cmsconnect_info_menu_proxyconfig>
|
||||||
|
<cmsconnect_info_menu_activation>Activation</cmsconnect_info_menu_activation>
|
||||||
|
<cmsconnect_info_menu_messages>Messages</cmsconnect_info_menu_messages>
|
||||||
|
<cmsconnect_info_menu_reboot>Reboot</cmsconnect_info_menu_reboot>
|
||||||
|
<cmsconnect_info_lbl_url>Url</cmsconnect_info_lbl_url>
|
||||||
|
<cmsconnect_info_lbl_port>Port</cmsconnect_info_lbl_port>
|
||||||
|
<cmsconnect_info_btn_run_conn_test>Run test</cmsconnect_info_btn_run_conn_test>
|
||||||
|
<star_keyboard_softkeys>Softkey in console</star_keyboard_softkeys>
|
||||||
|
<footer_tooltip_under_hood>Unther the Hood</footer_tooltip_under_hood>
|
||||||
|
<underthehood_btn_move>Move</underthehood_btn_move>
|
||||||
|
<modal_confirm_mode_manual>Are you sure you want to switch to manual mode?</modal_confirm_mode_manual>
|
||||||
|
<cmsconnect_info_lbl_dhcp>Dhcp</cmsconnect_info_lbl_dhcp>
|
||||||
|
<cmsconnect_info_lbl_netmask>Netmask</cmsconnect_info_lbl_netmask>
|
||||||
|
<cmsconnect_info_lbl_dgateway>Default Gateway</cmsconnect_info_lbl_dgateway>
|
||||||
|
<cmsconnect_info_lbl_dns>Dns</cmsconnect_info_lbl_dns>
|
||||||
|
<cmsconnect_info_lbl_pref>Prefixes</cmsconnect_info_lbl_pref>
|
||||||
|
<cmsconnect_info_lbl_pref_placeholder>add a prefix in a new line</cmsconnect_info_lbl_pref_placeholder>
|
||||||
|
<cmsconnect_info_lbl_proxy>Proxy</cmsconnect_info_lbl_proxy>
|
||||||
|
<cmsconnect_info_lbl_ip>Ip</cmsconnect_info_lbl_ip>
|
||||||
|
<cmsconnect_info_lbl_username>Username</cmsconnect_info_lbl_username>
|
||||||
|
<cmsconnect_info_lbl_password>Password</cmsconnect_info_lbl_password>
|
||||||
|
<cmsconnect_info_lbl_proxy_filters>Proxy filters</cmsconnect_info_lbl_proxy_filters>
|
||||||
|
<cmsconnect_info_lbl_dns_placeholder>add an address in a new line</cmsconnect_info_lbl_dns_placeholder>
|
||||||
|
<cmsconnect_info_btn_load>Load</cmsconnect_info_btn_load>
|
||||||
|
<cmsconnect_info_btn_save>Save</cmsconnect_info_btn_save>
|
||||||
|
<connect_qrcode_activation_title>Scan the QRCode</connect_qrcode_activation_title>
|
||||||
|
<connect_link_activation_title>and type the code:</connect_link_activation_title>
|
||||||
|
<messages_lbl_create_message>Message</messages_lbl_create_message>
|
||||||
|
<cmsconnect_info_messages_duration>Duration</cmsconnect_info_messages_duration>
|
||||||
|
<cmsconnect_info_messages_department>Department</cmsconnect_info_messages_department>
|
||||||
|
<cmsconnect_info_messages_department_maintenance>Maintenance</cmsconnect_info_messages_department_maintenance>
|
||||||
|
<cmsconnect_info_messages_department_production>Production</cmsconnect_info_messages_department_production>
|
||||||
|
<cmsconnect_info_btn_send_message>Send Message</cmsconnect_info_btn_send_message>
|
||||||
|
<cmsconnect_info_btn_reboot>Reboot</cmsconnect_info_btn_reboot>
|
||||||
|
<modal_axis_info>Axis Info</modal_axis_info>
|
||||||
|
<axis_info_id>Id:</axis_info_id>
|
||||||
|
<axis_info_name>Name:</axis_info_name>
|
||||||
|
<axis_info_torque>In Torque:</axis_info_torque>
|
||||||
|
<axis_info_gantry>Gantry:</axis_info_gantry>
|
||||||
|
<axis_info_moving>Is Moving:</axis_info_moving>
|
||||||
|
<axis_info_zero>Zeroed:</axis_info_zero>
|
||||||
|
<axis_info_position>In Position:</axis_info_position>
|
||||||
|
<axis_info_error>In Error:</axis_info_error>
|
||||||
|
<axis_info_brakealm>Brake Test Alarm:</axis_info_brakealm>
|
||||||
|
<bitselect_select_none>None</bitselect_select_none>
|
||||||
|
<bitselect_select_all>All</bitselect_select_all>
|
||||||
</root>
|
</root>
|
||||||
@@ -100,6 +100,21 @@ namespace Thermo.Active.Utils
|
|||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Conversion string --> TACT_IO_TYPE
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="strValue"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static TACT_IO_TYPE GetTActIO_Type(string strValue)
|
||||||
|
{
|
||||||
|
TACT_IO_TYPE answ = TACT_IO_TYPE.ND;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
answ = (TACT_IO_TYPE)Enum.Parse(typeof(TACT_IO_TYPE), strValue);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// Conversion string --> TACT_MBLOCK_SECTION
|
/// Conversion string --> TACT_MBLOCK_SECTION
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="strValue"></param>
|
/// <param name="strValue"></param>
|
||||||
|
|||||||
+20
-5
@@ -44,7 +44,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CMS_CORE_Library", "..\cms_
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client2020", "Client2020\Client2020.csproj", "{0780047F-12E4-4FCC-9748-6B23F0FD3711}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client2020", "Client2020\Client2020.csproj", "{0780047F-12E4-4FCC-9748-6B23F0FD3711}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thermo.Active.Thermocamera", "THermo.Active.Thermocamera\Thermo.Active.Thermocamera.csproj", "{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thermo.Active.Thermocamera", "Thermo.Active.Thermocamera\Thermo.Active.Thermocamera.csproj", "{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thermo.Cam.Utils", "Thermo.Cam.Utils\Thermo.Cam.Utils.csproj", "{E4587942-498B-4AA7-9CC9-9304EB2D05C8}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -202,14 +204,14 @@ Global
|
|||||||
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x86.Build.0 = Release|Any CPU
|
{49B04D99-0ECD-4900-86D3-7098D61314D7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.ActiveCfg = Debug|x64
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.Build.0 = Debug|x64
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.ActiveCfg = Debug|x86
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.Build.0 = Debug|x86
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Debug|x86.Build.0 = Debug|x86
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.Build.0 = Release|Any CPU
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.ActiveCfg = Release|x64
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.Build.0 = Release|x64
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.ActiveCfg = Release|x86
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.ActiveCfg = Release|x86
|
||||||
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.Build.0 = Release|x86
|
{4ABF8EEF-2B23-483E-ACDC-53214FE28681}.Release|x86.Build.0 = Release|x86
|
||||||
{0780047F-12E4-4FCC-9748-6B23F0FD3711}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{0780047F-12E4-4FCC-9748-6B23F0FD3711}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
@@ -236,6 +238,18 @@ Global
|
|||||||
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x64.Build.0 = Release|Any CPU
|
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x86.ActiveCfg = Release|Any CPU
|
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x86.Build.0 = Release|Any CPU
|
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -255,6 +269,7 @@ Global
|
|||||||
{49B04D99-0ECD-4900-86D3-7098D61314D7} = {0769EE3C-4259-4C72-97B4-0CCAEBFA7724}
|
{49B04D99-0ECD-4900-86D3-7098D61314D7} = {0769EE3C-4259-4C72-97B4-0CCAEBFA7724}
|
||||||
{0780047F-12E4-4FCC-9748-6B23F0FD3711} = {2F873243-A483-40B6-A0F7-65FC3541A269}
|
{0780047F-12E4-4FCC-9748-6B23F0FD3711} = {2F873243-A483-40B6-A0F7-65FC3541A269}
|
||||||
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD} = {0769EE3C-4259-4C72-97B4-0CCAEBFA7724}
|
{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD} = {0769EE3C-4259-4C72-97B4-0CCAEBFA7724}
|
||||||
|
{E4587942-498B-4AA7-9CC9-9304EB2D05C8} = {0769EE3C-4259-4C72-97B4-0CCAEBFA7724}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {51D459FB-B45B-4A47-984E-46C35F933A82}
|
SolutionGuid = {51D459FB-B45B-4A47-984E-46C35F933A82}
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
@@ -115,6 +115,10 @@
|
|||||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="S7.Net" publicKeyToken="d5812d469e84c693" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-0.8.1.0" newVersion="0.8.1.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
@@ -195,4 +199,10 @@
|
|||||||
</sharedListeners>
|
</sharedListeners>
|
||||||
<trace autoflush="true" />
|
<trace autoflush="true" />
|
||||||
</system.diagnostics>
|
</system.diagnostics>
|
||||||
</configuration>
|
<system.codedom>
|
||||||
|
<compilers>
|
||||||
|
<compiler extension=".cs" language="c#;cs;csharp" warningLevel="4" compilerOptions="/langversion:7.0 /nowarn:1659;1699;1701;612;618" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
<compiler extension=".vb" language="vb;vbs;visualbasic;vbscript" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008,40000,40008 /define:_MYTYPE=\"Web\" /optionInfer+" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||||
|
</compilers>
|
||||||
|
</system.codedom>
|
||||||
|
</configuration>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
using Swashbuckle.Application;
|
using Swashbuckle.Application;
|
||||||
using Swashbuckle.Swagger;
|
using Swashbuckle.Swagger;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
using System.Web.Http;
|
using System.Web.Http;
|
||||||
using System.Web.Http.Description;
|
using System.Web.Http.Description;
|
||||||
|
|
||||||
@@ -33,129 +36,133 @@ namespace Thermo.Active
|
|||||||
//
|
//
|
||||||
c.SingleApiVersion("v1", "ThermoActive");
|
c.SingleApiVersion("v1", "ThermoActive");
|
||||||
|
|
||||||
// If you want the output Swagger docs to be indented properly, enable the "PrettyPrint" option.
|
// If you want the output Swagger docs to be indented properly, enable the "PrettyPrint" option.
|
||||||
//
|
//
|
||||||
//c.PrettyPrint();
|
//c.PrettyPrint();
|
||||||
|
|
||||||
// If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
|
// If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
|
||||||
// In this case, you must provide a lambda that tells Swashbuckle which actions should be
|
// In this case, you must provide a lambda that tells Swashbuckle which actions should be
|
||||||
// included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
|
// included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
|
||||||
// returns an "Info" builder so you can provide additional metadata per API version.
|
// returns an "Info" builder so you can provide additional metadata per API version.
|
||||||
//
|
//
|
||||||
//c.MultipleApiVersions(
|
//c.MultipleApiVersions(
|
||||||
// (apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
|
// (apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
|
||||||
// (vc) =>
|
// (vc) =>
|
||||||
// {
|
// {
|
||||||
// vc.Version("v2", "Swashbuckle Dummy API V2");
|
// vc.Version("v2", "Swashbuckle Dummy API V2");
|
||||||
// vc.Version("v1", "Swashbuckle Dummy API V1");
|
// vc.Version("v1", "Swashbuckle Dummy API V1");
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// You can use "BasicAuth", "ApiKey" or "OAuth2" options to describe security schemes for the API.
|
// You can use "BasicAuth", "ApiKey" or "OAuth2" options to describe security schemes for the API.
|
||||||
// See https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for more details.
|
// See https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for more details.
|
||||||
// NOTE: These only define the schemes and need to be coupled with a corresponding "security" property
|
// NOTE: These only define the schemes and need to be coupled with a corresponding "security" property
|
||||||
// at the document or operation level to indicate which schemes are required for an operation. To do this,
|
// at the document or operation level to indicate which schemes are required for an operation. To do this,
|
||||||
// you'll need to implement a custom IDocumentFilter and/or IOperationFilter to set these properties
|
// you'll need to implement a custom IDocumentFilter and/or IOperationFilter to set these properties
|
||||||
// according to your specific authorization implementation
|
// according to your specific authorization implementation
|
||||||
//
|
//
|
||||||
//c.BasicAuth("basic")
|
//c.BasicAuth("basic")
|
||||||
// .Description("Basic HTTP Authentication");
|
// .Description("Basic HTTP Authentication");
|
||||||
//
|
//
|
||||||
// NOTE: You must also configure 'EnableApiKeySupport' below in the SwaggerUI section
|
// NOTE: You must also configure 'EnableApiKeySupport' below in the SwaggerUI section
|
||||||
//c.ApiKey("apiKey")
|
//c.ApiKey("apiKey")
|
||||||
// .Description("API Key Authentication")
|
// .Description("API Key Authentication")
|
||||||
// .Name("apiKey")
|
// .Name("apiKey")
|
||||||
// .In("header");
|
// .In("header");
|
||||||
//
|
//
|
||||||
//c.OAuth2("oauth2")
|
//c.OAuth2("oauth2")
|
||||||
// .Description("OAuth2 Implicit Grant")
|
// .Description("OAuth2 Implicit Grant")
|
||||||
// .Flow("implicit")
|
// .Flow("implicit")
|
||||||
// .AuthorizationUrl("http://localhost:9000/token")
|
// .AuthorizationUrl("http://localhost:9000/token")
|
||||||
// .TokenUrl("http://localhost:9000/token")
|
// .TokenUrl("http://localhost:9000/token")
|
||||||
// .Scopes(scopes =>
|
// .Scopes(scopes =>
|
||||||
// {
|
// {
|
||||||
// scopes.Add("read", "Read access to protected resources");
|
// scopes.Add("read", "Read access to protected resources");
|
||||||
// scopes.Add("write", "Write access to protected resources");
|
// scopes.Add("write", "Write access to protected resources");
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
|
// Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
|
||||||
//c.IgnoreObsoleteActions();
|
//c.IgnoreObsoleteActions();
|
||||||
|
|
||||||
// Each operation be assigned one or more tags which are then used by consumers for various reasons.
|
// Each operation be assigned one or more tags which are then used by consumers for various reasons.
|
||||||
// For example, the swagger-ui groups operations according to the first tag of each operation.
|
// For example, the swagger-ui groups operations according to the first tag of each operation.
|
||||||
// By default, this will be controller name but you can use the "GroupActionsBy" option to
|
// By default, this will be controller name but you can use the "GroupActionsBy" option to
|
||||||
// override with any value.
|
// override with any value.
|
||||||
//
|
//
|
||||||
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());
|
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());
|
||||||
|
|
||||||
// You can also specify a custom sort order for groups (as defined by "GroupActionsBy") to dictate
|
// You can also specify a custom sort order for groups (as defined by "GroupActionsBy") to dictate
|
||||||
// the order in which operations are listed. For example, if the default grouping is in place
|
// the order in which operations are listed. For example, if the default grouping is in place
|
||||||
// (controller name) and you specify a descending alphabetic sort order, then actions from a
|
// (controller name) and you specify a descending alphabetic sort order, then actions from a
|
||||||
// ProductsController will be listed before those from a CustomersController. This is typically
|
// ProductsController will be listed before those from a CustomersController. This is typically
|
||||||
// used to customize the order of groupings in the swagger-ui.
|
// used to customize the order of groupings in the swagger-ui.
|
||||||
//
|
//
|
||||||
//c.OrderActionGroupsBy(new DescendingAlphabeticComparer());
|
//c.OrderActionGroupsBy(new DescendingAlphabeticComparer());
|
||||||
|
|
||||||
// If you annotate Controllers and API Types with
|
// If you annotate Controllers and API Types with
|
||||||
// Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
|
// Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
|
||||||
// those comments into the generated docs and UI. You can enable this by providing the path to one or
|
// those comments into the generated docs and UI. You can enable this by providing the path to one or
|
||||||
// more Xml comment files.
|
// more Xml comment files.
|
||||||
//
|
//
|
||||||
//c.IncludeXmlComments(GetXmlCommentsPath());
|
//c.IncludeXmlComments(GetXmlCommentsPath());
|
||||||
|
//var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
||||||
|
//var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
||||||
|
//c.IncludeXmlComments(xmlPath);
|
||||||
|
|
||||||
// Swashbuckle makes a best attempt at generating Swagger compliant JSON schemas for the various types
|
// Swashbuckle makes a best attempt at generating Swagger compliant JSON schemas for the various types
|
||||||
// exposed in your API. However, there may be occasions when more control of the output is needed.
|
// exposed in your API. However, there may be occasions when more control of the output is needed.
|
||||||
// This is supported through the "MapType" and "SchemaFilter" options:
|
// This is supported through the "MapType" and "SchemaFilter" options:
|
||||||
//
|
//
|
||||||
// Use the "MapType" option to override the Schema generation for a specific type.
|
// Use the "MapType" option to override the Schema generation for a specific type.
|
||||||
// It should be noted that the resulting Schema will be placed "inline" for any applicable Operations.
|
// It should be noted that the resulting Schema will be placed "inline" for any applicable Operations.
|
||||||
// While Swagger 2.0 supports inline definitions for "all" Schema types, the swagger-ui tool does not.
|
// While Swagger 2.0 supports inline definitions for "all" Schema types, the swagger-ui tool does not.
|
||||||
// It expects "complex" Schemas to be defined separately and referenced. For this reason, you should only
|
// It expects "complex" Schemas to be defined separately and referenced. For this reason, you should only
|
||||||
// use the "MapType" option when the resulting Schema is a primitive or array type. If you need to alter a
|
// use the "MapType" option when the resulting Schema is a primitive or array type. If you need to alter a
|
||||||
// complex Schema, use a Schema filter.
|
// complex Schema, use a Schema filter.
|
||||||
//
|
//
|
||||||
//c.MapType<ProductType>(() => new Schema { type = "integer", format = "int32" });
|
//c.MapType<ProductType>(() => new Schema { type = "integer", format = "int32" });
|
||||||
|
|
||||||
// If you want to post-modify "complex" Schemas once they've been generated, across the board or for a
|
// If you want to post-modify "complex" Schemas once they've been generated, across the board or for a
|
||||||
// specific type, you can wire up one or more Schema filters.
|
// specific type, you can wire up one or more Schema filters.
|
||||||
//
|
//
|
||||||
//c.SchemaFilter<ApplySchemaVendorExtensions>();
|
//c.SchemaFilter<ApplySchemaVendorExtensions>();
|
||||||
|
|
||||||
// In a Swagger 2.0 document, complex types are typically declared globally and referenced by unique
|
// In a Swagger 2.0 document, complex types are typically declared globally and referenced by unique
|
||||||
// Schema Id. By default, Swashbuckle does NOT use the full type name in Schema Ids. In most cases, this
|
// Schema Id. By default, Swashbuckle does NOT use the full type name in Schema Ids. In most cases, this
|
||||||
// works well because it prevents the "implementation detail" of type namespaces from leaking into your
|
// works well because it prevents the "implementation detail" of type namespaces from leaking into your
|
||||||
// Swagger docs and UI. However, if you have multiple types in your API with the same class name, you'll
|
// Swagger docs and UI. However, if you have multiple types in your API with the same class name, you'll
|
||||||
// need to opt out of this behavior to avoid Schema Id conflicts.
|
// need to opt out of this behavior to avoid Schema Id conflicts.
|
||||||
//
|
//
|
||||||
//c.UseFullTypeNameInSchemaIds();
|
//c.UseFullTypeNameInSchemaIds();
|
||||||
|
|
||||||
// Alternatively, you can provide your own custom strategy for inferring SchemaId's for
|
// Alternatively, you can provide your own custom strategy for inferring SchemaId's for
|
||||||
// describing "complex" types in your API.
|
// describing "complex" types in your API.
|
||||||
//
|
//
|
||||||
//c.SchemaId(t => t.FullName.Contains('`') ? t.FullName.Substring(0, t.FullName.IndexOf('`')) : t.FullName);
|
//c.SchemaId(t => t.FullName.Contains('`') ? t.FullName.Substring(0, t.FullName.IndexOf('`')) : t.FullName);
|
||||||
|
|
||||||
// Set this flag to omit schema property descriptions for any type properties decorated with the
|
// Set this flag to omit schema property descriptions for any type properties decorated with the
|
||||||
// Obsolete attribute
|
// Obsolete attribute
|
||||||
//c.IgnoreObsoleteProperties();
|
//c.IgnoreObsoleteProperties();
|
||||||
|
|
||||||
// In accordance with the built in JsonSerializer, Swashbuckle will, by default, describe enums as integers.
|
// In accordance with the built in JsonSerializer, Swashbuckle will, by default, describe enums as integers.
|
||||||
// You can change the serializer behavior by configuring the StringToEnumConverter globally or for a given
|
// You can change the serializer behavior by configuring the StringToEnumConverter globally or for a given
|
||||||
// enum type. Swashbuckle will honor this change out-of-the-box. However, if you use a different
|
// enum type. Swashbuckle will honor this change out-of-the-box. However, if you use a different
|
||||||
// approach to serialize enums as strings, you can also force Swashbuckle to describe them as strings.
|
// approach to serialize enums as strings, you can also force Swashbuckle to describe them as strings.
|
||||||
//
|
//
|
||||||
//c.DescribeAllEnumsAsStrings();
|
//c.DescribeAllEnumsAsStrings();
|
||||||
|
c.DescribeAllEnumsAsStrings();
|
||||||
|
|
||||||
// Similar to Schema filters, Swashbuckle also supports Operation and Document filters:
|
// Similar to Schema filters, Swashbuckle also supports Operation and Document filters:
|
||||||
//
|
//
|
||||||
// Post-modify Operation descriptions once they've been generated by wiring up one or more
|
// Post-modify Operation descriptions once they've been generated by wiring up one or more
|
||||||
// Operation filters.
|
// Operation filters.
|
||||||
//
|
//
|
||||||
//c.OperationFilter<AddDefaultResponse>();
|
//c.OperationFilter<AddDefaultResponse>();
|
||||||
//
|
//
|
||||||
// If you've defined an OAuth2 flow as described above, you could use a custom filter
|
// If you've defined an OAuth2 flow as described above, you could use a custom filter
|
||||||
// to inspect some attribute on each action and infer which (if any) OAuth2 scopes are required
|
// to inspect some attribute on each action and infer which (if any) OAuth2 scopes are required
|
||||||
// to execute the operation
|
// to execute the operation
|
||||||
//
|
//
|
||||||
c.OperationFilter(() => new AddRequiredHeaderParameter());
|
c.OperationFilter(() => new AddRequiredHeaderParameter());
|
||||||
|
|
||||||
// Post-modify the entire Swagger document by wiring up one or more Document filters.
|
// Post-modify the entire Swagger document by wiring up one or more Document filters.
|
||||||
// This gives full control to modify the final SwaggerDocument. You should have a good understanding of
|
// This gives full control to modify the final SwaggerDocument. You should have a good understanding of
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using Thermo.Active.Database.Controllers;
|
|||||||
using Thermo.Active.Model.ConfigModels;
|
using Thermo.Active.Model.ConfigModels;
|
||||||
using Thermo.Active.Model.DTOModels;
|
using Thermo.Active.Model.DTOModels;
|
||||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThIO;
|
||||||
using Thermo.Active.Model.DTOModels.ThProd;
|
using Thermo.Active.Model.DTOModels.ThProd;
|
||||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||||
using static Thermo.Active.Config.ServerConfig;
|
using static Thermo.Active.Config.ServerConfig;
|
||||||
@@ -26,7 +27,8 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
ReportConfig = ReportConfig,
|
ReportConfig = ReportConfig,
|
||||||
UtilitiesConfig = UtilitiesConfig,
|
UtilitiesConfig = UtilitiesConfig,
|
||||||
JobEditorConfig = JobEditorConfig,
|
JobEditorConfig = JobEditorConfig,
|
||||||
UsersConfig = UsersConfig
|
UsersConfig = UsersConfig,
|
||||||
|
ThermoHoodConfig = ThermoHoodConfig
|
||||||
};
|
};
|
||||||
|
|
||||||
return Ok(startupConfiguration);
|
return Ok(startupConfiguration);
|
||||||
@@ -124,6 +126,27 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
return Ok(recipeConfig);
|
return Ok(recipeConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("configIO"), HttpGet]
|
||||||
|
public IHttpActionResult GetIOConfig()
|
||||||
|
{
|
||||||
|
// restituisce la configurazione come item dei banchi DI/DO/AI/AO
|
||||||
|
DTOChannelsSetup configIO = new DTOChannelsSetup();
|
||||||
|
// leggo i 4 tipi di oggetti e popolo
|
||||||
|
List<string> listDI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DI).GroupBy(x => x.Bank).Select(x => x.Key).ToList();
|
||||||
|
List<string> listDO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.DO).GroupBy(x => x.Bank).Select(x => x.Key).ToList();
|
||||||
|
List<string> listAI = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AI).GroupBy(x => x.Bank).Select(x => x.Key).ToList();
|
||||||
|
List<string> listAO = IOConfig.Where(x => x.Category == Model.Constants.TACT_IO_TYPE.AO).GroupBy(x => x.Bank).Select(x => x.Key).ToList();
|
||||||
|
|
||||||
|
// assegno!
|
||||||
|
configIO.DI = listDI;
|
||||||
|
configIO.DO = listDO;
|
||||||
|
configIO.AI = listAI;
|
||||||
|
configIO.AO = listAO;
|
||||||
|
|
||||||
|
// restituisco
|
||||||
|
return Ok(configIO);
|
||||||
|
}
|
||||||
|
|
||||||
[Route("thermoProd"), HttpGet]
|
[Route("thermoProd"), HttpGet]
|
||||||
public IHttpActionResult GetThermoProdConfig()
|
public IHttpActionResult GetThermoProdConfig()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -100,7 +100,8 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// read recipe!
|
// read recipe!
|
||||||
libraryError = ncAdapter.ReadFullRecipe(out Dictionary<string, DTORecipeParam> prevRecipe);
|
//libraryError = ncAdapter.ReadFullRecipe(out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||||
|
libraryError = ncAdapter.ReadRecipeData(true, true, out Dictionary<string, DTORecipeParam> prevRecipe);
|
||||||
if (libraryError.IsError())
|
if (libraryError.IsError())
|
||||||
{
|
{
|
||||||
ThermoActiveLogger.LogError($"GetRecipeOverview error | {libraryError.exception}");
|
ThermoActiveLogger.LogError($"GetRecipeOverview error | {libraryError.exception}");
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Http;
|
|
||||||
using System.Net.Http.Headers;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Web.Http;
|
|
||||||
using Thermo.Active.Database.Controllers;
|
|
||||||
using Thermo.Active.Listeners;
|
|
||||||
using Thermo.Active.Model.DatabaseModels;
|
|
||||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
|
||||||
using Thermo.Active.Provider;
|
|
||||||
using Thermo.Active.Thermocamera;
|
|
||||||
using static Thermo.Active.Config.ServerConfig;
|
|
||||||
using static Thermo.Active.Model.Constants;
|
|
||||||
|
|
||||||
namespace Thermo.Active.Controllers.WebApi
|
|
||||||
{
|
|
||||||
[RoutePrefix("api/thermocamera")]
|
|
||||||
public class ThermocameraController : ApiController
|
|
||||||
{
|
|
||||||
[Route("show"), HttpPost]
|
|
||||||
public IHttpActionResult GetDataPaginated()
|
|
||||||
{
|
|
||||||
String ThermoCameraXpos = AdditionalParametersConfig["ThermoCameraXpos"];
|
|
||||||
String ThermoCameraYpos = AdditionalParametersConfig["ThermoCameraYpos"];
|
|
||||||
String ThermoCameraXdim = AdditionalParametersConfig["ThermoCameraXdim"];
|
|
||||||
String ThermoCameraYdim = AdditionalParametersConfig["ThermoCameraYdim"];
|
|
||||||
if(ThermoCameraXpos != null && ThermoCameraYpos != null && ThermoCameraXdim != null && ThermoCameraYdim != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (ThermocameraComunicator.getInstance().showWindow(Int32.Parse(ThermoCameraXpos), Int32.Parse(ThermoCameraYpos), Int32.Parse(ThermoCameraXdim), Int32.Parse(ThermoCameraYdim), 3000))
|
|
||||||
return Ok();
|
|
||||||
else
|
|
||||||
return BadRequest();
|
|
||||||
|
|
||||||
}
|
|
||||||
return BadRequest();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,405 @@
|
|||||||
|
using CMS_CORE_Library.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Security.Claims;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Http;
|
||||||
|
using System.Web.Http.Description;
|
||||||
|
using System.Windows.Media.Animation;
|
||||||
|
using TeamDev.SDK.MVVM;
|
||||||
|
using Thermo.Active.Config;
|
||||||
|
using Thermo.Active.Database.Controllers;
|
||||||
|
using Thermo.Active.Model.DatabaseModels;
|
||||||
|
using Thermo.Active.Model.DTOModels;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThIO;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThWarmers;
|
||||||
|
using Thermo.Active.NC;
|
||||||
|
using Thermo.Active.Utils;
|
||||||
|
using static CMS_CORE_Library.Models.DataStructures;
|
||||||
|
using static Thermo.Active.Config.ServerConfig;
|
||||||
|
using static Thermo.Active.Model.Constants;
|
||||||
|
|
||||||
|
namespace Thermo.Active.Controllers.WebApi
|
||||||
|
{
|
||||||
|
[RoutePrefix("api/underthehood")]
|
||||||
|
public class UnderTheHoodController : ApiController
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Oggetto adapter condiviso da WebAPI
|
||||||
|
/// </summary>
|
||||||
|
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||||
|
|
||||||
|
[ResponseType(typeof(DTOCycleLog))]
|
||||||
|
[Route("CycleLogRefresh"), HttpGet]
|
||||||
|
public IHttpActionResult RefreshCycleLog()
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ncAdapter Not connected! | RefreshCycleLog | {libraryError.exception}");
|
||||||
|
}
|
||||||
|
|
||||||
|
libraryError = ncAdapter.RefreshCycleLog(out int numRec);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"RefreshCycleLog error | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(numRec);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(DTOCycleLog))]
|
||||||
|
[Route("CycleLog"), HttpGet]
|
||||||
|
public IHttpActionResult GetCycleLog(int from, int to)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
DTOCycleLog currCycleLog = new DTOCycleLog();
|
||||||
|
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ncAdapter Not connected! | GetCycleLog | {libraryError.exception}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// recupero dati paginati
|
||||||
|
libraryError = ncAdapter.GetCycleLog(from, to, out currCycleLog);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"GetCycleLog error | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(currCycleLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(bool))]
|
||||||
|
[Route("GetAxesAdvMode"), HttpGet]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult GetAxesAdvMode()
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// chiamo scrittura
|
||||||
|
bool advMode = false;
|
||||||
|
libraryError = ncAdapter.GetAxesAdvMode(out advMode);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"GetCycleLog error | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok(advMode);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(DTOChannelsIO))]
|
||||||
|
[Route("channels_io"), HttpGet]
|
||||||
|
public IHttpActionResult GetChannelsIO()
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | GetChannelsIO | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// leggo dati gauges
|
||||||
|
libraryError = ncAdapter.ReadFullIO(out DTOChannelsIO ChannelsIO);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"GetChannelsIO error | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno!
|
||||||
|
return Ok(ChannelsIO);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(DTOChannelsIOVal))]
|
||||||
|
[Route("channels_io_val"), HttpGet]
|
||||||
|
public IHttpActionResult GetChannelsIoVal()
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | GetChannelsIoVal | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// leggo dati gauges
|
||||||
|
libraryError = ncAdapter.ReadValIO(out DTOChannelsIOVal ChannelsIOVal);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"GetChannelsIoVal error | {libraryError.exception}");
|
||||||
|
return BadRequest(libraryError.localizationKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno!
|
||||||
|
return Ok(ChannelsIOVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("io_force_ch_do"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult ForceChDO(List<IoItemDigi> updVal)
|
||||||
|
{
|
||||||
|
if (updVal != null)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ForceChDO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updVal.Count > 0)
|
||||||
|
{
|
||||||
|
// converto
|
||||||
|
Dictionary<int, bool> parametersList = new Dictionary<int, bool>();
|
||||||
|
foreach (var item in updVal)
|
||||||
|
{
|
||||||
|
parametersList.Add(item.Id, item.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// scrivo sul PLC con i parametri specificati
|
||||||
|
ncAdapter.Write_IO_DO_ToPLC(parametersList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ForceChDO updatedVal null | Empty Parameters");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Route("io_force_ch_ao"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult ForceChAO(List<IoItemAnal> updVal)
|
||||||
|
{
|
||||||
|
if (updVal != null)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updVal.Count > 0)
|
||||||
|
{
|
||||||
|
Dictionary<int, int> parametersList = new Dictionary<int, int>();
|
||||||
|
foreach (var item in updVal)
|
||||||
|
{
|
||||||
|
parametersList.Add(item.Id, item.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// scrivo sul PLC con i parametri specificati
|
||||||
|
ncAdapter.Write_IO_AO_ToPLC(parametersList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ForceChAO parametersList null | Empty Parameters");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Route("io_reset_ch_do"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult ResetChDO(List<int> parametersList)
|
||||||
|
{
|
||||||
|
if (parametersList != null)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ResetChDO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parametersList.Count > 0)
|
||||||
|
{
|
||||||
|
// scrivo sul PLC con i parametri specificati x ritardo/raggruppamento
|
||||||
|
ncAdapter.WriteReset_IO_DO_ToPLC(parametersList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ResetChDO parametersList null | Empty Parameters");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Reset "force bit" on selected channels
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parametersList">List of channels index, zero based</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Route("io_reset_ch_ao"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult ResetChAO(List<int> parametersList)
|
||||||
|
{
|
||||||
|
if (parametersList != null)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ResetChAO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parametersList.Count > 0)
|
||||||
|
{
|
||||||
|
// scrivo sul PLC con i parametri specificati x ritardo/raggruppamento
|
||||||
|
ncAdapter.WriteReset_IO_AO_ToPLC(parametersList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"ResetChAO parametersList null | Empty Parameters");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Route("io_reset_all_ch"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult ResetAllCh()
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ResetAllCh | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// scrivo sul PLC con i parametri specificati x ritardo/raggruppamento
|
||||||
|
ncAdapter.WriteReset_IO_ALL_ToPLC();//parametersList);
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("SendAxisCommand"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult SendAxisCommand(int AxisId, Model.DTOModels.ThAxes.AxisCommand currCommand, double TargetPos)
|
||||||
|
{
|
||||||
|
if (AxisId > 0)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// chiamo scrittura
|
||||||
|
ncAdapter.SendAxisCommand(AxisId, currCommand, TargetPos);
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"SendAxisCommand axis 0");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("SetAxesAdvMode"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult SetAxesAdvMode(bool value)
|
||||||
|
{
|
||||||
|
// Try connection
|
||||||
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"NC Not connected! | ForceChAO | {libraryError.exception}");
|
||||||
|
return InternalServerError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// chiamo scrittura
|
||||||
|
ncAdapter.SetAxesAdvMode(value);
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("io_sample_fast"), HttpPut]
|
||||||
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)]
|
||||||
|
public IHttpActionResult SetFastSample(bool value)
|
||||||
|
{
|
||||||
|
// imposta (su redis) campionamento RAPIDO/lento x IO...
|
||||||
|
var expires = RedisController.SetFastIoSample(value);
|
||||||
|
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok(expires);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[ResponseType(typeof(List<HistorySheetModel>))]
|
||||||
|
[Route("SheetHistory"), HttpGet]
|
||||||
|
public IHttpActionResult GetSheetHistory()
|
||||||
|
{
|
||||||
|
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||||
|
{
|
||||||
|
List<HistorySheetModel> models = hsc.GetData();
|
||||||
|
return Ok(models);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(List<HistorySheetModel>))]
|
||||||
|
[Route("SheetHistoryFiltered"), HttpGet]
|
||||||
|
public IHttpActionResult GetSheetHistoryFiltered(int start, int number)
|
||||||
|
{
|
||||||
|
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||||
|
{
|
||||||
|
|
||||||
|
List<HistorySheetModel> models = hsc.GetData(start, number);
|
||||||
|
return Ok(models);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(int))]
|
||||||
|
[Route("SheetHistoryCount"), HttpGet]
|
||||||
|
public IHttpActionResult GetSheetHistoryCount()
|
||||||
|
{
|
||||||
|
using (HistorySheetsController hsc = new HistorySheetsController())
|
||||||
|
{
|
||||||
|
return Ok(hsc.count());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,23 +11,111 @@ using Thermo.Active.Utils;
|
|||||||
using static Thermo.Active.Config.ServerConfig;
|
using static Thermo.Active.Config.ServerConfig;
|
||||||
using static Thermo.Active.Model.Constants;
|
using static Thermo.Active.Model.Constants;
|
||||||
using static CMS_CORE_Library.Models.DataStructures;
|
using static CMS_CORE_Library.Models.DataStructures;
|
||||||
|
using System.Web.Http.Description;
|
||||||
|
using Thermo.Active.Thermocamera;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Thermo.Active.Controllers.WebApi
|
namespace Thermo.Active.Controllers.WebApi
|
||||||
{
|
{
|
||||||
[RoutePrefix("api/warmers")]
|
[RoutePrefix("api/warmers")]
|
||||||
public class WarmersController : ApiController
|
public class WarmersController : ApiController
|
||||||
{
|
{
|
||||||
|
#region Protected Fields
|
||||||
#region Fields
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Oggetto adapter condiviso da WebAPI
|
/// Oggetto adapter condiviso da WebAPI
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected static NcAdapter ncAdapter = new NcAdapter();
|
protected static NcAdapter ncAdapter = new NcAdapter();
|
||||||
|
|
||||||
#endregion Fields
|
protected static Dictionary<int, ThermoPoint> MeasurePoints = new Dictionary<int, ThermoPoint>();
|
||||||
|
|
||||||
#region Methods
|
/// <summary>
|
||||||
|
/// Libreria x gestione dati thermocamera
|
||||||
|
/// </summary>
|
||||||
|
protected ThermoCamComunicator TCCom = new ThermoCamComunicator(false);
|
||||||
|
|
||||||
|
#endregion Protected Fields
|
||||||
|
|
||||||
|
#region Private Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Do actual recipe warmers SetpointHMI File-Save
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="chSetpoints"></param>
|
||||||
|
private static void saveCurrentRecipeWarmersData(Dictionary<int, int> chSetpoints, Dictionary<int, double> chTCamTempReq, Dictionary<int, bool> chTCamEnab)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// ora salvo ANCHE i dati live...
|
||||||
|
NcAdapter.RecipeLiveData.ChannelSetpoints = chSetpoints;
|
||||||
|
NcAdapter.RecipeLiveData.ChannelTCamTempReq = chTCamTempReq;
|
||||||
|
NcAdapter.RecipeLiveData.ChannelTCamEnab = chTCamEnab;
|
||||||
|
// e salvo su disco
|
||||||
|
NcFileAdapter.SaveRecipeCurrent();
|
||||||
|
}
|
||||||
|
catch (Exception exc)
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"Warmers | saveCurrentRecipeWarmersData exception | {exc}");
|
||||||
|
}
|
||||||
|
notifyHmi();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Private Methods
|
||||||
|
|
||||||
|
#region Protected Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Esegue notifica HMI delle modifiche sulla ricetta/riscaldi
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected static CmsError notifyHmi()
|
||||||
|
{
|
||||||
|
CmsError libraryError = NO_ERROR;
|
||||||
|
// invio dati NUOVA ricetta (DOPO aver sistemato PLC)
|
||||||
|
DTORecipeStatus message = new DTORecipeStatus()
|
||||||
|
{
|
||||||
|
recipeName = NcAdapter.RecipeLiveData.RecipeName,
|
||||||
|
hasChanged = NcAdapter.RecipeLiveData.hasChanged,
|
||||||
|
forceSend = true
|
||||||
|
};
|
||||||
|
MessageServices.Current.Publish(SEND_THERMO_RECIPE_CHANGED, null, message);
|
||||||
|
|
||||||
|
// invio dati warmers aggiornati...
|
||||||
|
|
||||||
|
// Get new data from PLC
|
||||||
|
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> currWarmers);
|
||||||
|
if (libraryError.IsError())
|
||||||
|
{
|
||||||
|
ThermoActiveLogger.LogError($"Load error | ReadWarmers | {libraryError.errorCode} | {libraryError.exception} | {libraryError.localizationKey}");
|
||||||
|
return libraryError;
|
||||||
|
}
|
||||||
|
// pubblico
|
||||||
|
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, currWarmers);
|
||||||
|
return libraryError;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Protected Methods
|
||||||
|
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add point to list for thermo data acquisition
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Route("addMeasurePoint"), HttpPut]
|
||||||
|
public IHttpActionResult AddMeasurePoint(int posX, int posY)
|
||||||
|
{
|
||||||
|
int nextId = MeasurePoints.Count;
|
||||||
|
// aggiungo punto
|
||||||
|
ThermoPoint result = new ThermoPoint()
|
||||||
|
{
|
||||||
|
X = posX,
|
||||||
|
Y = posY
|
||||||
|
};
|
||||||
|
MeasurePoints.Add(nextId, result);
|
||||||
|
// ritorno!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Cancel recipe modification (parameters: PLC --> HMI)
|
/// Cancel recipe modification (parameters: PLC --> HMI)
|
||||||
@@ -53,8 +141,6 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
return BadRequest(libraryError.localizationKey);
|
return BadRequest(libraryError.localizationKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// recupero i dati LIVE dei parametri HMI dei riscaldi...
|
// recupero i dati LIVE dei parametri HMI dei riscaldi...
|
||||||
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> currWarmers);
|
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> currWarmers);
|
||||||
if (libraryError.IsError())
|
if (libraryError.IsError())
|
||||||
@@ -86,7 +172,7 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
|
|
||||||
// salvo!
|
// salvo!
|
||||||
saveCurrentRecipeWarmersData(currSetpointHMI, currTCamTempReq, currTCamEnab);
|
saveCurrentRecipeWarmersData(currSetpointHMI, currTCamTempReq, currTCamEnab);
|
||||||
|
|
||||||
// ritorno solo fatto!
|
// ritorno solo fatto!
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
@@ -192,6 +278,7 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
/// Current status related to ThermoCamera
|
/// Current status related to ThermoCamera
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
[ResponseType(typeof(DTOThermoCam))]
|
||||||
[Route("TCamData"), HttpGet]
|
[Route("TCamData"), HttpGet]
|
||||||
public IHttpActionResult GetCurrentTCamData()
|
public IHttpActionResult GetCurrentTCamData()
|
||||||
{
|
{
|
||||||
@@ -237,6 +324,7 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
|
|
||||||
return Ok(currWarmers);
|
return Ok(currWarmers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Resistance setup info
|
/// Resistance setup info
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -262,6 +350,30 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
return Ok(currWarmers);
|
return Ok(currWarmers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[ResponseType(typeof(List<Thermo.Cam.Utils.MeasurePoint>))]
|
||||||
|
[Route("getMeasurePoints"), HttpGet]
|
||||||
|
public IHttpActionResult GetMeasurePoints(string setName)
|
||||||
|
{
|
||||||
|
// init punti...
|
||||||
|
List<Thermo.Cam.Utils.MeasurePoint> resultPoints = new List<Cam.Utils.MeasurePoint>();
|
||||||
|
// Chiamo l'oggetto thermocam x il set richiesto...
|
||||||
|
TCCom.readMultiTemperatures(setName, MeasurePoints, out resultPoints);
|
||||||
|
// ritorno!
|
||||||
|
return Ok(resultPoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Force reset point list for thermo data acquisition
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Route("resetMeasurePoint"), HttpPut]
|
||||||
|
public IHttpActionResult ResetMeasurePoints()
|
||||||
|
{
|
||||||
|
MeasurePoints = new Dictionary<int, ThermoPoint>();
|
||||||
|
// ritorno solo fatto!
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Force write risk setup + others warmers data (ex ThermoCam)
|
/// Force write risk setup + others warmers data (ex ThermoCam)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -350,61 +462,22 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Simulate Flir image req from PLC
|
/// Force take photo
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="enableTCam"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Route("simReqFlirImg"), HttpPut]
|
[Route("takePicture"), HttpPut]
|
||||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.RECIPE_MANAGER, Action = ACTIONS.READ)]
|
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.RECIPE_MANAGER, Action = ACTIONS.READ)]
|
||||||
public IHttpActionResult SimReqFlirImg()
|
public IHttpActionResult TakePicture()
|
||||||
{
|
{
|
||||||
// Try connection
|
// Try connection
|
||||||
CmsError libraryError = ncAdapter.Connect();
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
if (libraryError.IsError())
|
if (libraryError.IsError())
|
||||||
{
|
{
|
||||||
ThermoActiveLogger.LogError($"NC Not connected! | SimReqFlirImg | {libraryError.exception}");
|
ThermoActiveLogger.LogError($"NC Not connected! | Warmers ConfirmEdit | {libraryError.exception}");
|
||||||
return BadRequest(libraryError.localizationKey);
|
return BadRequest(libraryError.localizationKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
// recupero valori attuali
|
TCCom.takePicture();
|
||||||
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> currWarmers);
|
|
||||||
if (libraryError.IsError())
|
|
||||||
{
|
|
||||||
ThermoActiveLogger.LogError($"SimReqFlirImg | GetRecipeOverview error | {libraryError.exception}");
|
|
||||||
return BadRequest(libraryError.localizationKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
// scrivo sul PLC i dati SIMULATI di una lettura Flir
|
|
||||||
Dictionary<int, double> chSimTemp = new Dictionary<int, double>();
|
|
||||||
Random rnd = new Random();
|
|
||||||
double simVal = 0;
|
|
||||||
foreach (var item in currWarmers)
|
|
||||||
{
|
|
||||||
if (item.Value.TCamTempSet > 100)
|
|
||||||
{
|
|
||||||
simVal = item.Value.TCamTempSet + (rnd.NextDouble() * 10 - 5);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
simVal = rnd.NextDouble() * 200 + 100;
|
|
||||||
}
|
|
||||||
// accodo!
|
|
||||||
chSimTemp.Add(item.Key, simVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
libraryError = ncAdapter.WriteRecipeWarmChTCamTempAct(chSimTemp);
|
|
||||||
if (libraryError.IsError())
|
|
||||||
{
|
|
||||||
ThermoActiveLogger.LogError($"SimReqFlirImg error | {libraryError.exception}");
|
|
||||||
return BadRequest(libraryError.localizationKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// recupero valori attuali post update
|
|
||||||
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> newWarmers);
|
|
||||||
|
|
||||||
// pubblico
|
|
||||||
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, newWarmers);
|
|
||||||
|
|
||||||
// ritorno solo fatto!
|
// ritorno solo fatto!
|
||||||
return Ok();
|
return Ok();
|
||||||
@@ -516,58 +589,7 @@ namespace Thermo.Active.Controllers.WebApi
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// Esegue notifica HMI delle modifiche sulla ricetta/riscaldi
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected static CmsError notifyHmi()
|
|
||||||
{
|
|
||||||
CmsError libraryError = NO_ERROR;
|
|
||||||
// invio dati NUOVA ricetta (DOPO aver sistemato PLC)
|
|
||||||
DTORecipeStatus message = new DTORecipeStatus()
|
|
||||||
{
|
|
||||||
recipeName = NcAdapter.RecipeLiveData.RecipeName,
|
|
||||||
hasChanged = NcAdapter.RecipeLiveData.hasChanged,
|
|
||||||
forceSend = true
|
|
||||||
};
|
|
||||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_CHANGED, null, message);
|
|
||||||
|
|
||||||
// invio dati warmers aggiornati...
|
#endregion Public Methods
|
||||||
|
|
||||||
// Get new data from PLC
|
|
||||||
libraryError = ncAdapter.ReadWarmers(false, out Dictionary<int, DTOWarmers> currWarmers);
|
|
||||||
if (libraryError.IsError())
|
|
||||||
{
|
|
||||||
ThermoActiveLogger.LogError($"Load error | ReadWarmers | {libraryError.errorCode} | {libraryError.exception} | {libraryError.localizationKey}");
|
|
||||||
return libraryError;
|
|
||||||
}
|
|
||||||
// pubblico
|
|
||||||
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, currWarmers);
|
|
||||||
return libraryError;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Do actual recipe warmers SetpointHMI File-Save
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="chSetpoints"></param>
|
|
||||||
private static void saveCurrentRecipeWarmersData(Dictionary<int, int> chSetpoints, Dictionary<int, double> chTCamTempReq, Dictionary<int, bool> chTCamEnab)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// ora salvo ANCHE i dati live...
|
|
||||||
NcAdapter.RecipeLiveData.ChannelSetpoints = chSetpoints;
|
|
||||||
NcAdapter.RecipeLiveData.ChannelTCamTempReq = chTCamTempReq;
|
|
||||||
NcAdapter.RecipeLiveData.ChannelTCamEnab = chTCamEnab;
|
|
||||||
// e salvo su disco
|
|
||||||
NcFileAdapter.SaveRecipeCurrent();
|
|
||||||
}
|
|
||||||
catch (Exception exc)
|
|
||||||
{
|
|
||||||
ThermoActiveLogger.LogError($"Warmers | saveCurrentRecipeWarmersData exception | {exc}");
|
|
||||||
}
|
|
||||||
notifyHmi();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Methods
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@echo of
|
||||||
|
xcopy "%FLIR_Atlas6%bin\x64\*.dll" %1 /Y /E /D
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@echo of
|
||||||
|
xcopy "%FLIR_Atlas6%bin\x86\*.dll" %1 /Y /E /D
|
||||||
@@ -50,7 +50,13 @@ namespace Thermo.Active.Listeners.Database
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static void cleanHistorySheets()
|
||||||
|
{
|
||||||
|
using (HistorySheetsController HSC = new HistorySheetsController())
|
||||||
|
{
|
||||||
|
HSC.Clean();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void UpdateAlarms(object alarmsObj)
|
public static void UpdateAlarms(object alarmsObj)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -64,6 +64,14 @@ namespace Thermo.Active.Listeners
|
|||||||
{
|
{
|
||||||
SignalRListener.SendThermoAxisInfoData(a);
|
SignalRListener.SendThermoAxisInfoData(a);
|
||||||
}));
|
}));
|
||||||
|
infos.Add(MessageServices.Current.Subscribe(SEND_CHANNELS_IO_DATA, (a, b) =>
|
||||||
|
{
|
||||||
|
SignalRListener.SendThermoChannelsIoData(a);
|
||||||
|
}));
|
||||||
|
infos.Add(MessageServices.Current.Subscribe(SEND_NEWTCAMIMAGE, (a, b) =>
|
||||||
|
{
|
||||||
|
SignalRListener.SendTCamNewImage(a);
|
||||||
|
}));
|
||||||
infos.Add(MessageServices.Current.Subscribe(SEND_ACTIVE_PROGRAM_DATA, (a, b) =>
|
infos.Add(MessageServices.Current.Subscribe(SEND_ACTIVE_PROGRAM_DATA, (a, b) =>
|
||||||
{
|
{
|
||||||
SignalRListener.SendActiveProgramData(a);
|
SignalRListener.SendActiveProgramData(a);
|
||||||
@@ -126,6 +134,7 @@ namespace Thermo.Active.Listeners
|
|||||||
}));
|
}));
|
||||||
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_INFO_DATA, (a, b) =>
|
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_INFO_DATA, (a, b) =>
|
||||||
{
|
{
|
||||||
|
SignalRDatabaseHandler.cleanHistorySheets();
|
||||||
SignalRListener.SendThermoProdInfoData(a);
|
SignalRListener.SendThermoProdInfoData(a);
|
||||||
}));
|
}));
|
||||||
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_CYCLE_DATA, (a, b) =>
|
infos.Add(MessageServices.Current.Subscribe(SEND_THERMO_PROD_CYCLE_DATA, (a, b) =>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ using Thermo.Active.Model.DTOModels;
|
|||||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||||
using Thermo.Active.Model.DTOModels.Scada;
|
using Thermo.Active.Model.DTOModels.Scada;
|
||||||
using Thermo.Active.Model.DTOModels.ThAxes;
|
using Thermo.Active.Model.DTOModels.ThAxes;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThIO;
|
||||||
using Thermo.Active.Model.DTOModels.ThModules;
|
using Thermo.Active.Model.DTOModels.ThModules;
|
||||||
using Thermo.Active.Model.DTOModels.ThProd;
|
using Thermo.Active.Model.DTOModels.ThProd;
|
||||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||||
@@ -59,7 +60,7 @@ namespace Thermo.Active.Listeners.SignalR
|
|||||||
{
|
{
|
||||||
RedisController.WriteCurrentMachineEmergencyPath(LastPowerOnData.PrePowerOn.EmergencyButtons.Active);
|
RedisController.WriteCurrentMachineEmergencyPath(LastPowerOnData.PrePowerOn.EmergencyButtons.Active);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -456,8 +457,8 @@ namespace Thermo.Active.Listeners.SignalR
|
|||||||
LastProdPanelData = currProdPanel;
|
LastProdPanelData = currProdPanel;
|
||||||
|
|
||||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||||
context.Clients.Group("ncData").prodPanelData(currProdPanel);
|
context.Clients.Group("ncData").prodPanelData(currProdPanel);
|
||||||
|
|
||||||
if (Config.ServerConfig.ServerStartupConfig.CmsConnectReady)
|
if (Config.ServerConfig.ServerStartupConfig.CmsConnectReady)
|
||||||
{
|
{
|
||||||
if (newPiece)
|
if (newPiece)
|
||||||
@@ -508,8 +509,8 @@ namespace Thermo.Active.Listeners.SignalR
|
|||||||
RedisController.WriteCurrentMachineStatus(CMSConnectConstants.ConvertThermoToConnectStatus(currProdCycle.Status));
|
RedisController.WriteCurrentMachineStatus(CMSConnectConstants.ConvertThermoToConnectStatus(currProdCycle.Status));
|
||||||
RedisController.WriteCurrentMachinePowerPath(CMSConnectConstants.ConvertThermoToConnectPower(currProdCycle.Status));
|
RedisController.WriteCurrentMachinePowerPath(CMSConnectConstants.ConvertThermoToConnectPower(currProdCycle.Status));
|
||||||
|
|
||||||
RedisController.WriteCurrentProcessStatus(1,CMSConnectConstants.ConvertThermoToConnectProcessStatus(currProdCycle.Status));
|
RedisController.WriteCurrentProcessStatus(1, CMSConnectConstants.ConvertThermoToConnectProcessStatus(currProdCycle.Status));
|
||||||
RedisController.WriteCurrentProcessMode(1,CMSConnectConstants.ConvertThermoToConnectProcessMode(currProdCycle.Mode));
|
RedisController.WriteCurrentProcessMode(1, CMSConnectConstants.ConvertThermoToConnectProcessMode(currProdCycle.Mode));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -551,6 +552,72 @@ namespace Thermo.Active.Listeners.SignalR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SendThermoChannelsIoData(object channelsIoData)
|
||||||
|
{
|
||||||
|
DTOChannelsIOVal currChannelsIoData = channelsIoData as DTOChannelsIOVal;
|
||||||
|
DTOChannelsIOVal diffChannelsData = new DTOChannelsIOVal();
|
||||||
|
|
||||||
|
// processing differenze DI
|
||||||
|
foreach (var item in currChannelsIoData.DI)
|
||||||
|
{
|
||||||
|
// recupero
|
||||||
|
var element = LastChannelsIoData.DI.Find(x => x.Id == item.Id);
|
||||||
|
if ((element == null) || (!item.Equals(element)))
|
||||||
|
{
|
||||||
|
diffChannelsData.DI.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// processing differenze DO
|
||||||
|
foreach (var item in currChannelsIoData.DO)
|
||||||
|
{
|
||||||
|
// recupero
|
||||||
|
var element = LastChannelsIoData.DO.Find(x => x.Id == item.Id);
|
||||||
|
if ((element == null) || (!item.Equals(element)))
|
||||||
|
{
|
||||||
|
diffChannelsData.DO.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// processing differenze AI
|
||||||
|
foreach (var item in currChannelsIoData.AI)
|
||||||
|
{
|
||||||
|
// recupero
|
||||||
|
var element = LastChannelsIoData.AI.Find(x => x.Id == item.Id);
|
||||||
|
if ((element == null) || (!item.Value.Equals(element.Value)))
|
||||||
|
{
|
||||||
|
diffChannelsData.AI.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// processing differenze AO
|
||||||
|
foreach (var item in currChannelsIoData.AO)
|
||||||
|
{
|
||||||
|
// recupero
|
||||||
|
var element = LastChannelsIoData.AO.Find(x => x.Id == item.Id);
|
||||||
|
if ((element == null) || (!item.Value.Equals(element.Value)))
|
||||||
|
{
|
||||||
|
diffChannelsData.AO.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// se ho differenze invio!
|
||||||
|
if (diffChannelsData.DI.Count + diffChannelsData.DO.Count + diffChannelsData.AI.Count + diffChannelsData.AO.Count > 0)
|
||||||
|
{
|
||||||
|
// salvo update CLONANDO
|
||||||
|
LastChannelsIoData.DI = currChannelsIoData.DI;
|
||||||
|
LastChannelsIoData.DO = currChannelsIoData.DO;
|
||||||
|
LastChannelsIoData.AI = currChannelsIoData.AI;
|
||||||
|
LastChannelsIoData.AO = currChannelsIoData.AO;
|
||||||
|
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||||
|
context.Clients.Group("ncData").channelsIoVal(diffChannelsData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SendTCamNewImage(object newImageDate)
|
||||||
|
{
|
||||||
|
DateTime imageDate = (DateTime)newImageDate;
|
||||||
|
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||||
|
context.Clients.Group("ncData").newThermoCamImage(newImageDate);
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetGatewayRebootStatus(object status)
|
public static void SetGatewayRebootStatus(object status)
|
||||||
{
|
{
|
||||||
string msg = status.ToString();
|
string msg = status.ToString();
|
||||||
@@ -602,6 +669,8 @@ namespace Thermo.Active.Listeners.SignalR
|
|||||||
group.headsData(LastHeadsData);
|
group.headsData(LastHeadsData);
|
||||||
// Send Axis Info data
|
// Send Axis Info data
|
||||||
group.axisInfo(LastAxisInfoData);
|
group.axisInfo(LastAxisInfoData);
|
||||||
|
// Send Axis Info data
|
||||||
|
group.SendThermoChannelsIoData(LastChannelsIoData);
|
||||||
// Send active program data
|
// Send active program data
|
||||||
group.activeProgramData(LastProgramData);
|
group.activeProgramData(LastProgramData);
|
||||||
// Send magazine is active data
|
// Send magazine is active data
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
using CMS_CORE_Library.Models;
|
using CMS_CORE_Library.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Thermo.Active.Model.DTOModels;
|
using Thermo.Active.Model.DTOModels;
|
||||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||||
using Thermo.Active.Model.DTOModels.Scada;
|
using Thermo.Active.Model.DTOModels.Scada;
|
||||||
using Thermo.Active.Model.DTOModels.ThAxes;
|
using Thermo.Active.Model.DTOModels.ThAxes;
|
||||||
|
using Thermo.Active.Model.DTOModels.ThIO;
|
||||||
using Thermo.Active.Model.DTOModels.ThModules;
|
using Thermo.Active.Model.DTOModels.ThModules;
|
||||||
using Thermo.Active.Model.DTOModels.ThProd;
|
using Thermo.Active.Model.DTOModels.ThProd;
|
||||||
using Thermo.Active.Model.DTOModels.ThRecipe;
|
using Thermo.Active.Model.DTOModels.ThRecipe;
|
||||||
@@ -46,6 +48,8 @@ namespace Thermo.Active.Listeners
|
|||||||
public static DTOThermoPanelProd LastProdPanelData = new DTOThermoPanelProd();
|
public static DTOThermoPanelProd LastProdPanelData = new DTOThermoPanelProd();
|
||||||
// Oggetti per assi THERMO
|
// Oggetti per assi THERMO
|
||||||
public static Dictionary<int, DTOAxisInfoModel> LastAxisInfoData = new Dictionary<int, DTOAxisInfoModel>();
|
public static Dictionary<int, DTOAxisInfoModel> LastAxisInfoData = new Dictionary<int, DTOAxisInfoModel>();
|
||||||
|
// Oggetti x Valori Channels IO
|
||||||
|
public static DTOChannelsIOVal LastChannelsIoData = new DTOChannelsIOVal();
|
||||||
|
|
||||||
public static bool LastIsNcConnected = false;
|
public static bool LastIsNcConnected = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("CMS S.P.A.")]
|
[assembly: AssemblyCompany("CMS S.P.A.")]
|
||||||
[assembly: AssemblyProduct("Thermo Active Server")]
|
[assembly: AssemblyProduct("Thermo Active Server")]
|
||||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
[assembly: AssemblyCopyright("Copyright � 2020")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
@@ -30,4 +30,4 @@ using System.Runtime.InteropServices;
|
|||||||
//
|
//
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
// You can specify all the values or you can default the Revision and Build Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("0.110.146")]
|
[assembly: AssemblyVersion("1.1.185")]
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ namespace Thermo.Active.Provider
|
|||||||
|
|
||||||
await base.GrantResourceOwnerCredentials(context);
|
await base.GrantResourceOwnerCredentials(context);
|
||||||
|
|
||||||
|
// in attesa di sistemare l'area di memoria della tastiera fisica esce...
|
||||||
|
return;
|
||||||
|
|
||||||
// Try connection
|
// Try connection
|
||||||
CmsError libraryError = ncAdapter.Connect();
|
CmsError libraryError = ncAdapter.Connect();
|
||||||
|
|
||||||
|
|||||||
@@ -5,21 +5,21 @@
|
|||||||
; Inno Setup Compiler version 5.6.0
|
; Inno Setup Compiler version 5.6.0
|
||||||
;==================================================
|
;==================================================
|
||||||
|
|
||||||
#define AppName "CMS Active"
|
#define AppName "CMS Active"
|
||||||
#define SCMAppName "Maestro Active cnc"
|
#define SCMAppName "Maestro Active cnc"
|
||||||
#define FolderName "Active"
|
#define FolderName "Active"
|
||||||
#define SCMIcoName "SCM.ico"
|
#define SCMIcoName "SCM.ico"
|
||||||
|
|
||||||
#define MyAppVersion "1.4.1"
|
#define MyAppVersion "1.5.5"
|
||||||
#define MyAppPublisher "CMS"
|
#define MyAppPublisher "CMS"
|
||||||
#define MyAppURL "https://www.scmgroup.com/it/cms"
|
#define MyAppURL "https://www.scmgroup.com/it/cms"
|
||||||
#define MyAppExeName "Active.exe"
|
#define MyAppExeName "Active.exe"
|
||||||
|
|
||||||
#define ProjectPath "C:\Workspace\CMS_STEP\Step\"
|
#define ProjectPath "C:\Users\ext_lmascherone\Documents\cms_step\Step\"
|
||||||
#define MySourcePath "C:\Workspace\CMS_STEP\Step\bin"
|
#define MySourcePath "C:\Users\ext_lmascherone\Documents\cms_step\Step\bin"
|
||||||
#define WwwRootPath "C:\Workspace\CMS_STEP\Step\wwwroot"
|
#define WwwRootPath "C:\Users\ext_lmascherone\Documents\cms_step\Step\wwwroot"
|
||||||
#define IconsPath "C:\Workspace\CMS_STEP\Step\Desktop_Link\"
|
#define IconsPath "C:\Users\ext_lmascherone\Documents\cms_step\Step\Desktop_Link\"
|
||||||
#define InvDialPath "C:\Workspace\CMS_INVERTER_DIAGNOSIS\CMSInverterDiagnosis\bin\Release\"
|
#define InvDialPath "C:\Users\ext_lmascherone\Documents\cms_inverterdiagnosis\CMSInverterDiagnosis\bin\Release\"
|
||||||
|
|
||||||
#define SinumerikPath1 "{pf}\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
|
#define SinumerikPath1 "{pf}\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
|
||||||
#define SinumerikPath2 "C:\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
|
#define SinumerikPath2 "C:\Siemens\Sinumerik\HMIsl\siemens\sinumerik\hmi\autostart\"
|
||||||
@@ -28,16 +28,16 @@
|
|||||||
#define SinumerikAppExeName "run_hmi.exe"
|
#define SinumerikAppExeName "run_hmi.exe"
|
||||||
; Support installers
|
; Support installers
|
||||||
; .Net
|
; .Net
|
||||||
#define DotNetInstallerPath "C:\Users\marantalu\Desktop\Per installazioni Active\"
|
#define DotNetInstallerPath "C:\Users\ext_lmascherone\Documents\Per installazioni Active\"
|
||||||
#define DotNetInstallerName "NDP462-KB3151800-x86-x64-AllOS-ENU.exe"
|
#define DotNetInstallerName "NDP462-KB3151800-x86-x64-AllOS-ENU.exe"
|
||||||
; MariaDb
|
; MariaDb
|
||||||
#define MariaDBInstallerPath "C:\Users\marantalu\Desktop\Per installazioni Active\"
|
#define MariaDBInstallerPath "C:\Users\ext_lmascherone\Documents\Per installazioni Active\"
|
||||||
#define MariaDBInstallerName "mariadb-10.3.13-winx64.msi"
|
#define MariaDBInstallerName "mariadb-10.3.13-winx64.msi"
|
||||||
|
|
||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
AppName={#AppName}
|
AppName={#AppName}
|
||||||
AppVersion={#MyAppVersion}
|
AppVersion={#MyAppVersion}
|
||||||
AppVerName={#AppName} {#MyAppVersion}
|
AppVerName={#AppName} {#MyAppVersion}
|
||||||
AppPublisher={#MyAppPublisher}
|
AppPublisher={#MyAppPublisher}
|
||||||
AppPublisherURL={#MyAppURL}
|
AppPublisherURL={#MyAppURL}
|
||||||
@@ -66,7 +66,7 @@ Name: Fanuc; Description: {#AppName} {cm:ForFanucNC}; Types: custom; Flags: excl
|
|||||||
Name: Osai; Description: {#AppName} {cm:ForOsaiNC}; Types: custom; Flags: exclusive
|
Name: Osai; Description: {#AppName} {cm:ForOsaiNC}; Types: custom; Flags: exclusive
|
||||||
Name: Siemens; Description: {#AppName} {cm:ForSiemensNC}; Types: custom; Flags: exclusive
|
Name: Siemens; Description: {#AppName} {cm:ForSiemensNC}; Types: custom; Flags: exclusive
|
||||||
|
|
||||||
[Languages]
|
[Languages]
|
||||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
|
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ italian.CreateStartupIcon = Crea il collegamento in &Esecuzione Automatica
|
|||||||
italian.CreateSinumerikIcons = Crea le icone di &Sinumerik HMI
|
italian.CreateSinumerikIcons = Crea le icone di &Sinumerik HMI
|
||||||
italian.ForDemoNC=per CN DEMO
|
italian.ForDemoNC=per CN DEMO
|
||||||
italian.ForFanucNC=per CN FANUC
|
italian.ForFanucNC=per CN FANUC
|
||||||
italian.ForOsaiNC=per CN OSAI
|
italian.ForOsaiNC=per CN OSAI
|
||||||
italian.ForSiemensNC=per CN SIEMENS
|
italian.ForSiemensNC=per CN SIEMENS
|
||||||
|
|
||||||
english.InstallDotNet = Install .Net 4.6.2
|
english.InstallDotNet = Install .Net 4.6.2
|
||||||
@@ -89,7 +89,7 @@ english.InstallMariaDB = Install MariaDB
|
|||||||
|
|
||||||
italian.InstallDotNet = Installa .Net 4.6.2
|
italian.InstallDotNet = Installa .Net 4.6.2
|
||||||
italian.InstallMariaDB = Installa MariaDB
|
italian.InstallMariaDB = Installa MariaDB
|
||||||
|
|
||||||
italian.InstallingMariaDB = Installando MariaDB
|
italian.InstallingMariaDB = Installando MariaDB
|
||||||
english.InstallingMariaDB = Installing MariaDB
|
english.InstallingMariaDB = Installing MariaDB
|
||||||
|
|
||||||
@@ -100,10 +100,10 @@ english.InstallingDotNet = Installing .Net
|
|||||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Fanuc Osai Siemens
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; Components: Fanuc Osai Siemens
|
||||||
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens
|
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens
|
||||||
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens
|
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Fanuc Osai Siemens
|
||||||
Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Siemens
|
Name: sinumerikicons; Description: {cm:CreateSinumerikIcons}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone; Components: Siemens
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "{#MySourcePath}\Active.exe"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "{#MySourcePath}\Thermo.Active.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
|
|
||||||
; Path to exe resources (dll, xml, config)
|
; Path to exe resources (dll, xml, config)
|
||||||
Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens
|
Source: "{#MySourcePath}\*.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Fanuc Osai Siemens
|
||||||
@@ -134,7 +134,7 @@ Source: {#IconsPath}{#SCMIcoName}; DestDir: "{app}"; Flags: ignoreversion; Compo
|
|||||||
Source: {#DotNetInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
Source: {#DotNetInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
||||||
;Check: FrameworkIsNotInstalled
|
;Check: FrameworkIsNotInstalled
|
||||||
Source: {#MariaDBInstallerPath}\{#MariaDBInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
Source: {#MariaDBInstallerPath}\{#MariaDBInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
||||||
|
|
||||||
; --- UTILS
|
; --- UTILS
|
||||||
; Fanuc scripts - TEAMVIEWER
|
; Fanuc scripts - TEAMVIEWER
|
||||||
Source: "{#ProjectPath}\Utility\*"; DestDir: "{app}\..\Utility\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
|
Source: "{#ProjectPath}\Utility\*"; DestDir: "{app}\..\Utility\"; Flags: recursesubdirs ignoreversion; Components: Fanuc Osai Siemens
|
||||||
@@ -261,7 +261,7 @@ var
|
|||||||
begin
|
begin
|
||||||
if DirExists(ExpandConstant('C:\CMS\Active\Active\Config')) then begin
|
if DirExists(ExpandConstant('C:\CMS\Active\Active\Config')) then begin
|
||||||
// Ask the user a Yes/No question, defaulting to No
|
// Ask the user a Yes/No question, defaulting to No
|
||||||
if not (MsgBox('La cartella "Config" esiste già. Vuoi sovrascriverla?', mbConfirmation, MB_YESNO) = IDYES) then
|
if not (MsgBox('La cartella "Config" esiste già. Vuoi sovrascriverla?', mbConfirmation, MB_YESNO) = IDYES) then
|
||||||
begin
|
begin
|
||||||
// user clicked NO
|
// user clicked NO
|
||||||
Result:= false;
|
Result:= false;
|
||||||
@@ -296,7 +296,7 @@ var
|
|||||||
if CustomInputOptionCMSorSCM.Values[0]
|
if CustomInputOptionCMSorSCM.Values[0]
|
||||||
then IsSCM := false
|
then IsSCM := false
|
||||||
else
|
else
|
||||||
IsSCM := true
|
IsSCM := true;
|
||||||
|
|
||||||
if CurStep = ssPostInstall then
|
if CurStep = ssPostInstall then
|
||||||
begin
|
begin
|
||||||
|
|||||||
@@ -0,0 +1,217 @@
|
|||||||
|
;================================= 01.02.21 =====
|
||||||
|
; CMS S.p.A. - UX-HMI Office
|
||||||
|
;
|
||||||
|
; Setup for Active
|
||||||
|
; Inno Setup Compiler version 5.6.0
|
||||||
|
;==================================================
|
||||||
|
|
||||||
|
#define AppName "CMS Active"
|
||||||
|
#define FolderName "Thermo.Active"
|
||||||
|
|
||||||
|
#define MyAppPublisher "CMS"
|
||||||
|
#define MyAppURL "https://www.scmgroup.com/it/cms"
|
||||||
|
#define MyAppExeName "Thermo.Active.exe"
|
||||||
|
|
||||||
|
#define ProjectPath ""
|
||||||
|
#define MySourcePath ProjectPath + "bin"
|
||||||
|
#define WwwRootPath ProjectPath + "wwwroot"
|
||||||
|
#define IconsPath ProjectPath + "Desktop_Link"
|
||||||
|
#define ToolInstallerPath "SetupTools"
|
||||||
|
#define MyAppVersion GetFileVersion( MySourcePath + '\Thermo.Active.exe')
|
||||||
|
#define OutBaseDir "C:\CMS\AutoBuild"
|
||||||
|
#define OutDir OutBaseDir + "\" + MyAppVersion
|
||||||
|
|
||||||
|
|
||||||
|
; Support installers
|
||||||
|
; .Net
|
||||||
|
; MariaDb
|
||||||
|
; cms_inv_diag
|
||||||
|
#define DotNetInstallerName "NDP462-KB3151800-x86-x64-AllOS-ENU.exe"
|
||||||
|
#define MariaDBInstallerName "mariadb-10.3.13-winx64.msi"
|
||||||
|
#define CmsInvDiagPath "cms_inv_diag"
|
||||||
|
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppName={#AppName}
|
||||||
|
AppVersion={#MyAppVersion}
|
||||||
|
AppVerName={#AppName} {#MyAppVersion}
|
||||||
|
AppPublisher={#MyAppPublisher}
|
||||||
|
AppPublisherURL={#MyAppURL}
|
||||||
|
AppSupportURL={#MyAppURL}
|
||||||
|
AppUpdatesURL={#MyAppURL}
|
||||||
|
DisableDirPage=true
|
||||||
|
DisableProgramGroupPage=yes
|
||||||
|
Compression=lzma
|
||||||
|
SolidCompression=true
|
||||||
|
OutputDir={#OutDir}
|
||||||
|
UsePreviousAppDir=no
|
||||||
|
OutputBaseFilename=ActiveSetup_{#MyAppVersion}
|
||||||
|
|
||||||
|
VersionInfoVersion={#MyAppVersion}
|
||||||
|
VersionInfoCompany={#MyAppPublisher}
|
||||||
|
VersionInfoTextVersion={#MyAppVersion}
|
||||||
|
VersionInfoCopyright={#MyAppPublisher}
|
||||||
|
DefaultDirName = C:\CMS\{#FolderName}\{#FolderName}
|
||||||
|
WindowVisible=false
|
||||||
|
PrivilegesRequired=admin
|
||||||
|
|
||||||
|
|
||||||
|
; Setup installation type
|
||||||
|
[Types]
|
||||||
|
Name: custom; Description: CMS installation; Flags: iscustom
|
||||||
|
|
||||||
|
; Set NC types, this types are used to configure server config file
|
||||||
|
[Components]
|
||||||
|
|
||||||
|
[Languages]
|
||||||
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||||
|
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
|
||||||
|
|
||||||
|
[CustomMessages]
|
||||||
|
english.CreateStartupIcon=Create Startup &icon
|
||||||
|
italian.CreateStartupIcon = Crea il collegamento in &Esecuzione Automatica
|
||||||
|
|
||||||
|
english.InstallDotNet = Install .Net 4.6.2
|
||||||
|
english.InstallMariaDB = Install MariaDB
|
||||||
|
|
||||||
|
italian.InstallDotNet = Installa .Net 4.6.2
|
||||||
|
italian.InstallMariaDB = Installa MariaDB
|
||||||
|
|
||||||
|
italian.InstallingMariaDB = Installando MariaDB
|
||||||
|
english.InstallingMariaDB = Installing MariaDB
|
||||||
|
|
||||||
|
italian.InstallingDotNet = Installando .Net
|
||||||
|
english.InstallingDotNet = Installing .Net
|
||||||
|
|
||||||
|
[Tasks]
|
||||||
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone;
|
||||||
|
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||||
|
Name: startupicon; Description: {cm:CreateStartupIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkablealone;
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "{#MySourcePath}\Thermo.Active.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
|
|
||||||
|
; Path to exe resources (dll, xml, config)
|
||||||
|
Source: "{#MySourcePath}\*.config"; DestDir: "{app}"; Flags: ignoreversion;
|
||||||
|
; Configuration files
|
||||||
|
Source: "{#MySourcePath}\Config\*.xml"; DestDir: "{app}\Config\"; Flags: ignoreversion;
|
||||||
|
; Languages
|
||||||
|
Source: "{#MySourcePath}\languages\*.*"; DestDir: "{app}\languages\"; Flags: ignoreversion;
|
||||||
|
; dll
|
||||||
|
Source: "{#MySourcePath}\dll\*.*"; DestDir: "{app}\dll\"; Flags: ignoreversion recursesubdirs;
|
||||||
|
; Client copy
|
||||||
|
Source: "{#MySourcePath}\Client\*.*"; DestDir: "{app}\Client\"; Flags: recursesubdirs ignoreversion; AfterInstall: DeleteLocalStorage
|
||||||
|
; WWWRoot Files
|
||||||
|
Source: "{#WwwRootPath}\favicon.ico"; DestDir: "{app}\view\"; Flags: ignoreversion;
|
||||||
|
Source: "{#WwwRootPath}\index.html"; DestDir: "{app}\view\"; Flags: ignoreversion;
|
||||||
|
; WWWRoot Directories
|
||||||
|
Source: "{#WwwRootPath}\dist\*"; DestDir: "{app}\view\dist\"; Flags: recursesubdirs ignoreversion;
|
||||||
|
Source: "{#WwwRootPath}\libs\*"; DestDir: "{app}\view\libs\"; Flags: recursesubdirs ignoreversion;
|
||||||
|
Source: "{#WwwRootPath}\assets\*"; DestDir: "{app}\view\assets\"; Flags: recursesubdirs ignoreversion;
|
||||||
|
Source: "{#WwwRootPath}\scripts\*"; DestDir: "{app}\view\scripts\"; Flags: recursesubdirs ignoreversion;
|
||||||
|
|
||||||
|
|
||||||
|
;.Net Installer
|
||||||
|
Source: {#ToolInstallerPath}\{#DotNetInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
||||||
|
;Check: FrameworkIsNotInstalled
|
||||||
|
Source: {#ToolInstallerPath}\{#MariaDBInstallerName}; DestDir: {tmp}; Flags: deleteafterinstall;
|
||||||
|
|
||||||
|
; --- UTILS
|
||||||
|
; Fanuc scripts - TEAMVIEWER
|
||||||
|
Source: "{#ProjectPath}Utility\*"; DestDir: "{app}\..\Utility\"; Flags: recursesubdirs ignoreversion;
|
||||||
|
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
; Default icons
|
||||||
|
Name: {group}\{#AppName}; Filename: {app}\{#MyAppExeName};
|
||||||
|
Name: {userdesktop}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon;
|
||||||
|
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon;
|
||||||
|
Name: {userstartup}\{#AppName}; Filename: {app}\{#MyAppExeName}; Tasks: startupicon;
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
; Install .net
|
||||||
|
Filename: {tmp}\{#DotNetInstallerName}; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingDotNet}; Check: NetFrameworkNeedInstall
|
||||||
|
;Check: NetFrameworkIsMissing
|
||||||
|
; Install MariaDb
|
||||||
|
Filename: "msiexec.exe"; Description: {cm:InstallDotNet}; WorkingDir:{tmp}; StatusMsg: {cm:InstallingMariaDB}; Parameters: "/i {tmp}\{#MariaDBInstallerName}"; Check: CheckHeidiSQLNeedInstall;
|
||||||
|
|
||||||
|
/// MinVersion: 10
|
||||||
|
[Registry]
|
||||||
|
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Active"; ValueData: "C:\CMS\ACTIVE\Active\Active.exe"; MinVersion: 10;
|
||||||
|
|
||||||
|
[Code]
|
||||||
|
///////////// SiemensPath ///////////////////////////////
|
||||||
|
var
|
||||||
|
CheckBoxIni: TCheckBox;
|
||||||
|
OverwriteConfig: Boolean;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////// Check .NET Framework 4.6.2 ////////////////////////////////////
|
||||||
|
|
||||||
|
function NetFrameworkNeedInstall(): Boolean;
|
||||||
|
var
|
||||||
|
bSuccess: Boolean;
|
||||||
|
regVersion: Cardinal;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
|
||||||
|
bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Release', regVersion);
|
||||||
|
if (True = bSuccess) and (regVersion >= 394802) then begin
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
///////////// Check heidiSQL /////////////////
|
||||||
|
function CheckHeidiSQLNeedInstall: Boolean;
|
||||||
|
begin
|
||||||
|
if FileExists(ExpandConstant('C:\Program Files (x86)\Common Files\MariaDBShared\HeidiSQL\heidisql.exe'))
|
||||||
|
then Result:= false
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Result:= True
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////// CheckConfigExistence /////////////////////////////
|
||||||
|
function OverwriteConfigModal: Boolean;
|
||||||
|
begin
|
||||||
|
if DirExists(ExpandConstant('C:\CMS\Thermo.Active\Thermo.Active\Config')) then begin
|
||||||
|
// Ask the user a Yes/No question, defaulting to No
|
||||||
|
if not (MsgBox('La cartella "Config" esiste già. Vuoi sovrascriverla?', mbConfirmation, MB_YESNO) = IDYES) then
|
||||||
|
begin
|
||||||
|
// user clicked NO
|
||||||
|
Result:= false;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Result:= True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GetOverwriteConfig: Boolean;
|
||||||
|
begin
|
||||||
|
Result:= OverwriteConfig;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/////////////////// DeleteLocalStorage //////////////////////
|
||||||
|
procedure DeleteLocalStorage;
|
||||||
|
begin
|
||||||
|
DelTree(ExpandConstant('{app}\Client\LocalStorage'), True, True, True);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
///////////// InitializeWizard //////////////////////////
|
||||||
|
procedure InitializeWizard();
|
||||||
|
begin
|
||||||
|
OverwriteConfig := OverwriteConfigModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CurStepChanged(CurStep: TSetupStep);
|
||||||
|
begin
|
||||||
|
if CurStep = ssPostInstall then
|
||||||
|
begin
|
||||||
|
DeleteLocalStorage;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user