Compare commits
594 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b51c9f897c | |||
| a9c16963b1 | |||
| 42be145f0e | |||
| 6b34c5f590 | |||
| d9512f73cc | |||
| d8f523c497 | |||
| acdf473fe4 | |||
| 811e0b0bd1 | |||
| 536112ef48 | |||
| 9f167377df | |||
| 2d3869ddae | |||
| 2261bec8da | |||
| 920d4fcdb2 | |||
| 4c7f12466d | |||
| 76d0593f4d | |||
| e25e861224 | |||
| 6b420387e3 | |||
| 459ba7875c | |||
| 5290c9e208 | |||
| f1e52ed3c6 | |||
| cd6d0b9e38 | |||
| 992b7b8df2 | |||
| b150f5bcfe | |||
| a0d4e0e2e1 | |||
| cc9f87d079 | |||
| 4f6f5ab867 | |||
| d272ff5e02 | |||
| 8c48b2c714 | |||
| ee924dce19 | |||
| 79874f92c1 | |||
| 846ae78de7 | |||
| bc51324ed0 | |||
| d92d0e8b3e | |||
| a98de74f19 | |||
| df0532dbed | |||
| d7fc81b460 | |||
| 65543fc44d | |||
| e77f4f2900 | |||
| 1b0432babe | |||
| 8579511e95 | |||
| 9a4bb57ddb | |||
| 9e08721ebc | |||
| a48c986086 | |||
| c820e98403 | |||
| 8c9c2614ff | |||
| 8798a2a00f | |||
| f5d9ef2dd9 | |||
| 3c29a47fc9 | |||
| 488add201e | |||
| a552ab5cae | |||
| fad81cfb47 | |||
| ce150ed3c7 | |||
| 5831936b24 | |||
| 1b31f05fb2 | |||
| e2b07ff9ca | |||
| 6066c7155b | |||
| 07719b3fde | |||
| 59051dc908 | |||
| a3b73742c2 | |||
| b732d1d024 | |||
| 71955744f6 | |||
| 807e225de8 | |||
| 26000cffd1 | |||
| 99a6af2491 | |||
| 251795ad19 | |||
| 002310dcb4 | |||
| 8db88e9ca6 | |||
| 956b9ad191 | |||
| 02cf47426c | |||
| e2e190cf8f | |||
| 23f2299de2 | |||
| e3f376bf51 | |||
| 06e3345d2b | |||
| cf6fdeaa79 | |||
| 3b823cec89 | |||
| b0684fa03f | |||
| b48c18ac12 | |||
| d452e69a52 | |||
| f9c354acf5 | |||
| d0ee6d33d1 | |||
| 91df9b99d4 | |||
| 6cd224d6ce | |||
| 192722d10e | |||
| 6095f02b2a | |||
| eae5ecdf31 | |||
| ceccfca48a | |||
| 2dc5ca8ebe | |||
| f71c03186e | |||
| 9f7b60234a | |||
| 5a209dc1ff | |||
| 0a47e22987 | |||
| 6811c29f01 | |||
| f168f6a9d0 | |||
| 4343386cce | |||
| 1a97ad094f | |||
| e550a386ec | |||
| 66865d8e98 | |||
| 245844a243 | |||
| de48382f3d | |||
| bc75c29f80 | |||
| e7e2601a8d | |||
| 4ea2cebfeb | |||
| 1dd83f4e17 | |||
| ab2abc7c2e | |||
| 8ac729f9bf | |||
| 6cabb05270 | |||
| 9515269f39 | |||
| 821f91b318 | |||
| 6c96d8f259 | |||
| ed946dcd33 | |||
| 684ccab8a0 | |||
| d88f3f3d47 | |||
| ce02165197 | |||
| e53f233f42 | |||
| 6789f9162b | |||
| aa78101506 | |||
| fe4f91d4ae | |||
| fcc404f048 | |||
| aefad3422c | |||
| 04f67ac97c | |||
| 9eefbe43cc | |||
| c5bb2f5658 | |||
| 7424af263f | |||
| 8e5d1f82cb | |||
| 3bd3c5e516 | |||
| f6182aa622 | |||
| d7590f46fe | |||
| ed8f87c6d3 | |||
| d315eaeca2 | |||
| ee4356105a | |||
| e921177b38 | |||
| a133b5d49a | |||
| de271c10af | |||
| a82fc98348 | |||
| 5b2841c01b | |||
| 5d3edf46c6 | |||
| 50c4d72464 | |||
| 870d525c41 | |||
| 0b0523cb28 | |||
| 34ab4d7adb | |||
| b5d1bc37cf | |||
| fdeb79c7e2 | |||
| cdc7b49387 | |||
| c5cd0b1c92 | |||
| a48ca84178 | |||
| fa9325c504 | |||
| 9a7c40e020 | |||
| 25444bf1a3 | |||
| 7a73cc4b08 | |||
| dc17731a5c | |||
| 32510556d6 | |||
| be747c7e39 | |||
| 7a48f34fb9 | |||
| 1fe26026b6 | |||
| 65ee4154f1 | |||
| 18bc2da627 | |||
| 20a829b50b | |||
| b287da9b95 | |||
| 688420c42b | |||
| 279dfb6bb0 | |||
| e6dcbf11ac | |||
| 5e4fecdc6f | |||
| c55f0eddcd | |||
| 92b9cea7d8 | |||
| 86370282ed | |||
| 6dcffeb72b | |||
| e17d5c25de | |||
| ad589992f3 | |||
| de4dfdcbb0 | |||
| 49e3242f3f | |||
| dafafbca13 | |||
| daf9c93309 | |||
| eedd1bee1f | |||
| 5aa519ea72 | |||
| a2efd0d3f3 | |||
| 62b0a6d481 | |||
| 20013ef3e4 | |||
| 4a4223957d | |||
| bbc5d131ad | |||
| 2741c56a22 | |||
| e12c5e6b62 | |||
| 1329b7d91f | |||
| 062aa0ad27 | |||
| 997f8fdfb4 | |||
| 6134047b61 | |||
| eb4ad92f3e | |||
| f54f96a42f | |||
| 8fcd50d47b | |||
| 23e8767604 | |||
| c11f9028db | |||
| ad196ad788 | |||
| f906a05969 | |||
| 8742cbee18 | |||
| 7ed56b3a68 | |||
| 54685853bb | |||
| fa060cb839 | |||
| 91872776f0 | |||
| 77d8a6dbac | |||
| d030f09709 | |||
| 8858602f9c | |||
| 3574dffaa6 | |||
| ed74fb9b37 | |||
| c0fdf9668b | |||
| 97c4ce8c26 | |||
| 12dc55ef8c | |||
| cc68908084 | |||
| 99279824ef | |||
| 36c5ff8def | |||
| d32f00bde6 | |||
| 8eed4ec2eb | |||
| c249d7a9be | |||
| 0b8f0adb96 | |||
| aae6aa8c09 | |||
| 3d9458002b | |||
| b84ca57735 | |||
| a6cdf864ae | |||
| 125532639a | |||
| fac2b5fa8d | |||
| 928c0d20f9 | |||
| d74f886a06 | |||
| 685c77e721 | |||
| 808e3f1223 | |||
| 3c2bc0a48e | |||
| ef98320bdc | |||
| 9094d3eb50 | |||
| a4c704fad6 | |||
| 7915adfc3c | |||
| be7f268d2f | |||
| 5064d30221 | |||
| f0ceb42b92 | |||
| a135ad689a | |||
| 29020bb948 | |||
| e0bd76d0b7 | |||
| 3a18b0e5d3 | |||
| 87703058ac | |||
| 6776a4894d | |||
| cd478f16e4 | |||
| 695d6841f0 | |||
| 6f81be6ebe | |||
| 41563cc332 | |||
| 2493f0117e | |||
| 8370141583 | |||
| 7fe7539fe8 | |||
| 8f7c780edd | |||
| 040eed1fcd | |||
| f5f41e4c65 | |||
| 2043417668 | |||
| 579fa79bb6 | |||
| d482a7551b | |||
| d3a9de2a3b | |||
| 9347ed95b7 | |||
| 0be93533d7 | |||
| 90e03e2160 | |||
| ec6ba38e8b | |||
| 6de2453bb4 | |||
| 935d7879e7 | |||
| 4c907a2474 | |||
| c0306d9644 | |||
| 80e67bb793 | |||
| ebd0921753 | |||
| fa54e5d1e9 | |||
| 55e1961cf2 | |||
| fe82ea006b | |||
| 1f110b009b | |||
| 6fafed419f | |||
| 4c5a61d69f | |||
| cd18c6a9d3 | |||
| 23df0dbc24 | |||
| fbe3f68397 | |||
| 0a1400389f | |||
| ae6767a89d | |||
| d3f48fdcdd | |||
| 903f1a9638 | |||
| 1155cf1680 | |||
| 6f51ff274a | |||
| 4030919f9e | |||
| e56a5daefc | |||
| 6d2ffff97b | |||
| 134aaf31d4 | |||
| 7b76ea602e | |||
| 108cd688cd | |||
| 06eb1a4bc8 | |||
| 08dd11701e | |||
| 2f5eaed707 | |||
| 7d072f9bd6 | |||
| cb72e13724 | |||
| 6e5bf0888f | |||
| 4fa253fd3b | |||
| 169c07fc1a | |||
| fbe619e498 | |||
| e3f9a09063 | |||
| 097de061bf | |||
| 1c623cf512 | |||
| cbaa4bb359 | |||
| 1e5fd252d4 | |||
| d8580afd77 | |||
| ce5869f90a | |||
| dd8793a31d | |||
| 5c17d598bb | |||
| 82a25ae070 | |||
| 614105c35a | |||
| fd6648432f | |||
| 4a17830c07 | |||
| 0b5a49122d | |||
| 407d95e8e3 | |||
| 6032712414 | |||
| 1fb1bba657 | |||
| 75b4337c75 | |||
| 40664d6136 | |||
| 73d5b93c59 | |||
| bb80dc5a38 | |||
| e070a6be6e | |||
| 34779f5a31 | |||
| c80cdb8644 | |||
| 50d0c4a948 | |||
| a5436bb717 | |||
| 2f9dbd8111 | |||
| 8abc6f00c0 | |||
| a282429e3c | |||
| 49c85f347a | |||
| f58068b4f7 | |||
| 11fb2c2355 | |||
| ba3a340815 | |||
| 8a1b28020e | |||
| 00dcc638fc | |||
| cd2f21fe01 | |||
| ebbaa76054 | |||
| 8324bcf297 | |||
| f9de12a971 | |||
| 2f8c6d643a | |||
| b14d506eb2 | |||
| ccf8cd265e | |||
| 82e400b08d | |||
| dd6f280c96 | |||
| ade296ce56 | |||
| 8dd26f73d1 | |||
| a03571793e | |||
| 1d77adc01c | |||
| 73be1bb58b | |||
| a5a76d35c4 | |||
| 782caef28a | |||
| 61a5c50476 | |||
| 9fac539cfd | |||
| d0276438a4 | |||
| 4f947f0b65 | |||
| c7b96e4d78 | |||
| 3a17e13224 | |||
| f28cbfe2ec | |||
| 3efcfef9d8 | |||
| e5961d7685 | |||
| cbfd2fe3c5 | |||
| 01ac4b071e | |||
| 06f85a3e3e | |||
| 2a51a1535d | |||
| d987cef604 | |||
| 5400408355 | |||
| 78c046f117 | |||
| 339c9e1220 | |||
| c3b211fa01 | |||
| eca0787248 | |||
| 0bda8aa748 | |||
| 2f8277924a | |||
| 1862fe641b | |||
| fd0c51a72d | |||
| 4a3dba9399 | |||
| eaff5729dc | |||
| aa2bd2d1a1 | |||
| 6586840f27 | |||
| 8b447ade4a | |||
| 20a864bfb5 | |||
| 819051002e | |||
| d2e0a4eb15 | |||
| c6a108d29a | |||
| 133bec82e4 | |||
| 9aff944b49 | |||
| d51c900173 | |||
| a87b2623e0 | |||
| 6d98d185f7 | |||
| 8743f1f924 | |||
| 0d042b8698 | |||
| e29358c4ef | |||
| 44bb957508 | |||
| 5f7941f479 | |||
| d21efcb78f | |||
| 6d52ccdc9c | |||
| c857cffbe5 | |||
| d71bfe36ba | |||
| b52c2d740f | |||
| 2fd2012dd3 | |||
| d7859a61fa | |||
| 835ba31638 | |||
| 1ea2f3182a | |||
| bdc0ce1aa5 | |||
| 31519c303b | |||
| 0cfbbe069a | |||
| 04f9a8155e | |||
| de8daee8f9 | |||
| 8ccd5fc06b | |||
| d653391253 | |||
| 7ba5090dd3 | |||
| 698fd47177 | |||
| 08c6ca521a | |||
| 8d661f0bda | |||
| a44813c8a4 | |||
| f48ee73ede | |||
| 3dedafd43f | |||
| 020d8304a5 | |||
| 2a66160e84 | |||
| a52d76bb5b | |||
| 112f6ed697 | |||
| 9798b5a993 | |||
| c28c77bec9 | |||
| 9232597888 | |||
| db7a6c39c3 | |||
| 3b3b6c424e | |||
| 90ef09785c | |||
| eba5920137 | |||
| 3d16c4d682 | |||
| d6ea0e7f9a | |||
| 8bd8144294 | |||
| e5daf52bb4 | |||
| 3120746f60 | |||
| 642026eadc | |||
| e3fb330264 | |||
| edfb4c4423 | |||
| 9294cecc15 | |||
| 14ed50b58d | |||
| 3d6e711bf0 | |||
| 79bf736201 | |||
| 3a39f20b5a | |||
| fa77cc11cb | |||
| 1a120db9e3 | |||
| d3f6dc4a77 | |||
| e216f9597d | |||
| d06f36edbe | |||
| b732e1514d | |||
| 2e84a57cfb | |||
| 100c030844 | |||
| c020a5588b | |||
| 1532898329 | |||
| f3b3028167 | |||
| d367532d11 | |||
| 302456b21b | |||
| 6dc2678ecb | |||
| 99ea0958cd | |||
| 2c578a7944 | |||
| 2237e78dd0 | |||
| 71e16325b9 | |||
| 5f2540210f | |||
| 42d162c029 | |||
| 3b1528fd07 | |||
| ef2f3d7874 | |||
| 16782271a4 | |||
| 955d52b977 | |||
| 439c70f70d | |||
| d86e6b053a | |||
| 36099630a9 | |||
| e42266ffc2 | |||
| d0fabaac69 | |||
| 22310fa8a7 | |||
| 0365bfd7b2 | |||
| 786a0b234d | |||
| 7a52c9ffa5 | |||
| eeded21849 | |||
| 414d8ab889 | |||
| a353a0f628 | |||
| 5ed8386e2b | |||
| bc0a33cf7f | |||
| dcb65ad4f3 | |||
| 74c85acd2b | |||
| 117a6288bb | |||
| 95484c7ee7 | |||
| a39cefbfba | |||
| 328d5f618e | |||
| ada12efca2 | |||
| 4db37d663f | |||
| 20a271290d | |||
| bbfe28edc7 | |||
| 180334822b | |||
| 63b09c1dfb | |||
| ea32e6b506 | |||
| 74a998696f | |||
| e65ba32e09 | |||
| 2e8f0f6066 | |||
| 2199c86229 | |||
| e93711fc96 | |||
| f4223d6de0 | |||
| 61ad9a934f | |||
| fcab3a8e3d | |||
| 769699a130 | |||
| 02a8dc4ef7 | |||
| 8efdf51863 | |||
| bbec4b5306 | |||
| 06d4dc316d | |||
| 1bf5534380 | |||
| 1fb1445677 | |||
| 39bd0a2eb8 | |||
| b41417da56 | |||
| 7d496ee811 | |||
| 426eaeea95 | |||
| 1a3f7972a1 | |||
| 535082d311 | |||
| ead2383084 | |||
| 627fd320ae | |||
| c14e24caa2 | |||
| 492836c2eb | |||
| fe3374c16a | |||
| 69767cf627 | |||
| f46e818d18 | |||
| 4b3b0b6228 | |||
| 2a030da24a | |||
| 98ecbe05de | |||
| 0c48eec85c | |||
| eb631908bf | |||
| a2fa132ee2 | |||
| 92380255a6 | |||
| 3532ef89f5 | |||
| 9a21aae816 | |||
| 4830160763 | |||
| 821f0276c7 | |||
| 4b2553056c | |||
| 026a85e5ff | |||
| 85a387cc86 | |||
| dfcaac23ba | |||
| 9c1928c7ae | |||
| 506c14f82a | |||
| 10835c555e | |||
| c1adb138e7 | |||
| f06dac3a7b | |||
| 6545727c2f | |||
| cf240405a5 | |||
| e377d7ece7 | |||
| 70011ed571 | |||
| e4d3c5559a | |||
| 7232f63094 | |||
| 581dade86d | |||
| 84033194a6 | |||
| 0cb7833480 | |||
| d9c892cb11 | |||
| f08b33ebf6 | |||
| bdbc136638 | |||
| 2d4ae4c0cc | |||
| 60e8f3da34 | |||
| a1aed17621 | |||
| add63366a3 | |||
| 4f9d26c536 | |||
| bfd963f8d7 | |||
| 16bda5b2a9 | |||
| c32f50070e | |||
| 0c03082ff8 | |||
| 11928ef3bf | |||
| f745084d44 | |||
| ec06bf016d | |||
| 7ed09443d9 | |||
| d99c7b52a6 | |||
| 6c0cef552c | |||
| 87976bea45 | |||
| 93544b93a7 | |||
| 20a059602f | |||
| f9586ce949 | |||
| 46b715dd3c | |||
| d926a504d5 | |||
| a30e50fe53 | |||
| 4fd3807875 | |||
| 7bee0f3e91 | |||
| b55569e608 | |||
| 684f595878 | |||
| 1ab581bd43 | |||
| fbc6e22bf7 | |||
| b86c338b14 | |||
| ad8681991b | |||
| f018da3a5f | |||
| 440abb4e51 | |||
| 8132da127e | |||
| 2dd6f93bd0 | |||
| 2be6c229d7 | |||
| 88257068ae | |||
| d4ca3f9f1a | |||
| c2f8441e8b | |||
| 6dfee4a431 | |||
| f3c040fb1a | |||
| 67644f38b9 | |||
| 49d7b45c67 | |||
| 189d5e200f | |||
| e99d3bdb0d | |||
| 747fe636be | |||
| 6c5d9ce68d | |||
| 08cecd01f5 | |||
| fce288f451 | |||
| 2c8227e1c2 | |||
| f4e9a85e51 | |||
| c8b21095a4 | |||
| cd20b0f117 | |||
| d1ddae1f61 |
@@ -20,3 +20,4 @@ Output/
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
/ConsoleApp1
|
||||
/WindowsFormsApp1
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
declare module Recipe{
|
||||
|
||||
interface IRange{
|
||||
min: number;
|
||||
max: number;
|
||||
}
|
||||
|
||||
interface IStatus{
|
||||
visible: boolean;
|
||||
enabled: boolean;
|
||||
hasError: boolean;
|
||||
}
|
||||
|
||||
interface IValue{
|
||||
range:IRange,
|
||||
status:IStatus,
|
||||
unitMeasure:string,
|
||||
valueAct: number
|
||||
}
|
||||
|
||||
interface IRecipe{
|
||||
vacuum_main_start?:IValue,
|
||||
vacuum_main_delay?:IValue,
|
||||
vacuum_main_max_time?:IValue,
|
||||
vacuum_main_1_chart_setpointx?:IValue,
|
||||
vacuum_main_1_chart_setpointy?:IValue,
|
||||
vacuum_main_2_chart_setpointx?:IValue,
|
||||
vacuum_main_2_chart_setpointy?:IValue,
|
||||
vacuum_main_3_chart_setpointx?:IValue,
|
||||
vacuum_main_3_chart_setpointy?:IValue,
|
||||
vacuum_main_manual?:IValue,
|
||||
vacuum_direct_enabled?:IValue,
|
||||
vacuum_direct_delay?:IValue,
|
||||
vacuum_direct_time?:IValue,
|
||||
vacuum_aux_enabled?:IValue,
|
||||
vacuum_aux_delay?:IValue,
|
||||
vacuum_aux_max_time?:IValue,
|
||||
vacuum_aux_1_chart_setpointx?:IValue,
|
||||
vacuum_aux_1_chart_setpointy?:IValue,
|
||||
vacuum_aux_2_chart_setpointx?:IValue,
|
||||
vacuum_aux_2_chart_setpointy?:IValue,
|
||||
vacuum_aux_3_chart_setpointx?:IValue,
|
||||
vacuum_aux_3_chart_setpointy?:IValue,
|
||||
vacuum_aux_manual?:IValue,
|
||||
vacuum_pre_enabled?:IValue,
|
||||
vacuum_pre_delay?:IValue,
|
||||
vacuum_pre_max_time?:IValue,
|
||||
vacuum_pre_1_chart_setpointx?:IValue,
|
||||
vacuum_pre_1_chart_setpointy?:IValue,
|
||||
vacuum_pre_2_chart_setpointx?:IValue,
|
||||
vacuum_pre_2_chart_setpointy?:IValue,
|
||||
vacuum_pre_3_chart_setpointx?:IValue,
|
||||
vacuum_pre_3_chart_setpointy?:IValue
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
declare module Recipe{
|
||||
|
||||
interface IRange{
|
||||
min: number;
|
||||
max: number;
|
||||
}
|
||||
|
||||
interface IStatus{
|
||||
visible: boolean;
|
||||
enabled: boolean;
|
||||
hasError: boolean;
|
||||
}
|
||||
|
||||
interface IValue{
|
||||
range:IRange,
|
||||
status:IStatus,
|
||||
unitMeasure:string,
|
||||
valueAct: number
|
||||
}
|
||||
|
||||
interface IRecipe{
|
||||
vacuum_main_start?:IValue,
|
||||
vacuum_main_delay?:IValue,
|
||||
vacuum_main_max_time?:IValue,
|
||||
vacuum_main_1_chart_setpointx?:IValue,
|
||||
vacuum_main_1_chart_setpointy?:IValue,
|
||||
vacuum_main_2_chart_setpointx?:IValue,
|
||||
vacuum_main_2_chart_setpointy?:IValue,
|
||||
vacuum_main_3_chart_setpointx?:IValue,
|
||||
vacuum_main_3_chart_setpointy?:IValue,
|
||||
vacuum_main_manual?:IValue,
|
||||
vacuum_direct_enabled?:IValue,
|
||||
vacuum_direct_delay?:IValue,
|
||||
vacuum_direct_time?:IValue,
|
||||
vacuum_aux_enabled?:IValue,
|
||||
vacuum_aux_delay?:IValue,
|
||||
vacuum_aux_max_time?:IValue,
|
||||
vacuum_aux_1_chart_setpointx?:IValue,
|
||||
vacuum_aux_1_chart_setpointy?:IValue,
|
||||
vacuum_aux_2_chart_setpointx?:IValue,
|
||||
vacuum_aux_2_chart_setpointy?:IValue,
|
||||
vacuum_aux_3_chart_setpointx?:IValue,
|
||||
vacuum_aux_3_chart_setpointy?:IValue,
|
||||
vacuum_aux_manual?:IValue,
|
||||
vacuum_pre_enabled?:IValue,
|
||||
vacuum_pre_delay?:IValue,
|
||||
vacuum_pre_max_time?:IValue,
|
||||
vacuum_pre_1_chart_setpointx?:IValue,
|
||||
vacuum_pre_1_chart_setpointy?:IValue,
|
||||
vacuum_pre_2_chart_setpointx?:IValue,
|
||||
vacuum_pre_2_chart_setpointy?:IValue,
|
||||
vacuum_pre_3_chart_setpointx?:IValue,
|
||||
vacuum_pre_3_chart_setpointy?:IValue
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
import Slider from "@/app_modules_thermo/components/slider.vue"
|
||||
import Scheda from "@/app_modules_thermo/components/scheda.vue"
|
||||
|
||||
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
|
||||
export default class VuotoPrincipale extends Vue{
|
||||
|
||||
Recipe:Recipe.IRecipe={
|
||||
vacuum_main_delay:{
|
||||
range:{
|
||||
min:8,
|
||||
max:105
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:57
|
||||
},
|
||||
vacuum_main_max_time:{
|
||||
range:{
|
||||
min:9,
|
||||
max:127
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:30
|
||||
},
|
||||
};
|
||||
|
||||
@Prop({default:0})
|
||||
ritardo:number;
|
||||
|
||||
@Prop({default:0})
|
||||
percentuale:number;
|
||||
|
||||
@Prop({default:0})
|
||||
durata:number;
|
||||
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<section>
|
||||
<aside class="scrollable auto">
|
||||
<div class="input-area">
|
||||
<label>Partenza</label>
|
||||
<select>
|
||||
<option value="Label partenza">Label partenza</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<img src="assets/icons/png/clessidra.png" />
|
||||
<label>Ritardo</label>
|
||||
<div class="rect">
|
||||
{{ritardo}} s
|
||||
</div>
|
||||
</div>
|
||||
<slider :min="0" :max="10" v-model="ritardo" unit-of-measure="s"></slider>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<label>Portata in manuale</label>
|
||||
<div class="rect">
|
||||
{{Recipe.vacuum_main_delay.valueAct}} %
|
||||
</div>
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
|
||||
</aside>
|
||||
<hr>
|
||||
<div class="specific">
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<div class="input-area">
|
||||
<label>Durata massima</label>
|
||||
<div class="rect">
|
||||
{{Recipe.vacuum_main_max_time.valueAct}} s
|
||||
</div>
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./vuoto-principale.ts"></script>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
import Slider from "@/app_modules_thermo/components/slider.vue"
|
||||
import Scheda from "@/app_modules_thermo/components/scheda.vue"
|
||||
|
||||
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
|
||||
export default class VuotoPrincipale extends Vue{
|
||||
|
||||
Recipe:Recipe.IRecipe={
|
||||
vacuum_main_delay:{
|
||||
range:{
|
||||
min:8,
|
||||
max:105
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:57
|
||||
},
|
||||
vacuum_main_max_time:{
|
||||
range:{
|
||||
min:9,
|
||||
max:127
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:30
|
||||
},
|
||||
};
|
||||
|
||||
@Prop({default:0})
|
||||
ritardo:number;
|
||||
@Prop({default:0})
|
||||
percentuale:number;
|
||||
@Prop({default:0})
|
||||
durata:number;
|
||||
|
||||
mock_ritardo:number=this.ritardo;
|
||||
mock_percentuale:number=this.percentuale;
|
||||
mock_durata:number=this.durata;
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<section>
|
||||
<aside class="scrollable auto">
|
||||
<div class="input-area">
|
||||
<label>Partenza</label>
|
||||
<select>
|
||||
<option value="Label partenza">Label partenza</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<img src="assets/icons/png/clessidra.png" />
|
||||
<label>Ritardo</label>
|
||||
<input class="rect" v-model="Recipe.vacuum_main_delay.valueAct">
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<label>Portata in manuale</label>
|
||||
<input class="rect" v-model="mock_percentuale">
|
||||
</div>
|
||||
<slider :min="0" :max="100" v-model="mock_percentuale" :unit-of-measure="'%'"></slider>
|
||||
</aside>
|
||||
<hr>
|
||||
<div class="specific">
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<div class="input-area">
|
||||
<label>Durata massima</label>
|
||||
<input class="rect" v-model="Recipe.vacuum_main_max_time.valueAct">
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./vuoto-principale.ts"></script>
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
import Vue from 'vue';
|
||||
import Component from 'vue-class-component';
|
||||
import {Prop} from 'vue-property-decorator';
|
||||
import Slider from "@/app_modules_thermo/components/slider.vue"
|
||||
import Scheda from "@/app_modules_thermo/components/scheda.vue"
|
||||
|
||||
@Component({name:'vuotoprincipale', components: { slider:Slider, scheda:Scheda}})
|
||||
export default class VuotoPrincipale extends Vue{
|
||||
|
||||
Recipe:Recipe.IRecipe={
|
||||
vacuum_main_delay:{
|
||||
range:{
|
||||
min:8,
|
||||
max:105
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:57
|
||||
},
|
||||
vacuum_main_max_time:{
|
||||
range:{
|
||||
min:9,
|
||||
max:127
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:30
|
||||
},
|
||||
vacuum_main_manual:{
|
||||
range:{
|
||||
min:4,
|
||||
max:115
|
||||
},
|
||||
status:{
|
||||
visible:true,
|
||||
enabled:true,
|
||||
hasError:false
|
||||
},
|
||||
unitMeasure:"",
|
||||
valueAct:8
|
||||
},
|
||||
};
|
||||
|
||||
@Prop({default:0})
|
||||
ritardo:number;
|
||||
@Prop({default:0})
|
||||
percentuale:number;
|
||||
@Prop({default:0})
|
||||
durata:number;
|
||||
|
||||
mock_ritardo:number=this.ritardo;
|
||||
mock_percentuale:number=this.percentuale;
|
||||
mock_durata:number=this.durata;
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<section>
|
||||
<aside class="scrollable auto">
|
||||
<div class="input-area">
|
||||
<label>Partenza</label>
|
||||
<select>
|
||||
<option value="Label partenza">Label partenza</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<img src="assets/icons/png/clessidra.png" />
|
||||
<label>Ritardo</label>
|
||||
<input class="rect" v-model="Recipe.vacuum_main_delay.valueAct">
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_delay.range.min" :max="Recipe.vacuum_main_delay.range.max" v-model="Recipe.vacuum_main_delay.valueAct" :unit-of-measure="Recipe.vacuum_main_delay.unitMeasure"></slider>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="input-area">
|
||||
<label>Portata in manuale</label>
|
||||
<input class="rect" v-model="Recipe.vacuum_main_manual.valueAct">
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_manual.range.min" :max="Recipe.vacuum_main_manual.range.max" v-model="Recipe.vacuum_main_manual.valueAct" :unit-of-measure="Recipe.vacuum_main_manual.unitMeasure"></slider>
|
||||
</aside>
|
||||
<hr>
|
||||
<div class="specific">
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
<scheda></scheda>
|
||||
</div>
|
||||
<div class="specific">
|
||||
<div class="input-area">
|
||||
<label>Durata massima</label>
|
||||
<input class="rect" v-model="Recipe.vacuum_main_max_time.valueAct">
|
||||
</div>
|
||||
<slider :min="Recipe.vacuum_main_max_time.range.min" :max="Recipe.vacuum_main_max_time.range.max" v-model="Recipe.vacuum_main_max_time.valueAct" :unit-of-measure="Recipe.vacuum_main_max_time.unitMeasure"></slider>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./vuoto-principale.ts"></script>
|
||||
+6
-12
@@ -1,21 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Config
|
||||
namespace Client.Config
|
||||
{
|
||||
|
||||
|
||||
public static class Config
|
||||
{
|
||||
|
||||
public static SubModels.Client ClientConfig;
|
||||
public static SubModels.Connection ConnectionConfig;
|
||||
public static SubModels.VendorHmi VendorHmiConfig;
|
||||
public static SubModels.Client ClientConfig;
|
||||
public static SubModels.Connection ConnectionConfig;
|
||||
public static SubModels.VendorHmi VendorHmiConfig;
|
||||
public static SubModels.ProdSoftware ProdSoftwareConfig { get; set; }
|
||||
public static string TextEditorPath { get; set; }
|
||||
public static SubModels.Software[] ExtSoftwaresConfig { get; set; }
|
||||
public static SubModels.Software[] ExtSoftwaresConfig { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<RenderingMethod>GPU</RenderingMethod> <!-- GPU/CPU -->
|
||||
<ShowVirtualKeyboard>false</ShowVirtualKeyboard>
|
||||
<RunningOnSecondaryScreen>false</RunningOnSecondaryScreen>
|
||||
<DeveloperMode>false</DeveloperMode>
|
||||
<DeveloperMode>true</DeveloperMode>
|
||||
</Client>
|
||||
<Connection>
|
||||
<ServerUrl>localhost</ServerUrl>
|
||||
|
||||
+270
-274
@@ -1,280 +1,276 @@
|
||||
using Client.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Schema;
|
||||
|
||||
namespace Client.Config
|
||||
{
|
||||
public class ConfigController
|
||||
{
|
||||
const String ChromeScheme = "chrome";
|
||||
|
||||
public static void ReadStartupConfig()
|
||||
{
|
||||
// Read validation file
|
||||
XmlSchemaSet readerSettings = new XmlSchemaSet();
|
||||
|
||||
// Add Schema
|
||||
readerSettings.Add(null, Constants.STARTUP_CONFIG_SCHEMA_PATH);
|
||||
// Open file reader
|
||||
XDocument xmlConfigFile = XDocument.Load(Constants.STARTUP_CONFIG_PATH);
|
||||
|
||||
// Validate file
|
||||
xmlConfigFile.Validate(readerSettings, ValidationHandler);
|
||||
|
||||
// Read XML Config
|
||||
Config.ClientConfig = xmlConfigFile
|
||||
.Descendants(Constants.CLIENT_CONFIG_KEY)
|
||||
.Select(x => new SubModels.Client()
|
||||
{
|
||||
TranspColor = ValidateTranspColor(x.Element("TranspColor").Value),
|
||||
RenderingMethod = ValidateRendering(x.Element("RenderingMethod").Value),
|
||||
RunningOnSecondaryScreen = ValidateSecScreen(x.Element("RunningOnSecondaryScreen").Value),
|
||||
ShowVirtualKeyboard = ValidateVirtualKeyboard(x.Element("ShowVirtualKeyboard").Value),
|
||||
DeveloperMode = ValidateDeveloperMode(x.Element("DeveloperMode").Value),
|
||||
IsSCM = ValidateIsSCM(x.Element("IsSCM").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.ConnectionConfig = xmlConfigFile
|
||||
.Descendants(Constants.CONNECTION_CONFIG_KEY)
|
||||
.Select(x => new SubModels.Connection()
|
||||
{
|
||||
ServerUrl = ValidateServerUrl(x.Element("ServerUrl").Value),
|
||||
ServerPort = ValidateServerPort(x.Element("ServerPort").Value),
|
||||
Id = ValidateClientID(x.Element("Id").Value),
|
||||
DeleteCahceFolderOnStartup = ValidateDelCache(x.Element("DeleteCahceFolderOnStartup").Value),
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.VendorHmiConfig = xmlConfigFile
|
||||
.Descendants(Constants.VENDORHMI_CONFIG_KEY)
|
||||
.Select(x => new SubModels.VendorHmi()
|
||||
{
|
||||
FollowNcWindow = ValidateFollowNcWin(x.Element("FollowNcWindow").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.ProdSoftwareConfig = new SubModels.ProdSoftware();
|
||||
Config.ExtSoftwaresConfig = new SubModels.Software[] { };
|
||||
|
||||
//ReadConfig Url compositing
|
||||
Config.ConnectionConfig.ReadConfigUrl = "http://" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "/" + Constants.ConfigPage;
|
||||
Config.ConnectionConfig.StartingUrl = "http://" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "/" + Constants.StartingPage;
|
||||
|
||||
//ErrorPage content
|
||||
if (File.Exists(Constants.errorPageFile))
|
||||
Config.ConnectionConfig.ErrorPage = File.ReadAllText(Constants.errorPageFile);
|
||||
else
|
||||
throw new Exception(@"File Error: """ + Constants.errorPageFile + @""" not found");
|
||||
|
||||
}
|
||||
|
||||
private static void ValidationHandler(object sender, ValidationEventArgs e)
|
||||
{
|
||||
throw new Exception(@"Configuration Error: " + e.Message);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region PROPERTIES_VALIDATOR
|
||||
|
||||
private static String ValidateServerUrl(String value)
|
||||
{
|
||||
if (!String.IsNullOrWhiteSpace(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - ServerUrl"" is not a valid URL");
|
||||
}
|
||||
|
||||
|
||||
private static ushort ValidateServerPort(String value)
|
||||
{
|
||||
if (ushort.TryParse(value, out ushort Port))
|
||||
return Port;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - ServerPort"" is not a valid Id of CMS-Client");
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateArgumentUrl(String value)
|
||||
{
|
||||
Uri NewUrl;
|
||||
if (Uri.TryCreate(value, UriKind.Absolute, out NewUrl) && (NewUrl.Scheme == Uri.UriSchemeHttp || NewUrl.Scheme == Uri.UriSchemeHttps || NewUrl.Scheme == Uri.UriSchemeFile || NewUrl.Scheme == ChromeScheme))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Argument Url Error: is not a valid URL");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Color ValidateTranspColor(String value)
|
||||
{
|
||||
Color color;
|
||||
try
|
||||
{
|
||||
color = ColorTranslator.FromHtml(value);
|
||||
return color;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new Exception(@"Configuration Error: ""Client - TranspColor"" is not a valid Hex Color");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Constants.Rendering ValidateRendering(string value)
|
||||
{
|
||||
if (value.ToUpper().Equals("CPU"))
|
||||
return Constants.Rendering.CPU;
|
||||
else if (value.ToUpper().Equals("GPU"))
|
||||
return Constants.Rendering.GPU;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - RenderingMethod"" is not a valid Rendering Method");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateSecScreen(string value)
|
||||
{
|
||||
Boolean secScreen;
|
||||
if (Boolean.TryParse(value, out secScreen))
|
||||
return secScreen;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - RunningOnSecondaryScreen"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
private static bool ValidateIsSCM(string value)
|
||||
{
|
||||
Boolean IsSCM;
|
||||
if (Boolean.TryParse(value, out IsSCM))
|
||||
return IsSCM;
|
||||
using Client.Utils;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Schema;
|
||||
|
||||
namespace Client.Config
|
||||
{
|
||||
public class ConfigController
|
||||
{
|
||||
const String ChromeScheme = "chrome";
|
||||
|
||||
public static void ReadStartupConfig()
|
||||
{
|
||||
// Read validation file
|
||||
XmlSchemaSet readerSettings = new XmlSchemaSet();
|
||||
|
||||
// Add Schema
|
||||
readerSettings.Add(null, Constants.STARTUP_CONFIG_SCHEMA_PATH);
|
||||
// Open file reader
|
||||
XDocument xmlConfigFile = XDocument.Load(Constants.STARTUP_CONFIG_PATH);
|
||||
|
||||
// Validate file
|
||||
xmlConfigFile.Validate(readerSettings, ValidationHandler);
|
||||
|
||||
// Read XML Config
|
||||
Config.ClientConfig = xmlConfigFile
|
||||
.Descendants(Constants.CLIENT_CONFIG_KEY)
|
||||
.Select(x => new SubModels.Client()
|
||||
{
|
||||
TranspColor = ValidateTranspColor(x.Element("TranspColor").Value),
|
||||
RenderingMethod = ValidateRendering(x.Element("RenderingMethod").Value),
|
||||
RunningOnSecondaryScreen = ValidateSecScreen(x.Element("RunningOnSecondaryScreen").Value),
|
||||
ShowVirtualKeyboard = ValidateVirtualKeyboard(x.Element("ShowVirtualKeyboard").Value),
|
||||
DeveloperMode = ValidateDeveloperMode(x.Element("DeveloperMode").Value),
|
||||
IsSCM = ValidateIsSCM(x.Element("IsSCM").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.ConnectionConfig = xmlConfigFile
|
||||
.Descendants(Constants.CONNECTION_CONFIG_KEY)
|
||||
.Select(x => new SubModels.Connection()
|
||||
{
|
||||
ServerUrl = ValidateServerUrl(x.Element("ServerUrl").Value),
|
||||
ServerPort = ValidateServerPort(x.Element("ServerPort").Value),
|
||||
Id = ValidateClientID(x.Element("Id").Value),
|
||||
DeleteCahceFolderOnStartup = ValidateDelCache(x.Element("DeleteCahceFolderOnStartup").Value),
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.VendorHmiConfig = xmlConfigFile
|
||||
.Descendants(Constants.VENDORHMI_CONFIG_KEY)
|
||||
.Select(x => new SubModels.VendorHmi()
|
||||
{
|
||||
FollowNcWindow = ValidateFollowNcWin(x.Element("FollowNcWindow").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
Config.ProdSoftwareConfig = new SubModels.ProdSoftware();
|
||||
Config.ExtSoftwaresConfig = new SubModels.Software[] { };
|
||||
|
||||
//ReadConfig Url compositing
|
||||
Config.ConnectionConfig.ReadConfigUrl = "http://" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "/" + Constants.ConfigPage;
|
||||
Config.ConnectionConfig.StartingUrl = "http://" + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + "/" + Constants.StartingPage;
|
||||
|
||||
//ErrorPage content
|
||||
if (File.Exists(Constants.errorPageFile))
|
||||
Config.ConnectionConfig.ErrorPage = File.ReadAllText(Constants.errorPageFile);
|
||||
else
|
||||
throw new Exception(@"File Error: """ + Constants.errorPageFile + @""" not found");
|
||||
|
||||
}
|
||||
|
||||
private static void ValidationHandler(object sender, ValidationEventArgs e)
|
||||
{
|
||||
throw new Exception(@"Configuration Error: " + e.Message);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region PROPERTIES_VALIDATOR
|
||||
|
||||
private static String ValidateServerUrl(String value)
|
||||
{
|
||||
if (!String.IsNullOrWhiteSpace(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - ServerUrl"" is not a valid URL");
|
||||
}
|
||||
|
||||
|
||||
private static ushort ValidateServerPort(String value)
|
||||
{
|
||||
if (ushort.TryParse(value, out ushort Port))
|
||||
return Port;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - ServerPort"" is not a valid Id of CMS-Client");
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateArgumentUrl(String value)
|
||||
{
|
||||
Uri NewUrl;
|
||||
if (Uri.TryCreate(value, UriKind.Absolute, out NewUrl) && (NewUrl.Scheme == Uri.UriSchemeHttp || NewUrl.Scheme == Uri.UriSchemeHttps || NewUrl.Scheme == Uri.UriSchemeFile || NewUrl.Scheme == ChromeScheme))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Argument Url Error: is not a valid URL");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Color ValidateTranspColor(String value)
|
||||
{
|
||||
Color color;
|
||||
try
|
||||
{
|
||||
color = ColorTranslator.FromHtml(value);
|
||||
return color;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw new Exception(@"Configuration Error: ""Client - TranspColor"" is not a valid Hex Color");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Constants.Rendering ValidateRendering(string value)
|
||||
{
|
||||
if (value.ToUpper().Equals("CPU"))
|
||||
return Constants.Rendering.CPU;
|
||||
else if (value.ToUpper().Equals("GPU"))
|
||||
return Constants.Rendering.GPU;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - RenderingMethod"" is not a valid Rendering Method");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateSecScreen(string value)
|
||||
{
|
||||
Boolean secScreen;
|
||||
if (Boolean.TryParse(value, out secScreen))
|
||||
return secScreen;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - RunningOnSecondaryScreen"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
private static bool ValidateIsSCM(string value)
|
||||
{
|
||||
Boolean IsSCM;
|
||||
if (Boolean.TryParse(value, out IsSCM))
|
||||
return IsSCM;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - IsSCM"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateVirtualKeyboard(string value)
|
||||
{
|
||||
Boolean keyboard;
|
||||
if (Boolean.TryParse(value, out keyboard))
|
||||
return keyboard;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - ShowVirtualKeyboard"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateDeveloperMode(string value)
|
||||
{
|
||||
Boolean DeveloperMode;
|
||||
if (Boolean.TryParse(value, out DeveloperMode))
|
||||
return DeveloperMode;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - DeveloperMode"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static Boolean ValidateFollowNcWin(String value)
|
||||
{
|
||||
Boolean FollowNc;
|
||||
if (Boolean.TryParse(value, out FollowNc))
|
||||
return FollowNc;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""VendorHmi - FollowNcWindow"" is not a valid Boolean Type");
|
||||
}
|
||||
|
||||
|
||||
private static ushort ValidateClientID(String value)
|
||||
{
|
||||
ushort Client;
|
||||
if (ushort.TryParse(value, out Client))
|
||||
return Client;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - Id"" is not a valid Id of CMS-Client");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Boolean ValidateDelCache(String value)
|
||||
{
|
||||
Boolean DelCache;
|
||||
if (Boolean.TryParse(value, out DelCache))
|
||||
return DelCache;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - DeleteCahceFolderOnStartup"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTPath(String value)
|
||||
{
|
||||
if (File.Exists(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: File """ + value + @""" not found");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTSName(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
{
|
||||
if (value.Count() <= 3)
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: Short Name """ + value + @""" cannot be over 3 Letters");
|
||||
}
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - IsSCM"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateVirtualKeyboard(string value)
|
||||
{
|
||||
Boolean keyboard;
|
||||
if (Boolean.TryParse(value, out keyboard))
|
||||
return keyboard;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - ShowVirtualKeyboard"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static bool ValidateDeveloperMode(string value)
|
||||
{
|
||||
Boolean DeveloperMode;
|
||||
if (Boolean.TryParse(value, out DeveloperMode))
|
||||
return DeveloperMode;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - DeveloperMode"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static Boolean ValidateFollowNcWin(String value)
|
||||
{
|
||||
Boolean FollowNc;
|
||||
if (Boolean.TryParse(value, out FollowNc))
|
||||
return FollowNc;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""VendorHmi - FollowNcWindow"" is not a valid Boolean Type");
|
||||
}
|
||||
|
||||
|
||||
private static ushort ValidateClientID(String value)
|
||||
{
|
||||
ushort Client;
|
||||
if (ushort.TryParse(value, out Client))
|
||||
return Client;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - Id"" is not a valid Id of CMS-Client");
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static Boolean ValidateDelCache(String value)
|
||||
{
|
||||
Boolean DelCache;
|
||||
if (Boolean.TryParse(value, out DelCache))
|
||||
return DelCache;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Connection - DeleteCahceFolderOnStartup"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTPath(String value)
|
||||
{
|
||||
if(File.Exists(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: File """+ value + @""" not found");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTSName(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
{
|
||||
if (value.Count() <= 3)
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: Short Name """ + value + @""" cannot be over 3 Letters");
|
||||
}
|
||||
else
|
||||
throw new Exception(@"Configuration Error: Software Short Name Must be setted");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static bool ValidateInMainMenuBar(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
{
|
||||
return Boolean.Parse(value);
|
||||
}
|
||||
else
|
||||
}
|
||||
|
||||
|
||||
private static bool ValidateInMainMenuBar(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
{
|
||||
return Boolean.Parse(value);
|
||||
}
|
||||
else
|
||||
throw new Exception(@"Configuration Error: In-Main-Menu-Bar Must be setted");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTLName(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: Software Long Name Must be setted");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ExtractBase64Icon(String value)
|
||||
{
|
||||
Image im = Icon.ExtractAssociatedIcon(value).ToBitmap();
|
||||
MemoryStream m = new MemoryStream();
|
||||
im.Save(m, ImageFormat.Png);
|
||||
return "data:image/png;base64," + Convert.ToBase64String(m.ToArray());
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static String ValidateSFTLName(String value)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(value))
|
||||
return value;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: Software Long Name Must be setted");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String ExtractBase64Icon(String value)
|
||||
{
|
||||
Image im = Icon.ExtractAssociatedIcon(value).ToBitmap();
|
||||
MemoryStream m = new MemoryStream();
|
||||
im.Save(m, ImageFormat.Png);
|
||||
return "data:image/png;base64," + Convert.ToBase64String(m.ToArray());
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Client.Utils.Constants;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
{
|
||||
@@ -15,6 +11,6 @@ namespace Client.Config.SubModels
|
||||
public string ReadConfigUrl { get; set; }
|
||||
public Boolean DeleteCahceFolderOnStartup { get; set; }
|
||||
public Boolean BypassReadConfiguration { get; set; }
|
||||
public string ErrorPage { get; set; }
|
||||
public string ErrorPage { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
namespace Client.Config.SubModels
|
||||
{
|
||||
public class ProdSoftware
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
{
|
||||
@@ -15,8 +11,8 @@ namespace Client.Config.SubModels
|
||||
public string ProdEnabled { get; set; }
|
||||
public string ProdPath { get; set; }
|
||||
public string Autorun { get; set; }
|
||||
public string EditorPath { get; set; }
|
||||
|
||||
public string EditorPath { get; set; }
|
||||
|
||||
public List<Software> ExtSoftwares { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
{
|
||||
[DataContract]
|
||||
public class Software
|
||||
{
|
||||
{
|
||||
[DataMember]
|
||||
public string id { get; set; }
|
||||
[DataMember]
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Config.SubModels
|
||||
{
|
||||
@@ -10,7 +6,7 @@ namespace Client.Config.SubModels
|
||||
{
|
||||
public Boolean Enabled { get; set; }
|
||||
public Boolean FollowNcWindow { get; set; }
|
||||
public ushort Type { get; set; } /* 0: Demo - 1: Fanuc - 2: Siemens - 3: Osai */
|
||||
public ushort Type { get; set; } /* 0: Demo - 1: Fanuc - 2: Siemens - 3: Osai - 4: Siemens S7 */
|
||||
public string IpAddress { get; set; }
|
||||
public string Port { get; set; }
|
||||
|
||||
|
||||
+25
-30
@@ -1,44 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client.Utils
|
||||
namespace Client.Utils
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
|
||||
//Folders
|
||||
public static string BASE_PATH = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\";
|
||||
public static string BROWSER_CACHE_FOLDER = BASE_PATH + "LocalStorage";
|
||||
public static string BASE_PATH = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\\";
|
||||
//public static string BASE_PATH = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\";
|
||||
public static string BROWSER_CACHE_FOLDER = BASE_PATH + "LocalStorage";
|
||||
public static string STARTUP_CONFIG_SCHEMA_PATH = BASE_PATH + "ClientValidator.xsd";
|
||||
public static string STARTUP_CONFIG_PATH = BASE_PATH + "Config.xml";
|
||||
public static string CEF_PATH = BASE_PATH + "CEF";
|
||||
public static string CEF_X86_PATH = BASE_PATH + "CEF\\Release_X86";
|
||||
public static string CEF_X64_PATH = BASE_PATH + "CEF\\Release_X64";
|
||||
public static string CEF_LOCALES_PATH = BASE_PATH + "CEF\\Resources\\locales";
|
||||
public static string CEF_EXCEPTIONLOG_PATH = BASE_PATH + "ExceptionLog";
|
||||
public static string errorPageFile = BASE_PATH + "error.pg";
|
||||
public static string JOB_OPENING_PATH = "C:\\CMS\\ACTIVE\\TMP\\clientTmpJob\\";
|
||||
public static string PART_PRG_FOLDER = "C:\\PartPrg";
|
||||
public static string STARTUP_CONFIG_PATH = BASE_PATH + "lib\\Config.xml";
|
||||
public static string CEF_PATH = BASE_PATH + "CEF";
|
||||
public static string CEF_X86_PATH = BASE_PATH + "CEF\\Release_X86";
|
||||
public static string CEF_X64_PATH = BASE_PATH + "CEF\\Release_X64";
|
||||
public static string CEF_LOCALES_PATH = BASE_PATH + "CEF\\Resources\\locales";
|
||||
public static string CEF_EXCEPTIONLOG_PATH = BASE_PATH + "ExceptionLog";
|
||||
public static string errorPageFile = BASE_PATH + "error.pg";
|
||||
public static string JOB_OPENING_PATH = "C:\\CMS\\ThermoActive\\TMP\\clientTmpJob\\";
|
||||
public static string PART_PRG_FOLDER = "C:\\PartPrg";
|
||||
|
||||
//Config Names
|
||||
public const string CONFIG_KEY = "Config";
|
||||
public const string CLIENT_CONFIG_KEY = "Client";
|
||||
public const string CONNECTION_CONFIG_KEY = "Connection";
|
||||
public const string VENDORHMI_CONFIG_KEY = "VendorHmi";
|
||||
public const string EXTSFT_CONFIG_KEY = "ExtSoftwares";
|
||||
public const string SFT_CONFIG_KEY = "Software";
|
||||
public const string JOB_MAIN_FILENAME = "main.cnc";
|
||||
public const string JOB_METADATA_FILENAME = "metadata.json";
|
||||
public enum Rendering {GPU = 0, CPU = 1 };
|
||||
public const string CONFIG_KEY = "Config";
|
||||
public const string CLIENT_CONFIG_KEY = "Client";
|
||||
public const string CONNECTION_CONFIG_KEY = "Connection";
|
||||
public const string VENDORHMI_CONFIG_KEY = "VendorHmi";
|
||||
public const string EXTSFT_CONFIG_KEY = "ExtSoftwares";
|
||||
public const string SFT_CONFIG_KEY = "Software";
|
||||
public const string JOB_MAIN_FILENAME = "main.cnc";
|
||||
public const string JOB_METADATA_FILENAME = "metadata.json";
|
||||
public enum Rendering { GPU = 0, CPU = 1 };
|
||||
|
||||
|
||||
|
||||
//BROWSER OBJECT NAME -> The first letter must be Lower-Case (CEF Settings)
|
||||
public const string BROWSER_JS_OBJ_NAME = "cmsClient";
|
||||
|
||||
|
||||
//Nc States
|
||||
public enum NcState { HIDE = 0, SHOW = 1, SHOWPROD = 2 };
|
||||
|
||||
@@ -68,13 +63,13 @@ namespace Client.Utils
|
||||
|
||||
//KEYBOARD Constants
|
||||
public const int KEYB_HEIGHT = 377;
|
||||
public const int KEYB_WIDTH = 1134;
|
||||
public const int KEYB_WIDTH = 1134;
|
||||
public const int KEYB_Y_OFFSET = 15;
|
||||
public const string KEYB_EXE_NAME = "OSK.EXE";
|
||||
public const string KEYB_PROC_NAME = "OSK";
|
||||
|
||||
public const string StartingPage = "index.html";
|
||||
public const string UPLOAD_PAGE = "/api/file_manager/upload";
|
||||
public const string UPLOAD_PAGE = "/api/file_manager/upload";
|
||||
public const string UPLOAD_ADD_QUEUE = "/api/file_manager/queue/add";
|
||||
public const string ConfigPage = "api/configuration/client";
|
||||
public const string errorPageUrl = @"error://error/";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
+8
-3
@@ -1,6 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<probing privatePath="lib;libs" />
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,13 +1,13 @@
|
||||
using Chromium;
|
||||
using Active_Client.Browser_Tools.Models;
|
||||
using Active_Client.Browser_Tools.Models.Errors;
|
||||
using Active_Client.Browser_Tools.Models.Metadata;
|
||||
using Active_Client.View;
|
||||
using Chromium;
|
||||
using Chromium.Remote;
|
||||
using Chromium.Remote.Event;
|
||||
using Chromium.WebBrowser;
|
||||
using Client.Config;
|
||||
using Client.Config.SubModels;
|
||||
using Client.Utils;
|
||||
using Active_Client.Browser_Tools.Models;
|
||||
using Active_Client.Browser_Tools.Models.Errors;
|
||||
using Active_Client.Browser_Tools.Models.Metadata;
|
||||
using Active_Client.View;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -15,13 +15,12 @@ using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using static Client.Utils.Constants;
|
||||
using System.Management;
|
||||
using Chromium.Remote;
|
||||
using System.Text;
|
||||
|
||||
namespace Active_Client.Browser_Tools
|
||||
{
|
||||
@@ -56,7 +55,7 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
mainForm = f;
|
||||
|
||||
AddDynamicProperty("RECENT_FOLDER_KEY").PropertyGet += getProp;
|
||||
AddDynamicProperty("RECENT_FOLDER_KEY").PropertyGet += getProp;
|
||||
|
||||
AddFunction("minimizeForm").Execute += minimizeForm;
|
||||
AddFunction("maximizeForm").Execute += maximizeForm;
|
||||
@@ -383,7 +382,7 @@ namespace Active_Client.Browser_Tools
|
||||
Path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\",
|
||||
Type = "SPFO"
|
||||
});
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
// Network Folders
|
||||
@@ -429,7 +428,7 @@ namespace Active_Client.Browser_Tools
|
||||
|
||||
try
|
||||
{
|
||||
if(p == RECENT_FOLDER_KEY)
|
||||
if (p == RECENT_FOLDER_KEY)
|
||||
{
|
||||
filelist = GetLastUploadedFiles();
|
||||
}
|
||||
@@ -556,9 +555,9 @@ namespace Active_Client.Browser_Tools
|
||||
// }
|
||||
//}
|
||||
|
||||
foreach(FileModel file in files)
|
||||
foreach (FileModel file in files)
|
||||
{
|
||||
if(!file.IsMain)
|
||||
if (!file.IsMain)
|
||||
form.Add(new ByteArrayContent(File.ReadAllBytes(file.AbsolutePath)), "file", Path.GetFileName(file.AbsolutePath));
|
||||
}
|
||||
|
||||
@@ -745,13 +744,13 @@ namespace Active_Client.Browser_Tools
|
||||
func = e.Arguments[1],
|
||||
file = p
|
||||
};
|
||||
|
||||
|
||||
Thread t = new Thread(startNewEditor);
|
||||
t.Start();
|
||||
}
|
||||
|
||||
public void startNewEditor()
|
||||
{
|
||||
{
|
||||
Process proc = new Process
|
||||
{
|
||||
StartInfo = new ProcessStartInfo()
|
||||
@@ -769,7 +768,7 @@ namespace Active_Client.Browser_Tools
|
||||
|
||||
public void cleanFileWatcher(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if(watcher != null)
|
||||
if (watcher != null)
|
||||
{
|
||||
watcher.EnableRaisingEvents = false;
|
||||
|
||||
@@ -832,7 +831,7 @@ namespace Active_Client.Browser_Tools
|
||||
else
|
||||
isFirst = false;
|
||||
|
||||
stringBuilder.Append(stringVal);
|
||||
stringBuilder.Append(stringVal);
|
||||
}
|
||||
|
||||
File.WriteAllLines(RECENT_FILE_PATH, stringBuilder.ToString()
|
||||
@@ -865,7 +864,7 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
if (file.FileExist && !file.IsMain)
|
||||
files.Add(file);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
// Check if software need to upload all the files
|
||||
@@ -881,7 +880,7 @@ namespace Active_Client.Browser_Tools
|
||||
files.Add(new FileModel()
|
||||
{
|
||||
AbsolutePath = subfileName,
|
||||
FileExist = true,
|
||||
FileExist = true,
|
||||
IsDirectory = false,
|
||||
IsMain = false,
|
||||
Name = Path.GetFileName(subfileName),
|
||||
@@ -969,7 +968,7 @@ namespace Active_Client.Browser_Tools
|
||||
//Task to execute
|
||||
var task = new CfrTask();
|
||||
task.Execute += (s, e) =>
|
||||
{
|
||||
{
|
||||
context.Enter();
|
||||
var args = new CfrV8Value[] { arguments };
|
||||
functionIstance.ExecuteFunction(null, args); //execute callback, nothing happens here
|
||||
@@ -1176,7 +1175,7 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
// Find metadata.json file
|
||||
var file = zipArchive.Entries.Where(x => x.FullName == JOB_METADATA_FILENAME).FirstOrDefault();
|
||||
if(file == null)
|
||||
if (file == null)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_corrupted_model")));
|
||||
return;
|
||||
@@ -1342,7 +1341,7 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
ZipFile.CreateFromDirectory(JOB_OPENING_PATH, jobPath);
|
||||
}
|
||||
catch(Exception ex)
|
||||
catch (Exception ex)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_save_file")));
|
||||
return;
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Errors
|
||||
{
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
{
|
||||
public class FileModel
|
||||
{
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
{
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using Active_Client.Browser_Tools.Models.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
public class ImageParam
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models.Metadata
|
||||
{
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using Active_Client.Browser_Tools.Models.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Active_Client.Browser_Tools.Models
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<OutputPath>..\Thermo.Active\bin\Client_Debug\x64\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -44,7 +44,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<OutputPath>..\Thermo.Active\bin\Client\x64\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -288,4 +288,10 @@
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Target Name="AfterBuild">
|
||||
<ItemGroup>
|
||||
<MoveToLibFolder Exclude="Config.xml" Include="$(OutputPath)*.dll ; $(OutputPath)*.pdb ; $(OutputPath)*.xml" />
|
||||
</ItemGroup>
|
||||
<Move SourceFiles="@(MoveToLibFolder)" DestinationFolder="$(OutputPath)lib" OverwriteReadOnlyFiles="true" />
|
||||
</Target>
|
||||
</Project>
|
||||
+28
-31
@@ -1,21 +1,17 @@
|
||||
using Chromium;
|
||||
using Active_Client.View;
|
||||
using Chromium;
|
||||
using Chromium.Event;
|
||||
using Chromium.WebBrowser;
|
||||
using Chromium.WebBrowser.Event;
|
||||
using Client.Config;
|
||||
using Client.Utils;
|
||||
using Active_Client.View;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Active_Client
|
||||
@@ -37,8 +33,8 @@ namespace Active_Client
|
||||
|
||||
//Crate General Exception Handler
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(GeneralExMethod);
|
||||
|
||||
//Read App Configuration
|
||||
|
||||
//Read App Configuration
|
||||
readConfiguration();
|
||||
|
||||
//Initialize Chromium
|
||||
@@ -66,9 +62,9 @@ namespace Active_Client
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
//Check Graphic Card in Energy Saving mode
|
||||
checkGraphicCard();
|
||||
|
||||
//Run the Loading Form
|
||||
checkGraphicCard();
|
||||
|
||||
//Run the Loading Form
|
||||
Application.Run(new OpeningForm());
|
||||
|
||||
//Run the Main-Browser Form
|
||||
@@ -76,14 +72,14 @@ namespace Active_Client
|
||||
|
||||
//Force show Taskbar
|
||||
NcWindow.ShowTaskBar();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region CONFIG_METHODS
|
||||
|
||||
//Sub-Method used to read the configuration
|
||||
|
||||
//Sub-Method used to read the configuration
|
||||
static private void readConfiguration()
|
||||
{
|
||||
//Read the Config
|
||||
@@ -107,7 +103,8 @@ namespace Active_Client
|
||||
{
|
||||
//Prepare List of Cards
|
||||
String Cardlist = "";
|
||||
foreach (ManagementObject card in VideoCards){
|
||||
foreach (ManagementObject card in VideoCards)
|
||||
{
|
||||
Cardlist = Cardlist + " - " + card["Name"] + "\n";
|
||||
}
|
||||
|
||||
@@ -121,7 +118,7 @@ namespace Active_Client
|
||||
{
|
||||
//code if key Not Exist add it and restart
|
||||
Registry.SetValue(keyName, valueName, "GpuPreference=1;");
|
||||
MessageBox.Show("Active has foundthis Graphic Cards:\n\n" + Cardlist +"\nThe graphic configuration has been setted. Press Ok to restart the Application",Application.ProductName);
|
||||
MessageBox.Show("Active has foundthis Graphic Cards:\n\n" + Cardlist + "\nThe graphic configuration has been setted. Press Ok to restart the Application", Application.ProductName);
|
||||
Application.Restart();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
@@ -143,10 +140,10 @@ namespace Active_Client
|
||||
if (CfxRuntime.PlatformArch == CfxPlatformArch.x64)
|
||||
CfxRuntime.LibCefDirPath = Constants.CEF_X64_PATH;
|
||||
else
|
||||
CfxRuntime.LibCefDirPath = Constants.CEF_X86_PATH;
|
||||
|
||||
|
||||
//Add the event variables
|
||||
CfxRuntime.LibCefDirPath = Constants.CEF_X86_PATH;
|
||||
|
||||
|
||||
//Add the event variables
|
||||
ChromiumWebBrowser.OnBeforeCfxInitialize += Chromium_OnBeforeCfxInitialize;
|
||||
ChromiumWebBrowser.OnBeforeCommandLineProcessing += Chromium_OnBeforeCommandLineProcessing;
|
||||
|
||||
@@ -167,11 +164,11 @@ namespace Active_Client
|
||||
static void Chromium_OnBeforeCommandLineProcessing(CfxOnBeforeCommandLineProcessingEventArgs e)
|
||||
{
|
||||
if (Config.ClientConfig.RenderingMethod == Constants.Rendering.CPU)
|
||||
e.CommandLine.AppendSwitch("--disable-gpu");
|
||||
|
||||
e.CommandLine.AppendSwitch("--disable-gpu");
|
||||
|
||||
e.CommandLine.AppendSwitch("--enable-transparent-visuals");
|
||||
e.CommandLine.AppendSwitch("--disable-pinch");
|
||||
e.CommandLine.AppendSwitch("--enable-media-stream");
|
||||
e.CommandLine.AppendSwitch("--enable-media-stream");
|
||||
e.CommandLine.AppendSwitch("--enable-usermedia-screen-capture");
|
||||
e.CommandLine.AppendSwitch("--no-proxy-server");
|
||||
|
||||
@@ -188,7 +185,7 @@ namespace Active_Client
|
||||
e.Settings.CachePath = Constants.BROWSER_CACHE_FOLDER;
|
||||
e.Settings.LocalesDirPath = Constants.CEF_LOCALES_PATH;
|
||||
e.Settings.ResourcesDirPath = CfxRuntime.LibCefDirPath;
|
||||
e.Settings.Locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName ;
|
||||
e.Settings.Locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
|
||||
}
|
||||
|
||||
|
||||
@@ -218,10 +215,10 @@ namespace Active_Client
|
||||
MessageBoxDefaultButton.Button1
|
||||
);
|
||||
Environment.Exit(-1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static void GeneralExMethod(object sender, UnhandledExceptionEventArgs args)
|
||||
{
|
||||
Exception e = (Exception)args.ExceptionObject;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
@@ -1,26 +1,14 @@
|
||||
using Microsoft.WindowsAPICodePack.Taskbar;
|
||||
using Client.Config;
|
||||
using Client.Config;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Client.Utils;
|
||||
using System.IO;
|
||||
|
||||
namespace Active_Client.View
|
||||
{
|
||||
public partial class LoadingForm : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
|
||||
//Constructor
|
||||
{
|
||||
|
||||
//Constructor
|
||||
public LoadingForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -37,7 +25,7 @@ namespace Active_Client.View
|
||||
}
|
||||
|
||||
//Set window Position
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+21
-22
@@ -1,16 +1,15 @@
|
||||
using Chromium;
|
||||
using Active_Client.Browser_Tools;
|
||||
using Chromium;
|
||||
using Chromium.Event;
|
||||
using Chromium.Remote.Event;
|
||||
using Chromium.WebBrowser;
|
||||
using Client.Config;
|
||||
using Client.Utils;
|
||||
using Active_Client.Browser_Tools;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using static Client.Utils.Constants;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Active_Client.View
|
||||
{
|
||||
@@ -31,7 +30,7 @@ namespace Active_Client.View
|
||||
private LoadingForm LdFrm;
|
||||
private static IntPtr MainHandle;
|
||||
private static IntPtr NcHandle;
|
||||
private static IntPtr ProdHandle;
|
||||
private static IntPtr ProdHandle;
|
||||
private int X = 0, Y = 0;
|
||||
private string BrokenUrl;
|
||||
private Boolean closeRight = false;
|
||||
@@ -54,7 +53,7 @@ namespace Active_Client.View
|
||||
//Setup the Icon
|
||||
if (Config.ClientConfig.IsSCM)
|
||||
this.Icon = Properties.Resources.MAESTRO_ACTIVE_ICON;
|
||||
|
||||
|
||||
//Start Client Setting
|
||||
InitializeClientSettings();
|
||||
|
||||
@@ -83,7 +82,7 @@ namespace Active_Client.View
|
||||
{
|
||||
var candidate = Screen.PrimaryScreen;
|
||||
// If primary screen is not full HD find another screen
|
||||
if(candidate.WorkingArea.Width != 1920)
|
||||
if (candidate.WorkingArea.Width != 1920)
|
||||
{
|
||||
foreach (var s in Screen.AllScreens)
|
||||
{
|
||||
@@ -125,7 +124,7 @@ namespace Active_Client.View
|
||||
|
||||
if (Config.VendorHmiConfig.Type == 3)
|
||||
NcWindow.MinimizeNcWindow();
|
||||
|
||||
|
||||
if (Config.VendorHmiConfig.Enabled)
|
||||
NcFrm.Hide();
|
||||
if (Config.ProdSoftwareConfig.Enabled)
|
||||
@@ -148,7 +147,7 @@ namespace Active_Client.View
|
||||
{
|
||||
ShowNCWindow();
|
||||
}
|
||||
else if(NcWindow.State == NcState.SHOWPROD)
|
||||
else if (NcWindow.State == NcState.SHOWPROD)
|
||||
{
|
||||
ShowProdWindow();
|
||||
}
|
||||
@@ -172,7 +171,7 @@ namespace Active_Client.View
|
||||
//Close the NC HMI && Stop Following Nc
|
||||
if (Config.VendorHmiConfig.Enabled)
|
||||
NcWindow.CloseNcWindow(false);
|
||||
|
||||
|
||||
|
||||
if (Config.ProdSoftwareConfig.Enabled)
|
||||
NcWindow.CloseProdWindow(false);
|
||||
@@ -186,7 +185,7 @@ namespace Active_Client.View
|
||||
try
|
||||
{
|
||||
CfxRuntime.Shutdown();
|
||||
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -197,7 +196,7 @@ namespace Active_Client.View
|
||||
|
||||
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if(!closeRight)
|
||||
if (!closeRight)
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
@@ -272,7 +271,7 @@ namespace Active_Client.View
|
||||
|
||||
private void BeforeDownload(object sender, CfxOnBeforeDownloadEventArgs e)
|
||||
{
|
||||
e.Callback.Continue("",true);
|
||||
e.Callback.Continue("", true);
|
||||
}
|
||||
|
||||
//On browser Load-Error. Event Handler called by Browser
|
||||
@@ -478,7 +477,7 @@ namespace Active_Client.View
|
||||
private void ShowWindow()
|
||||
{
|
||||
|
||||
if(Config.ClientConfig.DeveloperMode && Width < 1920 && Height < 1080)
|
||||
if (Config.ClientConfig.DeveloperMode && Width < 1920 && Height < 1080)
|
||||
{
|
||||
double ratio = (((double)Width) / 1920.0) * 100.0;
|
||||
//Funzione sperimentale presa da Forum CEF
|
||||
@@ -513,7 +512,7 @@ namespace Active_Client.View
|
||||
w = NcFrm.Width;
|
||||
h = NcFrm.Height;
|
||||
}
|
||||
else if(Config.ProdSoftwareConfig.Enabled)
|
||||
else if (Config.ProdSoftwareConfig.Enabled)
|
||||
{
|
||||
w = ProdFrm.Width;
|
||||
h = ProdFrm.Height;
|
||||
@@ -560,8 +559,8 @@ namespace Active_Client.View
|
||||
if (InvokeRequired)
|
||||
Invoke((MethodInvoker)delegate ()
|
||||
{
|
||||
//Set Message Status
|
||||
LdFrm.Show(Message);
|
||||
//Set Message Status
|
||||
LdFrm.Show(Message);
|
||||
LdFrm.Focus();
|
||||
});
|
||||
else
|
||||
@@ -705,7 +704,7 @@ namespace Active_Client.View
|
||||
//Hide NC Method
|
||||
public void HideAUXWindow()
|
||||
{
|
||||
if ((!Config.VendorHmiConfig.Enabled && !Config.ProdSoftwareConfig.Enabled) || (NcFrm==null && ProdFrm == null))
|
||||
if ((!Config.VendorHmiConfig.Enabled && !Config.ProdSoftwareConfig.Enabled) || (NcFrm == null && ProdFrm == null))
|
||||
return;
|
||||
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
@@ -728,7 +727,7 @@ namespace Active_Client.View
|
||||
|
||||
else
|
||||
{
|
||||
if (NcFrm != null && NcFrm.Owner != null)
|
||||
if (NcFrm != null && NcFrm.Owner != null)
|
||||
NcFrm.Owner = null;
|
||||
if (ProdFrm != null && ProdFrm.Owner != null)
|
||||
ProdFrm.Owner = null;
|
||||
@@ -770,7 +769,7 @@ namespace Active_Client.View
|
||||
if (ss.Bounds.Width != 1920 && ss.Bounds.Height != 1080)
|
||||
{
|
||||
HideLoadingWindow();
|
||||
if(Config.VendorHmiConfig.Enabled)
|
||||
if (Config.VendorHmiConfig.Enabled)
|
||||
NcWindow.CloseNcWindow(false);
|
||||
if (Config.ProdSoftwareConfig.Enabled)
|
||||
NcWindow.CloseProdWindow(false);
|
||||
@@ -778,8 +777,8 @@ namespace Active_Client.View
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
if (Config.ClientConfig.DeveloperMode)
|
||||
{
|
||||
//Set the Prymary screen Size
|
||||
@@ -789,7 +788,7 @@ namespace Active_Client.View
|
||||
this.Height = ps.Bounds.Height;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ps.Bounds.Width != 1920 && ps.Bounds.Height != 1080)
|
||||
|
||||
+3
-10
@@ -1,18 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Active_Client.View
|
||||
{
|
||||
public partial class NcForm : Form
|
||||
{
|
||||
public NcForm(Color TranspColor,int PosX,int PosY)
|
||||
public NcForm(Color TranspColor, int PosX, int PosY)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
@@ -37,7 +30,7 @@ namespace Active_Client.View
|
||||
|
||||
private void NcForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if(e.CloseReason == CloseReason.UserClosing)
|
||||
if (e.CloseReason == CloseReason.UserClosing)
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
+45
-31
@@ -1,9 +1,8 @@
|
||||
using Chromium.Remote;
|
||||
using Active_Client.Properties;
|
||||
using Chromium.Remote;
|
||||
using Client.Config;
|
||||
using Client.Utils;
|
||||
using Active_Client.Properties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
@@ -60,7 +59,7 @@ namespace Active_Client.View
|
||||
private static int LastX, LastY;
|
||||
private static int LastWidth = 1024, LastHeight = 768;
|
||||
private static IntPtr hhook;
|
||||
private static IntPtr hhookWindow;
|
||||
private static IntPtr hhookWindow;
|
||||
private static IntPtr keybhook;
|
||||
private static IntPtr MainViewHandle;
|
||||
private static IntPtr TaskBarHandle;
|
||||
@@ -70,7 +69,7 @@ namespace Active_Client.View
|
||||
private static uint ProdProcessPID;
|
||||
private static uint ActualPID;
|
||||
private static WinEventDelegate procDelegate;
|
||||
private static WinEventDelegate procDelegateWindow;
|
||||
private static WinEventDelegate procDelegateWindow;
|
||||
private static keyboardHookProc keybDelegate;
|
||||
private static uint LastdwmsEventTime;
|
||||
private static uint LastHookedPID;
|
||||
@@ -102,13 +101,13 @@ namespace Active_Client.View
|
||||
private static int ActiveWindowNCWindowStyle;
|
||||
private static int ActiveWindowNCWindowBorder;
|
||||
private static uint ActiveWindowNCPopUp;
|
||||
private static uint ActiveNCWindowNCPopUp;
|
||||
|
||||
|
||||
private static uint ActiveNCWindowNCPopUp;
|
||||
|
||||
|
||||
public static MainForm mainFrm;
|
||||
private static string prodEXEname;
|
||||
|
||||
|
||||
private static string prodEXEname;
|
||||
|
||||
|
||||
public static NcState State { get { return state; } }
|
||||
private static NcState state;
|
||||
|
||||
@@ -263,8 +262,8 @@ namespace Active_Client.View
|
||||
|
||||
//Maximize Window if is Osai
|
||||
if (Config.VendorHmiConfig.Type == 3)
|
||||
ShowWindow(ncprocess.MainWindowHandle, SW_SHOWMAXIMIZED);
|
||||
|
||||
ShowWindow(ncprocess.MainWindowHandle, SW_SHOWMAXIMIZED);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -681,8 +680,8 @@ namespace Active_Client.View
|
||||
|
||||
//Stop following Nc Window (bring-to-font the main window) -> ONLY FOR OSAI System!
|
||||
public static void StopNcFollowing()
|
||||
{
|
||||
//Detach the hook
|
||||
{
|
||||
//Detach the hook
|
||||
if (hhook != IntPtr.Zero)
|
||||
UnhookWinEvent(hhook);
|
||||
|
||||
@@ -984,9 +983,9 @@ namespace Active_Client.View
|
||||
#region WINDOWS_EVENT_OVERRIDE
|
||||
|
||||
private static void WinEventProcWindow(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
|
||||
{
|
||||
|
||||
//Read the actual ID of the Process
|
||||
{
|
||||
|
||||
//Read the actual ID of the Process
|
||||
GetWindowThreadProcessId(hwnd, out ActualWindowPID);
|
||||
if (ActualWindowPID == NcProcessPID && NcProcessPID != 0 && hWinEventHook != ncprocess.MainWindowHandle)
|
||||
{
|
||||
@@ -998,7 +997,7 @@ namespace Active_Client.View
|
||||
ActiveWindowNCPopUp = ((uint)ActiveWindowNCWindowStyle & WS_POPUP);
|
||||
|
||||
//if it has the border and a title execute focus
|
||||
if (ActiveWindowNCWindowStyle != 0 && (((ActiveWindowNCWindowBorder == WS_BORDER) && ReadWindowTitle(hwnd) != "") || (ActiveWindowNCPopUp == WS_POPUP) ))
|
||||
if (ActiveWindowNCWindowStyle != 0 && (((ActiveWindowNCWindowBorder == WS_BORDER) && ReadWindowTitle(hwnd) != "") || (ActiveWindowNCPopUp == WS_POPUP)))
|
||||
{
|
||||
if (eventType == EVENT_OBJECT_CREATE)
|
||||
{
|
||||
@@ -1006,8 +1005,8 @@ namespace Active_Client.View
|
||||
}
|
||||
else if (eventType == EVENT_OBJECT_DESTROY)
|
||||
SetWindowPos(MainViewHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1036,13 +1035,13 @@ namespace Active_Client.View
|
||||
//if it has the border and a title execute focus
|
||||
if (ActiveNCWindowStyle != 0 && ((ActiveNCWindowBorder == WS_BORDER && ReadWindowTitle(hwnd) != "") || (ActiveNCWindowNCPopUp == WS_POPUP)) && hwnd != ncprocess.MainWindowHandle)
|
||||
{
|
||||
Console.WriteLine("Handle: " + hwnd + " MainWindowHandle" + ncprocess.MainWindowHandle);
|
||||
SetWindowPos(ncprocess.MainWindowHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
|
||||
Console.WriteLine("Handle: " + hwnd + " MainWindowHandle" + ncprocess.MainWindowHandle);
|
||||
SetWindowPos(ncprocess.MainWindowHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//If the PID is the STEP-HMI Process
|
||||
}
|
||||
|
||||
|
||||
//If the PID is the STEP-HMI Process
|
||||
if (ActualPID == MainProcessPID)
|
||||
{
|
||||
if (!IsIconic(MainViewHandle))
|
||||
@@ -1088,9 +1087,9 @@ namespace Active_Client.View
|
||||
//Hook Keyboard Handle
|
||||
private static void KeybEventProc(int nCode, IntPtr wParam, IntPtr lParam)
|
||||
{
|
||||
int Key = Marshal.ReadInt32(lParam);
|
||||
|
||||
//Elaborate Hotkey
|
||||
int Key = Marshal.ReadInt32(lParam);
|
||||
|
||||
//Elaborate Hotkey
|
||||
if (wParam == HWND_KEYDOWN || wParam == HWND_SYSKEYDOWN)
|
||||
{
|
||||
if (Key == 0xA4 || Key == 0xA5)
|
||||
@@ -1120,7 +1119,7 @@ namespace Active_Client.View
|
||||
if (wParam == HWND_SYSKEYDOWN || wParam == HWND_KEYDOWN)
|
||||
mainFrm.keyPressedHandler(altPressed, ctrlPressed, shiftPressed, Key);
|
||||
}
|
||||
if((wParam == HWND_SYSKEYDOWN || wParam == HWND_KEYDOWN) && !altPressed && (KeybPID == MainProcessPID || KeybPID == ProdProcessPID) && state == NcState.SHOW)
|
||||
if ((wParam == HWND_SYSKEYDOWN || wParam == HWND_KEYDOWN) && !altPressed && (KeybPID == MainProcessPID || KeybPID == ProdProcessPID) && state == NcState.SHOW)
|
||||
{
|
||||
//IF Siemens
|
||||
if (Config.VendorHmiConfig.Type == 2)
|
||||
@@ -1283,6 +1282,21 @@ namespace Active_Client.View
|
||||
ncWindowHeight = HMI_WINDOW_HEIGHT_OSAI;
|
||||
ncWindowX = HMI_WINDOW_POS_X_OSAI;
|
||||
ncWindowY = HMI_WINDOW_POS_Y_OSAI;
|
||||
}; break;
|
||||
|
||||
// 4: Siemens S7
|
||||
case 4:
|
||||
{
|
||||
processname = DemoName;
|
||||
processpath = @"C:\CMS\ACTIVE\DEMO" + DemoPath;
|
||||
ncWindowWidth = 0;
|
||||
ncWindowHeight = 0;
|
||||
ncWindowX = 0;
|
||||
ncWindowY = 0; ;
|
||||
//ncWindowWidth = HMI_WINDOW_WIDTH_SIEMENS;
|
||||
//ncWindowHeight = HMI_WINDOW_HEIGHT_SIEMENS;
|
||||
//ncWindowX = HMI_WINDOW_POS_X_SIEMENS;
|
||||
//ncWindowY = HMI_WINDOW_POS_Y_SIEMENS;
|
||||
}; break;
|
||||
}
|
||||
}
|
||||
|
||||
+51
-54
@@ -1,22 +1,15 @@
|
||||
using Microsoft.WindowsAPICodePack.Taskbar;
|
||||
using Client.Config;
|
||||
using Client.Config;
|
||||
using Client.Config.SubModels;
|
||||
using Client.Utils;
|
||||
using Microsoft.WindowsAPICodePack.Taskbar;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Client.Utils;
|
||||
using System.IO;
|
||||
using MetroFramework;
|
||||
using Newtonsoft.Json;
|
||||
using Client.Config.SubModels;
|
||||
|
||||
namespace Active_Client.View
|
||||
{
|
||||
@@ -27,7 +20,7 @@ namespace Active_Client.View
|
||||
private HttpWebResponse ConnTestResponse;
|
||||
private String ConnTestError;
|
||||
private Task ConnTask;
|
||||
private ushort WaitDot=1;
|
||||
private ushort WaitDot = 1;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region WINDOW_START_&_BEHAVIOUR_METHOD
|
||||
@@ -63,9 +56,9 @@ namespace Active_Client.View
|
||||
private void LoadingForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
//Force on Desktop 1
|
||||
this.DesktopLocation = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
|
||||
//Start Backgroud Task
|
||||
this.DesktopLocation = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
|
||||
//Start Backgroud Task
|
||||
ConnTask = Task.Run(() => BagroundWorker());
|
||||
}
|
||||
|
||||
@@ -126,28 +119,29 @@ namespace Active_Client.View
|
||||
setOpacity(1);
|
||||
|
||||
//Show the loading state on the app ICON
|
||||
this.Invoke((MethodInvoker)delegate () {TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate, this.Handle); });
|
||||
|
||||
//try to Request
|
||||
if(!Config.ConnectionConfig.BypassReadConfiguration)
|
||||
this.Invoke((MethodInvoker)delegate () { TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate, this.Handle); });
|
||||
|
||||
//try to Request
|
||||
if (!Config.ConnectionConfig.BypassReadConfiguration)
|
||||
{
|
||||
setStatus("Connecting to " + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort, "");
|
||||
|
||||
Boolean error=false;
|
||||
do {
|
||||
Boolean error = false;
|
||||
do
|
||||
{
|
||||
if (error == true)
|
||||
return;
|
||||
} while (!testConnection(new Uri(Config.ConnectionConfig.ReadConfigUrl),out error));
|
||||
} while (!testConnection(new Uri(Config.ConnectionConfig.ReadConfigUrl), out error));
|
||||
|
||||
}
|
||||
|
||||
//Set App Opacity (Only Siemens)
|
||||
if(Config.VendorHmiConfig.Type == 2)
|
||||
if (Config.VendorHmiConfig.Type == 2)
|
||||
setOpacity(0.85);
|
||||
|
||||
//Open Nc Window
|
||||
setStatus("Opening NC Window... ", "");
|
||||
|
||||
setStatus("Opening NC Window... ", "");
|
||||
|
||||
if (Config.VendorHmiConfig.Enabled)
|
||||
if (!OpenNcWindow())
|
||||
return;
|
||||
@@ -160,13 +154,13 @@ namespace Active_Client.View
|
||||
var exename = Path.GetFileNameWithoutExtension(Config.ProdSoftwareConfig.Path);
|
||||
if (!OpenProdWindow(Config.ProdSoftwareConfig.Path, exename))
|
||||
return;
|
||||
}
|
||||
|
||||
//Set App Opacity
|
||||
}
|
||||
|
||||
//Set App Opacity
|
||||
setOpacity(1);
|
||||
|
||||
//Close the Window
|
||||
closeWindow();
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
|
||||
@@ -195,7 +189,7 @@ namespace Active_Client.View
|
||||
|
||||
|
||||
//Sub-Method used to test the connection
|
||||
private bool testConnection(Uri url,out Boolean error)
|
||||
private bool testConnection(Uri url, out Boolean error)
|
||||
{
|
||||
Boolean Connected = false;
|
||||
error = false;
|
||||
@@ -224,8 +218,8 @@ namespace Active_Client.View
|
||||
|
||||
//Check if it's connected
|
||||
if (Connected)
|
||||
{
|
||||
// var jsonDefinition = new { ncVendor = "", showHMI = "", ncIp = "", ncPort = "", prodEnabled = "", prodPath = "", extPrograms = "" };
|
||||
{
|
||||
// var jsonDefinition = new { ncVendor = "", showHMI = "", ncIp = "", ncPort = "", prodEnabled = "", prodPath = "", extPrograms = "" };
|
||||
|
||||
var jsonDefinition = new ServerConfigModel();
|
||||
setStatus("Connected!", "");
|
||||
@@ -237,26 +231,28 @@ namespace Active_Client.View
|
||||
{
|
||||
var ConfigResponse = JsonConvert.DeserializeAnonymousType(reader.ReadToEnd(), jsonDefinition);
|
||||
|
||||
if(!String.IsNullOrWhiteSpace(ConfigResponse.NcVendor) && !String.IsNullOrWhiteSpace(ConfigResponse.ShowHMI))
|
||||
if (!String.IsNullOrWhiteSpace(ConfigResponse.NcVendor) && !String.IsNullOrWhiteSpace(ConfigResponse.ShowHMI))
|
||||
{
|
||||
string ncVendorName = ConfigResponse.NcVendor.ToUpper();
|
||||
string ncVendorHMI = ConfigResponse.ShowHMI.ToUpper();
|
||||
Config.VendorHmiConfig.IpAddress = ConfigResponse.NcIp.ToUpper();
|
||||
Config.VendorHmiConfig.Port = ConfigResponse.NcPort.ToUpper();
|
||||
string ProdEnabled = ConfigResponse.ProdEnabled.ToUpper();
|
||||
Config.VendorHmiConfig.IpAddress = ConfigResponse.NcIp.ToUpper();
|
||||
Config.VendorHmiConfig.Port = ConfigResponse.NcPort.ToUpper();
|
||||
string ProdEnabled = ConfigResponse.ProdEnabled.ToUpper();
|
||||
string ProdPath = ConfigResponse.ProdPath.ToUpper();
|
||||
string Autorun = ConfigResponse.Autorun.ToUpper();
|
||||
|
||||
|
||||
|
||||
//Read the Server Type
|
||||
if (ncVendorName.Equals("DEMO"))
|
||||
Config.VendorHmiConfig.Type = 0;
|
||||
Config.VendorHmiConfig.Type = 0;
|
||||
else if (ncVendorName.Equals("FANUC"))
|
||||
Config.VendorHmiConfig.Type = 1;
|
||||
else if (ncVendorName.Equals("SIEMENS"))
|
||||
Config.VendorHmiConfig.Type = 2;
|
||||
else if (ncVendorName.Equals("OSAI"))
|
||||
Config.VendorHmiConfig.Type = 3;
|
||||
else if (ncVendorName.Equals("S7NET"))
|
||||
Config.VendorHmiConfig.Type = 4;
|
||||
else
|
||||
{
|
||||
setStatus("Close the application!", "Errror in configuration, from server");
|
||||
@@ -269,8 +265,8 @@ namespace Active_Client.View
|
||||
Config.VendorHmiConfig.Enabled = true;
|
||||
else
|
||||
Config.VendorHmiConfig.Enabled = false;
|
||||
|
||||
//Autorun
|
||||
|
||||
//Autorun
|
||||
if (Autorun.ToUpper().Equals("TRUE"))
|
||||
Config.ClientConfig.Autorun = true;
|
||||
else
|
||||
@@ -288,9 +284,9 @@ namespace Active_Client.View
|
||||
Config.TextEditorPath = ConfigResponse.EditorPath;
|
||||
|
||||
if (ConfigResponse.ExtSoftwares != null)
|
||||
Config.ExtSoftwaresConfig = ConfigResponse.ExtSoftwares.ToArray();
|
||||
|
||||
return true;
|
||||
Config.ExtSoftwaresConfig = ConfigResponse.ExtSoftwares.ToArray();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -301,8 +297,8 @@ namespace Active_Client.View
|
||||
|
||||
setStatus("Error!", "Error While loading the configuration");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -329,29 +325,30 @@ namespace Active_Client.View
|
||||
//Sub-Method used to open the NC Window
|
||||
private bool OpenNcWindow()
|
||||
{
|
||||
switch(NcWindow.StartNcWindow())
|
||||
switch (NcWindow.StartNcWindow())
|
||||
{
|
||||
|
||||
case 0: return true;
|
||||
|
||||
case 1: {
|
||||
case 1:
|
||||
{
|
||||
setStatus("Close the application!", "NC Path not found: " + NcWindow.ProcessPath);
|
||||
return false;
|
||||
};
|
||||
return false;
|
||||
};
|
||||
|
||||
case 2:
|
||||
{
|
||||
setStatus("Close the application!", "Unable to start the NC application: ");
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//Sub-Method used to open the NC Window
|
||||
private bool OpenProdWindow(string ExePath,string ExeName)
|
||||
private bool OpenProdWindow(string ExePath, string ExeName)
|
||||
{
|
||||
switch (NcWindow.StartProdWindow(ExePath, ExeName))
|
||||
{
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Active_Client.View
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<system.serviceModel>
|
||||
<bindings>
|
||||
<basicHttpBinding>
|
||||
<binding name="OPENcontrol" />
|
||||
</basicHttpBinding>
|
||||
</bindings>
|
||||
<client>
|
||||
<endpoint address="http://192.168.20.2:8080" binding="basicHttpBinding"
|
||||
bindingConfiguration="OPENcontrol" contract="OPENControl.OPENcontrolPortType"
|
||||
name="OPENcontrol" />
|
||||
</client>
|
||||
</system.serviceModel>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -1,10 +1,7 @@
|
||||
using Thermo.Active.CmsConnectGateway.Builders;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.CmsConnectGateway.Builders;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
@@ -52,7 +49,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
config.dnsPrefixes = dnsPrefixes;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public GatewayNetworkConfiguration GenerateConfiguration()
|
||||
{
|
||||
|
||||
@@ -93,7 +90,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
using Thermo.Active.CmsConnectGateway.Builders;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.CmsConnectGateway.Builders;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
@@ -79,7 +76,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
|
||||
//Controls empty spaces
|
||||
CheckNoEmptySpaces(config.address, "Address");
|
||||
if(config.username != null)
|
||||
if (config.username != null)
|
||||
CheckNoEmptySpaces(config.username, "Username");
|
||||
if (config.password != null)
|
||||
CheckNoEmptySpaces(config.password, "Password");
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway.Builders
|
||||
{
|
||||
@@ -51,13 +47,13 @@ namespace Thermo.Active.CmsConnectGateway.Builders
|
||||
|
||||
}
|
||||
|
||||
internal void CheckNoEmptySpaces(string strToCheck,string paramName)
|
||||
internal void CheckNoEmptySpaces(string strToCheck, string paramName)
|
||||
{
|
||||
if (strToCheck.Contains(" "))
|
||||
throw new FormatException("BAD FORMAT - param \"" + paramName + "\" must be without empty spaces");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private bool EvaluateIPV4(string stringValue, out IPAddress address)
|
||||
{
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway.Events
|
||||
{
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway.Exceptions
|
||||
{
|
||||
public class GatewayException: Exception
|
||||
public class GatewayException : Exception
|
||||
{
|
||||
public GatewayException(string message): base(message)
|
||||
public GatewayException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using Renci.SshNet;
|
||||
using Renci.SshNet.Common;
|
||||
using Thermo.Active.CmsConnectGateway.Events;
|
||||
using Thermo.Active.CmsConnectGateway.Exceptions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -11,6 +9,8 @@ using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.CmsConnectGateway.Events;
|
||||
using Thermo.Active.CmsConnectGateway.Exceptions;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
@@ -127,7 +127,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
/// <exception cref="GatewayException"></exception>
|
||||
public GatewayNetworkConfiguration ReadGatewayNetworkConfiguration()
|
||||
{
|
||||
return ElaborateConfigFromSshNetworkCommand( SendSSHCommand(SSH_GET_NETWORK_COMMAND) );
|
||||
return ElaborateConfigFromSshNetworkCommand(SendSSHCommand(SSH_GET_NETWORK_COMMAND));
|
||||
}
|
||||
|
||||
|
||||
@@ -184,9 +184,9 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
}
|
||||
hand(this, ev);
|
||||
};
|
||||
|
||||
|
||||
// Create a task and not start it.
|
||||
Task t = new Task (() => action(delay, handler));
|
||||
Task t = new Task(() => action(delay, handler));
|
||||
t.Start();
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
#region SSH_commands_preparations_sub_methods
|
||||
|
||||
@@ -255,7 +255,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
|
||||
return command.ToString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//SSH command generator for Network setting
|
||||
private string GenerateSshNetworkCommand(GatewayNetworkConfiguration configuration)
|
||||
@@ -272,7 +272,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
IPNetwork tempIpNetw = IPNetwork.Parse(configuration.ipAddress, configuration.netMaskAddress);
|
||||
command.Append(configuration.ipAddress).Append("/").Append(tempIpNetw.Cidr).Append(" ");
|
||||
|
||||
if(configuration.defaultGatewayAddress != null)
|
||||
if (configuration.defaultGatewayAddress != null)
|
||||
command.Append(configuration.defaultGatewayAddress);
|
||||
|
||||
}
|
||||
@@ -298,7 +298,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
StringBuilder command = new StringBuilder(SSH_SET_DNSSUFFIX_COMMAND);
|
||||
|
||||
if(configuration.dnsPrefixes != null)
|
||||
if (configuration.dnsPrefixes != null)
|
||||
command.Append(string.Join(",", configuration.dnsPrefixes));
|
||||
|
||||
return command.ToString();
|
||||
@@ -368,7 +368,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
if (!stringValue.Contains('/'))
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + IP_ADDR_LABEL + stringValue);
|
||||
|
||||
string [] tempAddr = stringValue.Split('/');
|
||||
string[] tempAddr = stringValue.Split('/');
|
||||
//Check if has lenght == 2
|
||||
if (tempAddr.Length != 2)
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + IP_ADDR_LABEL + stringValue);
|
||||
@@ -445,7 +445,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
if (tempStr.Length == 0)
|
||||
configuration.dnsPrefixes = null;
|
||||
else
|
||||
configuration.dnsPrefixes = tempStr.Where(X=> !String.IsNullOrEmpty(X)).ToList();
|
||||
configuration.dnsPrefixes = tempStr.Where(X => !String.IsNullOrEmpty(X)).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -473,7 +473,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
if (!stringValue.Contains(':'))
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + PROXY_ADDR_LABEL + stringValue);
|
||||
string[] tempAddr = stringValue.Split(':');
|
||||
|
||||
|
||||
//Check if has lenght == 2
|
||||
if (tempAddr.Length != 2)
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + PROXY_ADDR_LABEL + stringValue);
|
||||
@@ -510,7 +510,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + PROXY_ADDR_LABEL + stringValue);
|
||||
if (tempAddr.Length != 2)
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + PROXY_ADDR_LABEL + stringValue);
|
||||
|
||||
|
||||
//Set the username
|
||||
configuration.username = tempLogin[0];
|
||||
//Set the password
|
||||
@@ -524,7 +524,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
throw new GatewayException("Internal Gateway Error during read (bad format): " + PROXY_ADDR_LABEL + stringValue);
|
||||
configuration.port = tempPort;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
string[] tempStr = stringValue.Trim('"').Split(',');
|
||||
|
||||
for (int i=0;i<tempStr.Length;i++)
|
||||
for (int i = 0; i < tempStr.Length; i++)
|
||||
tempStr[i] = tempStr[i].Trim();
|
||||
|
||||
if (tempStr.Length == 0)
|
||||
@@ -562,7 +562,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
}
|
||||
|
||||
|
||||
private bool EvaluateIPV4(string stringValue,out IPAddress address)
|
||||
private bool EvaluateIPV4(string stringValue, out IPAddress address)
|
||||
{
|
||||
Regex rgx = new Regex(@"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
|
||||
|
||||
@@ -583,7 +583,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
//Override sendCommand for single command
|
||||
private List<string> SendSSHCommand(string command)
|
||||
{
|
||||
return SendSSHCommand(new List<string> {command});
|
||||
return SendSSHCommand(new List<string> { command });
|
||||
}
|
||||
|
||||
|
||||
@@ -594,12 +594,12 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
List<string> returnedValues = new List<string>();
|
||||
|
||||
//Create the SSH Gateway
|
||||
SshClient _sshGateway = new SshClient(this.host, this.username, this.password);
|
||||
SshClient _sshGateway = new SshClient(this.host, this.username, this.password);
|
||||
try
|
||||
{
|
||||
//Connect
|
||||
_sshGateway.Connect();
|
||||
foreach(string cmd in command)
|
||||
foreach (string cmd in command)
|
||||
{
|
||||
//Run command
|
||||
sshCmd = _sshGateway.RunCommand(cmd);
|
||||
@@ -655,7 +655,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
private void SendSSHReboot(int seconds)
|
||||
{
|
||||
//Send SSH Command
|
||||
SendSSHCommand(SSH_GW_REBOOT_COMMAND + seconds);
|
||||
SendSSHCommand(SSH_GW_REBOOT_COMMAND + seconds);
|
||||
|
||||
//Wait the time for reboot
|
||||
Thread.Sleep((seconds + 5) * 1000);
|
||||
@@ -708,7 +708,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
}
|
||||
} while (!disconnected);
|
||||
|
||||
|
||||
|
||||
//Phase 2 Wait Re-connection Cycle
|
||||
bool connected = false;
|
||||
do
|
||||
@@ -716,7 +716,7 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
try
|
||||
{
|
||||
//If TimeSpan > TOT MIN -> Exception
|
||||
if((DateTime.Now - nowAfterReboot) > TimeSpan.FromMinutes(REBOOT_MINUTES_MAX))
|
||||
if ((DateTime.Now - nowAfterReboot) > TimeSpan.FromMinutes(REBOOT_MINUTES_MAX))
|
||||
throw new GatewayException("Timeout Error during reboot - Gateway not found during reboot");
|
||||
|
||||
//Try Connection
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway
|
||||
@@ -13,8 +10,8 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
|
||||
public class GatewayNetworkConfiguration
|
||||
{
|
||||
internal GatewayNetworkConfiguration() {}
|
||||
public Boolean hasDhcp { get; internal set;}
|
||||
internal GatewayNetworkConfiguration() { }
|
||||
public Boolean hasDhcp { get; internal set; }
|
||||
public IPAddress ipAddress { get; internal set; }
|
||||
public IPAddress netMaskAddress { get; internal set; }
|
||||
public IPAddress defaultGatewayAddress { get; internal set; }
|
||||
@@ -23,18 +20,18 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "hasDhcp: " + hasDhcp + Environment.NewLine +
|
||||
"ipAddress: " + (ipAddress != null ? ipAddress.ToString() : "null") + Environment.NewLine +
|
||||
"netMaskAddress: " + (netMaskAddress != null ? netMaskAddress.ToString() : "null") + Environment.NewLine +
|
||||
"defaultGatewayAddress: " + (defaultGatewayAddress != null ? defaultGatewayAddress.ToString() : "null") + Environment.NewLine +
|
||||
"dnsAddresses: " + (dnsAddresses != null ? string.Join(",", dnsAddresses) : "null") + Environment.NewLine +
|
||||
"dnsPrefixes: " + (dnsPrefixes != null ? string.Join(",", dnsPrefixes) : "null");
|
||||
return "hasDhcp: " + hasDhcp + Environment.NewLine +
|
||||
"ipAddress: " + (ipAddress != null ? ipAddress.ToString() : "null") + Environment.NewLine +
|
||||
"netMaskAddress: " + (netMaskAddress != null ? netMaskAddress.ToString() : "null") + Environment.NewLine +
|
||||
"defaultGatewayAddress: " + (defaultGatewayAddress != null ? defaultGatewayAddress.ToString() : "null") + Environment.NewLine +
|
||||
"dnsAddresses: " + (dnsAddresses != null ? string.Join(",", dnsAddresses) : "null") + Environment.NewLine +
|
||||
"dnsPrefixes: " + (dnsPrefixes != null ? string.Join(",", dnsPrefixes) : "null");
|
||||
}
|
||||
}
|
||||
|
||||
public class GatewayProxyConfiguration
|
||||
{
|
||||
internal GatewayProxyConfiguration(){}
|
||||
internal GatewayProxyConfiguration() { }
|
||||
public Boolean hasProxy { get; internal set; }
|
||||
public string address { get; internal set; }
|
||||
public uint port { get; internal set; }
|
||||
@@ -45,12 +42,12 @@ namespace Thermo.Active.CmsConnectGateway
|
||||
public override string ToString()
|
||||
{
|
||||
|
||||
return "hasProxy: " + hasProxy + Environment.NewLine +
|
||||
"address: " + (address != null ? address.ToString() : "null") + Environment.NewLine +
|
||||
"port: " + (port != 0 ? port.ToString() : "null") + Environment.NewLine +
|
||||
"username: " + (username != null ? username : "null") + Environment.NewLine +
|
||||
"password: " + (password != null ? password : "null") + Environment.NewLine +
|
||||
"noproxyAddresses: " + (noproxyAddresses != null ? string.Join(",", noproxyAddresses) : "null");
|
||||
return "hasProxy: " + hasProxy + Environment.NewLine +
|
||||
"address: " + (address != null ? address.ToString() : "null") + Environment.NewLine +
|
||||
"port: " + (port != 0 ? port.ToString() : "null") + Environment.NewLine +
|
||||
"username: " + (username != null ? username : "null") + Environment.NewLine +
|
||||
"password: " + (password != null ? password : "null") + Environment.NewLine +
|
||||
"noproxyAddresses: " + (noproxyAddresses != null ? string.Join(",", noproxyAddresses) : "null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,364 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<modules>
|
||||
<block>
|
||||
<id>1</id>
|
||||
<label>MB_DiscesaCZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>2</id>
|
||||
<label>MB_MembDiscesaZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>3</id>
|
||||
<label>MB_MembZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>4</id>
|
||||
<label>MB_Mod_MembSalitaZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>5</id>
|
||||
<label>MB_Mod_AppoggioDiscesaW</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>6</id>
|
||||
<label>MB_Mod_RiscaldoInf</label>
|
||||
<type>HEATING</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>7</id>
|
||||
<label>MB_Mod_RiscaldoSup</label>
|
||||
<type>HEATING</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>0</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>2</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>8</id>
|
||||
<label>MB_Mod_PirometroRisc</label>
|
||||
<type>HEATING</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>80</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>3</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>9</id>
|
||||
<label>MB_Mod_DecompSustain</label>
|
||||
<type>HEATING</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>4</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>10</id>
|
||||
<label>MB_Mod_Acrilico</label>
|
||||
<type>HEATING</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>5</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>11</id>
|
||||
<label>MB_Mod_RiscaldiIndietro</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>12</id>
|
||||
<label>MB_Mod_ExtraR</label>
|
||||
<type>HEATING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>13</id>
|
||||
<label>MB_Mod_Imbutitura</label>
|
||||
<type>DRAWING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>99</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>2</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>14</id>
|
||||
<label>MB_Mod_SalitaW</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>15</id>
|
||||
<label>MB_Mod_AttesaStampo</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>3</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>16</id>
|
||||
<label>MB_Mod_Raffreddamento</label>
|
||||
<type>COOLING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>3</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>17</id>
|
||||
<label>MB_Mod_PirometroRaffr</label>
|
||||
<type>COOLING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>139</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>4</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>19</id>
|
||||
<label>MB_Mod_Vuoto</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>5</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>21</id>
|
||||
<label>MB_Mod_VuotoDiretto</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>6</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>23</id>
|
||||
<label>MB_Mod_VuotoAux</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
|
||||
<priority>7</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>25</id>
|
||||
<label>MB_Mod_Nebulizz</label>
|
||||
<type>COOLING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>8</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>26</id>
|
||||
<label>MB_Mod_AttesaPartenzaZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>28</id>
|
||||
<label>MB_Mod_DiscesaZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>29</id>
|
||||
<label>MB_Mod_Z</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>30</id>
|
||||
<label>MB_Mod_SalitaZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>31</id>
|
||||
<label>MB_Mod_AriaZ</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>10</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>33</id>
|
||||
<label>MB_Mod_VuotoZ</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>11</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>34</id>
|
||||
<label>MB_Mod_ScaricoVuotoZ</label>
|
||||
<type>VACUUM</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>35</id>
|
||||
<label>MB_Mod_ScaricoVuoto</label>
|
||||
<type>VACUUM</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>36</id>
|
||||
<label>MB_Mod_EstrazioneZ</label>
|
||||
<type>EXTRACTION</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>10</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>38</id>
|
||||
<label>MB_Mod_DiscesaAssistZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>4</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>39</id>
|
||||
<label>MB_Mod_Estrazione</label>
|
||||
<type>EXTRACTION</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>2</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>40</id>
|
||||
<label>MB_Mod_DiscesaW</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>41</id>
|
||||
<label>MB_Mod_RiscaldiIndietro2</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>42</id>
|
||||
<label>MB_Mod_SalitaCZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>43</id>
|
||||
<label>MB_Mod_Riscaldi2</label>
|
||||
<type>HEATING</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>44</id>
|
||||
<label>MB_Mod_Estrazione_Aux_W</label>
|
||||
<type>EXTRACTION</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>3</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>45</id>
|
||||
<label>MB_Mod_Attesa_Pirometro</label>
|
||||
<type>COOLING</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>4</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>46</id>
|
||||
<label>MB_Mod_Prevuoto</label>
|
||||
<type>VACUUM</type>
|
||||
<section>HEATING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>6</priority>
|
||||
</block>
|
||||
<block>
|
||||
<id>47</id>
|
||||
<label>MB_Mod_SalitaAssistZ</label>
|
||||
<type>MOVEMENT</type>
|
||||
<section>EXTRACTION</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>4</priority>
|
||||
</block>
|
||||
</modules>
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="modules">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<!-- Heads -->
|
||||
<xs:element name="block" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:int"/>
|
||||
<xs:element name="label" type="xs:string" />
|
||||
<xs:element name="type" type="mblockType" />
|
||||
<xs:element name="section" type="mblockSection" />
|
||||
<xs:element name="idParam" type="xs:int" />
|
||||
<xs:element name="showDelay" type="xs:boolean" />
|
||||
<xs:element name="priority" type="xs:int" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- Language Type -->
|
||||
<xs:complexType name="langType">
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="langKey" use="required" type="xs:string" />
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- ModBlock Type -->
|
||||
<xs:simpleType name="mblockType" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="HEATING" />
|
||||
<xs:enumeration value="DRAWING" />
|
||||
<xs:enumeration value="MOVEMENT"/>
|
||||
<xs:enumeration value="VACUUM"/>
|
||||
<xs:enumeration value="COOLING"/>
|
||||
<xs:enumeration value="EXTRACTION"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- Section Type -->
|
||||
<xs:simpleType name="mblockSection" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="HEATING" />
|
||||
<xs:enumeration value="FORMING" />
|
||||
<xs:enumeration value="EXTRACTION"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="recipe">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<!-- Heads -->
|
||||
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:int"/>
|
||||
<xs:element name="category" type="param_type" />
|
||||
<xs:element name="subCategory_1" type="xs:string" />
|
||||
<xs:element name="subCategory_2" type="xs:string" />
|
||||
<xs:element name="name" type="xs:string" />
|
||||
<xs:element name="description" type="xs:string" />
|
||||
<xs:element name="format" type="xs:string" />
|
||||
<xs:element name="scaleFactor" type="xs:int" default="1"/>
|
||||
<xs:element name="numDec" type="xs:int" default="0"/>
|
||||
<xs:element name="enumList" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="enumVal" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="label" type="xs:string" />
|
||||
<xs:element name="value" type="xs:string" />
|
||||
<xs:element name="anim" type="xs:string" minOccurs="0" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- Head Type -->
|
||||
<xs:simpleType name="param_type" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="General" />
|
||||
<xs:enumeration value="Positions" />
|
||||
<xs:enumeration value="Cycle"/>
|
||||
<xs:enumeration value="Heats"/>
|
||||
<xs:enumeration value="Pyrometer"/>
|
||||
<xs:enumeration value="Drawing"/>
|
||||
<xs:enumeration value="UpperPlate"/>
|
||||
<xs:enumeration value="Cooling"/>
|
||||
<xs:enumeration value="Vacuum"/>
|
||||
<xs:enumeration value="Extraction"/>
|
||||
<xs:enumeration value="Options"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<riscaldo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../APPOGGIO/risk2007.xsd" comPort="5" baudRate="19200" gainTc="0.5" addrTc="4D5">
|
||||
<riflettore tipo="0" dimensionScale="13000" slimScale="2" offsetTc="0">
|
||||
<resistenza tipo="21" riga="0" idTermocoppia="0" idGruppo="1" termocoppiaAssociata="1" canale="1" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="2" termocoppiaAssociata="1" canale="6" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="3" termocoppiaAssociata="1" canale="26" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="4" termocoppiaAssociata="1" canale="46" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="5" termocoppiaAssociata="1" canale="66" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="6" termocoppiaAssociata="1" canale="86" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="0" idTermocoppia="0" idGruppo="7" termocoppiaAssociata="1" canale="106" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="8" termocoppiaAssociata="1" canale="7" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="9" termocoppiaAssociata="1" canale="27" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="10" termocoppiaAssociata="1" canale="47" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="11" termocoppiaAssociata="1" canale="67" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="12" termocoppiaAssociata="1" canale="87" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="13" termocoppiaAssociata="1" canale="107" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="2" idTermocoppia="0" idGruppo="1" termocoppiaAssociata="1" canale="1" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="14" termocoppiaAssociata="1" canale="8" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="15" termocoppiaAssociata="1" canale="28" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="16" termocoppiaAssociata="1" canale="48" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="17" termocoppiaAssociata="1" canale="68" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="18" termocoppiaAssociata="1" canale="88" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="2" idTermocoppia="0" idGruppo="7" termocoppiaAssociata="1" canale="106" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="19" termocoppiaAssociata="1" canale="9" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="20" termocoppiaAssociata="1" canale="29" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="21" termocoppiaAssociata="1" canale="49" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="22" termocoppiaAssociata="1" canale="69" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="23" termocoppiaAssociata="1" canale="89" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="24" termocoppiaAssociata="1" canale="108" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="4" idTermocoppia="0" idGruppo="25" termocoppiaAssociata="1" canale="2" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="26" termocoppiaAssociata="1" canale="10" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="27" termocoppiaAssociata="1" canale="30" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="28" termocoppiaAssociata="1" canale="50" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="29" termocoppiaAssociata="1" canale="70" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="30" termocoppiaAssociata="1" canale="90" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="4" idTermocoppia="0" idGruppo="31" termocoppiaAssociata="1" canale="109" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="32" termocoppiaAssociata="1" canale="11" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="33" termocoppiaAssociata="1" canale="31" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="34" termocoppiaAssociata="1" canale="51" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="35" termocoppiaAssociata="1" canale="71" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="36" termocoppiaAssociata="1" canale="91" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="37" termocoppiaAssociata="1" canale="110" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="6" idTermocoppia="0" idGruppo="25" termocoppiaAssociata="1" canale="2" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="38" termocoppiaAssociata="1" canale="12" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="39" termocoppiaAssociata="1" canale="32" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="40" termocoppiaAssociata="1" canale="52" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="41" termocoppiaAssociata="1" canale="72" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="42" termocoppiaAssociata="1" canale="92" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="6" idTermocoppia="0" idGruppo="31" termocoppiaAssociata="1" canale="109" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="43" termocoppiaAssociata="1" canale="13" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="44" termocoppiaAssociata="1" canale="33" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="45" termocoppiaAssociata="1" canale="53" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="46" termocoppiaAssociata="1" canale="73" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="47" termocoppiaAssociata="1" canale="93" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="48" termocoppiaAssociata="1" canale="111" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="8" idTermocoppia="0" idGruppo="49" termocoppiaAssociata="1" canale="3" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="50" termocoppiaAssociata="1" canale="14" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="51" termocoppiaAssociata="1" canale="34" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="52" termocoppiaAssociata="1" canale="54" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="53" termocoppiaAssociata="1" canale="74" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="54" termocoppiaAssociata="1" canale="94" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="8" idTermocoppia="0" idGruppo="55" termocoppiaAssociata="1" canale="112" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="56" termocoppiaAssociata="1" canale="15" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="57" termocoppiaAssociata="1" canale="35" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="58" termocoppiaAssociata="1" canale="55" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="59" termocoppiaAssociata="1" canale="75" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="60" termocoppiaAssociata="1" canale="95" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="61" termocoppiaAssociata="1" canale="113" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="10" idTermocoppia="0" idGruppo="49" termocoppiaAssociata="1" canale="3" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="62" termocoppiaAssociata="1" canale="16" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="63" termocoppiaAssociata="1" canale="36" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="64" termocoppiaAssociata="1" canale="56" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="65" termocoppiaAssociata="1" canale="76" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="66" termocoppiaAssociata="1" canale="96" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="10" idTermocoppia="0" idGruppo="55" termocoppiaAssociata="1" canale="112" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="67" termocoppiaAssociata="1" canale="17" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="68" termocoppiaAssociata="1" canale="37" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="69" termocoppiaAssociata="1" canale="57" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="70" termocoppiaAssociata="1" canale="77" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="71" termocoppiaAssociata="1" canale="97" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="72" termocoppiaAssociata="1" canale="114" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="12" idTermocoppia="0" idGruppo="73" termocoppiaAssociata="1" canale="4" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="74" termocoppiaAssociata="1" canale="18" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="75" termocoppiaAssociata="1" canale="38" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="76" termocoppiaAssociata="1" canale="58" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="77" termocoppiaAssociata="1" canale="78" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="78" termocoppiaAssociata="1" canale="98" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="12" idTermocoppia="0" idGruppo="79" termocoppiaAssociata="1" canale="115" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="80" termocoppiaAssociata="1" canale="19" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="81" termocoppiaAssociata="1" canale="39" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="82" termocoppiaAssociata="1" canale="59" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="83" termocoppiaAssociata="1" canale="79" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="84" termocoppiaAssociata="1" canale="99" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="85" termocoppiaAssociata="1" canale="116" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="14" idTermocoppia="0" idGruppo="73" termocoppiaAssociata="1" canale="4" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="86" termocoppiaAssociata="1" canale="20" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="87" termocoppiaAssociata="1" canale="40" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="88" termocoppiaAssociata="1" canale="60" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="89" termocoppiaAssociata="1" canale="80" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="90" termocoppiaAssociata="1" canale="100" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="14" idTermocoppia="0" idGruppo="79" termocoppiaAssociata="1" canale="115" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="91" termocoppiaAssociata="1" canale="21" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="92" termocoppiaAssociata="1" canale="41" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="93" termocoppiaAssociata="1" canale="61" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="94" termocoppiaAssociata="1" canale="81" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="95" termocoppiaAssociata="1" canale="101" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="96" termocoppiaAssociata="1" canale="117" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="16" idTermocoppia="0" idGruppo="97" termocoppiaAssociata="1" canale="5" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="98" termocoppiaAssociata="1" canale="22" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="99" termocoppiaAssociata="1" canale="42" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="100" termocoppiaAssociata="1" canale="62" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="101" termocoppiaAssociata="1" canale="82" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="102" termocoppiaAssociata="1" canale="102" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="16" idTermocoppia="0" idGruppo="103" termocoppiaAssociata="1" canale="118" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="104" termocoppiaAssociata="1" canale="23" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="105" termocoppiaAssociata="1" canale="43" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="106" termocoppiaAssociata="1" canale="63" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="107" termocoppiaAssociata="1" canale="83" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="108" termocoppiaAssociata="1" canale="103" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="109" termocoppiaAssociata="1" canale="119" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="18" idTermocoppia="0" idGruppo="97" termocoppiaAssociata="1" canale="5" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="110" termocoppiaAssociata="1" canale="24" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="111" termocoppiaAssociata="1" canale="44" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="112" termocoppiaAssociata="1" canale="64" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="113" termocoppiaAssociata="1" canale="84" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="114" termocoppiaAssociata="1" canale="104" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="18" idTermocoppia="0" idGruppo="103" termocoppiaAssociata="1" canale="118" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="115" termocoppiaAssociata="1" canale="25" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="116" termocoppiaAssociata="1" canale="45" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="117" termocoppiaAssociata="1" canale="65" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="118" termocoppiaAssociata="1" canale="85" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="119" termocoppiaAssociata="1" canale="105" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="120" termocoppiaAssociata="1" canale="120" fast="false" softDelay="140" sfasamImp="false" />
|
||||
</riflettore>
|
||||
<riflettore tipo="1" dimensionScale="13000" slimScale="2" offsetTc="0">
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="1" termocoppiaAssociata="2" canale="134" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="2" termocoppiaAssociata="2" canale="154" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="3" termocoppiaAssociata="2" canale="174" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="4" termocoppiaAssociata="2" canale="194" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="5" termocoppiaAssociata="2" canale="214" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="0" idTermocoppia="0" idGruppo="6" termocoppiaAssociata="2" canale="234" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="1" idTermocoppia="0" idGruppo="7" termocoppiaAssociata="2" canale="129" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="8" termocoppiaAssociata="2" canale="135" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="9" termocoppiaAssociata="2" canale="155" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="10" termocoppiaAssociata="2" canale="175" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="11" termocoppiaAssociata="2" canale="195" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="1" idTermocoppia="0" idGruppo="12" termocoppiaAssociata="2" canale="215" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="1" idTermocoppia="0" idGruppo="13" termocoppiaAssociata="2" canale="235" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="14" termocoppiaAssociata="2" canale="136" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="15" termocoppiaAssociata="2" canale="156" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="16" termocoppiaAssociata="2" canale="176" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="17" termocoppiaAssociata="2" canale="196" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="18" termocoppiaAssociata="2" canale="216" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="2" idTermocoppia="0" idGruppo="19" termocoppiaAssociata="2" canale="236" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="3" idTermocoppia="0" idGruppo="7" termocoppiaAssociata="2" canale="129" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="20" termocoppiaAssociata="2" canale="137" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="21" termocoppiaAssociata="2" canale="157" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="22" termocoppiaAssociata="2" canale="177" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="23" termocoppiaAssociata="2" canale="197" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="3" idTermocoppia="0" idGruppo="24" termocoppiaAssociata="2" canale="217" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="3" idTermocoppia="0" idGruppo="13" termocoppiaAssociata="2" canale="235" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="25" termocoppiaAssociata="2" canale="138" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="26" termocoppiaAssociata="2" canale="158" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="27" termocoppiaAssociata="2" canale="178" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="28" termocoppiaAssociata="2" canale="198" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="29" termocoppiaAssociata="2" canale="218" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="4" idTermocoppia="0" idGruppo="30" termocoppiaAssociata="2" canale="237" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="5" idTermocoppia="0" idGruppo="31" termocoppiaAssociata="2" canale="130" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="32" termocoppiaAssociata="2" canale="139" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="33" termocoppiaAssociata="2" canale="159" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="34" termocoppiaAssociata="2" canale="179" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="35" termocoppiaAssociata="2" canale="199" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="5" idTermocoppia="0" idGruppo="36" termocoppiaAssociata="2" canale="219" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="5" idTermocoppia="0" idGruppo="37" termocoppiaAssociata="2" canale="238" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="38" termocoppiaAssociata="2" canale="140" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="39" termocoppiaAssociata="2" canale="160" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="40" termocoppiaAssociata="2" canale="180" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="41" termocoppiaAssociata="2" canale="200" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="42" termocoppiaAssociata="2" canale="220" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="6" idTermocoppia="0" idGruppo="43" termocoppiaAssociata="2" canale="239" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="7" idTermocoppia="0" idGruppo="31" termocoppiaAssociata="2" canale="130" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="44" termocoppiaAssociata="2" canale="141" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="45" termocoppiaAssociata="2" canale="161" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="46" termocoppiaAssociata="2" canale="181" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="47" termocoppiaAssociata="2" canale="201" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="7" idTermocoppia="0" idGruppo="48" termocoppiaAssociata="2" canale="221" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="7" idTermocoppia="0" idGruppo="37" termocoppiaAssociata="2" canale="238" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="49" termocoppiaAssociata="2" canale="142" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="50" termocoppiaAssociata="2" canale="162" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="51" termocoppiaAssociata="2" canale="182" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="52" termocoppiaAssociata="2" canale="202" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="53" termocoppiaAssociata="2" canale="222" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="8" idTermocoppia="0" idGruppo="54" termocoppiaAssociata="2" canale="240" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="9" idTermocoppia="0" idGruppo="55" termocoppiaAssociata="2" canale="131" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="56" termocoppiaAssociata="2" canale="143" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="57" termocoppiaAssociata="2" canale="163" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="58" termocoppiaAssociata="2" canale="183" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="59" termocoppiaAssociata="2" canale="203" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="9" idTermocoppia="0" idGruppo="60" termocoppiaAssociata="2" canale="223" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="9" idTermocoppia="0" idGruppo="61" termocoppiaAssociata="2" canale="241" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="62" termocoppiaAssociata="2" canale="144" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="63" termocoppiaAssociata="2" canale="164" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="64" termocoppiaAssociata="2" canale="184" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="65" termocoppiaAssociata="2" canale="204" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="66" termocoppiaAssociata="2" canale="224" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="10" idTermocoppia="0" idGruppo="67" termocoppiaAssociata="2" canale="242" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="11" idTermocoppia="0" idGruppo="55" termocoppiaAssociata="2" canale="131" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="68" termocoppiaAssociata="2" canale="145" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="69" termocoppiaAssociata="2" canale="165" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="70" termocoppiaAssociata="2" canale="185" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="71" termocoppiaAssociata="2" canale="205" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="11" idTermocoppia="0" idGruppo="72" termocoppiaAssociata="2" canale="225" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="11" idTermocoppia="0" idGruppo="61" termocoppiaAssociata="2" canale="241" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="73" termocoppiaAssociata="2" canale="146" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="74" termocoppiaAssociata="2" canale="166" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="75" termocoppiaAssociata="2" canale="186" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="76" termocoppiaAssociata="2" canale="206" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="77" termocoppiaAssociata="2" canale="226" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="12" idTermocoppia="0" idGruppo="78" termocoppiaAssociata="2" canale="243" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="13" idTermocoppia="0" idGruppo="79" termocoppiaAssociata="2" canale="132" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="80" termocoppiaAssociata="2" canale="147" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="81" termocoppiaAssociata="2" canale="167" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="82" termocoppiaAssociata="2" canale="187" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="83" termocoppiaAssociata="2" canale="207" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="13" idTermocoppia="0" idGruppo="84" termocoppiaAssociata="2" canale="227" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="13" idTermocoppia="0" idGruppo="85" termocoppiaAssociata="2" canale="244" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="86" termocoppiaAssociata="2" canale="148" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="87" termocoppiaAssociata="2" canale="168" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="88" termocoppiaAssociata="2" canale="188" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="89" termocoppiaAssociata="2" canale="208" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="90" termocoppiaAssociata="2" canale="228" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="14" idTermocoppia="0" idGruppo="91" termocoppiaAssociata="2" canale="245" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="15" idTermocoppia="0" idGruppo="79" termocoppiaAssociata="2" canale="132" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="92" termocoppiaAssociata="2" canale="149" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="93" termocoppiaAssociata="2" canale="169" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="94" termocoppiaAssociata="2" canale="189" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="95" termocoppiaAssociata="2" canale="209" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="15" idTermocoppia="0" idGruppo="96" termocoppiaAssociata="2" canale="229" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="15" idTermocoppia="0" idGruppo="85" termocoppiaAssociata="2" canale="244" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="97" termocoppiaAssociata="2" canale="150" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="98" termocoppiaAssociata="2" canale="170" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="99" termocoppiaAssociata="2" canale="190" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="100" termocoppiaAssociata="2" canale="210" fast="false" softDelay="20" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="101" termocoppiaAssociata="2" canale="230" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="16" idTermocoppia="0" idGruppo="102" termocoppiaAssociata="2" canale="246" fast="false" softDelay="100" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="17" idTermocoppia="0" idGruppo="103" termocoppiaAssociata="2" canale="133" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="104" termocoppiaAssociata="2" canale="151" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="105" termocoppiaAssociata="2" canale="171" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="106" termocoppiaAssociata="2" canale="191" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="107" termocoppiaAssociata="2" canale="211" fast="false" softDelay="40" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="17" idTermocoppia="0" idGruppo="108" termocoppiaAssociata="2" canale="231" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="17" idTermocoppia="0" idGruppo="109" termocoppiaAssociata="2" canale="247" fast="false" softDelay="120" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="110" termocoppiaAssociata="2" canale="152" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="111" termocoppiaAssociata="2" canale="172" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="112" termocoppiaAssociata="2" canale="192" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="113" termocoppiaAssociata="2" canale="212" fast="false" softDelay="60" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="114" termocoppiaAssociata="2" canale="232" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="18" riga="18" idTermocoppia="0" idGruppo="115" termocoppiaAssociata="2" canale="248" fast="false" softDelay="140" sfasamImp="false" />
|
||||
<resistenza tipo="21" riga="19" idTermocoppia="0" idGruppo="103" termocoppiaAssociata="2" canale="133" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="116" termocoppiaAssociata="2" canale="153" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="117" termocoppiaAssociata="2" canale="173" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="118" termocoppiaAssociata="2" canale="193" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="119" termocoppiaAssociata="2" canale="213" fast="false" softDelay="80" sfasamImp="true" />
|
||||
<resistenza tipo="18" riga="19" idTermocoppia="0" idGruppo="120" termocoppiaAssociata="2" canale="233" fast="false" softDelay="0" sfasamImp="true" />
|
||||
<resistenza tipo="21" riga="19" idTermocoppia="0" idGruppo="109" termocoppiaAssociata="2" canale="247" fast="false" softDelay="120" sfasamImp="true" />
|
||||
</riflettore>
|
||||
<riferimenti corrente="110" potenza="500" modello="Quarzo 500" dimensione="2">1</riferimenti>
|
||||
<riferimenti corrente="0" potenza="250" modello="Quarzo 250" dimensione="1">2</riferimenti>
|
||||
<riferimenti corrente="138" potenza="600" modello="HTS 600" dimensione="2">3</riferimenti>
|
||||
<riferimenti corrente="105" potenza="400" modello="HTS 400" dimensione="2">4</riferimenti>
|
||||
<riferimenti corrente="76" potenza="300" modello="HTS 300" dimensione="1">5</riferimenti>
|
||||
<riferimenti corrente="139" potenza="650" modello="FSR 650" dimensione="2">6</riferimenti>
|
||||
<riferimenti corrente="105" potenza="400" modello="FSR 400" dimensione="2">7</riferimenti>
|
||||
<riferimenti corrente="49" potenza="325" modello="FSR 325" dimensione="1">8</riferimenti>
|
||||
<riferimenti corrente="168" potenza="400" modello="HTS 400 coppia" dimensione="2">9</riferimenti>
|
||||
<riferimenti corrente="168" potenza="400" modello="FSR 400 coppia" dimensione="2">10</riferimenti>
|
||||
<riferimenti corrente="135" potenza="250" modello="Quarzo 250 coppia" dimensione="2">11</riferimenti>
|
||||
<riferimenti corrente="42" potenza="200" modello="HTS 200" dimensione="1">12</riferimenti>
|
||||
<riferimenti corrente="105" potenza="200" modello="HTS 200 coppia" dimensione="1">13</riferimenti>
|
||||
<riferimenti corrente="42" potenza="200" modello="FSR 200" dimensione="1">14</riferimenti>
|
||||
<riferimenti corrente="104" potenza="200" modello="FSR 200 coppia" dimensione="1">15</riferimenti>
|
||||
<riferimenti corrente="167" potenza="400" modello="Quarzo 400 coppia" dimensione="2">16</riferimenti>
|
||||
<riferimenti corrente="104" potenza="400" modello="Quarzo 400" dimensione="1">17</riferimenti>
|
||||
<riferimenti corrente="169" potenza="800" modello="Alogena 800" dimensione="2" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="15" softStart="2" filtCycle="2" PctMin="153">18</riferimenti>
|
||||
<riferimenti corrente="232" potenza="800" modello="Alogena 800 coppia" dimensione="2" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">19</riferimenti>
|
||||
<riferimenti corrente="78" potenza="300" modello="Alogena 300" dimensione="1" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">20</riferimenti>
|
||||
<riferimenti corrente="141" potenza="300" modello="Alogena 300 coppia" dimensione="1" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">21</riferimenti>
|
||||
<riferimenti corrente="141" potenza="700" modello="Quarzo 700" dimensione="2">22</riferimenti>
|
||||
<riferimenti corrente="173" potenza="500" modello="Quarzo 500 coppia" dimensione="2">23</riferimenti>
|
||||
<riferimenti corrente="205" potenza="300" modello="Alogena 300 gruppo da 5" dimensione="1" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">24</riferimenti>
|
||||
<riferimenti corrente="177" potenza="400" modello="Quarzo 400 gruppo da 3" dimensione="2">25</riferimenti>
|
||||
<riferimenti corrente="206" potenza="400" modello="Quarzo 400 gruppo da 4" dimensione="2">26</riferimenti>
|
||||
<riferimenti corrente="201" potenza="400" modello="HTS 400 gruppo da 3" dimensione="2">27</riferimenti>
|
||||
<riferimenti corrente="171" potenza="300" modello="Alogena 300 gruppo da 3" dimensione="1" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">28</riferimenti>
|
||||
<riferimenti corrente="177" potenza="300" modello="Alogena 300 gruppo da 4" dimensione="1">29</riferimenti>
|
||||
<riferimenti corrente="78" potenza="350" modello="Quarzo 350" dimensione="1">30</riferimenti>
|
||||
<riferimenti corrente="100" potenza="700" modello="Quarzo 700 coppia" dimensione="2">31</riferimenti>
|
||||
<riferimenti corrente="100" potenza="350" modello="Quarzo 350 coppia" dimensione="1">32</riferimenti>
|
||||
<riferimenti corrente="100" potenza="250" modello="Quarzo 250 coppia" dimensione="1">33</riferimenti>
|
||||
<riferimenti corrente="100" potenza="400" modello="HTS 400" dimensione="1">34</riferimenti>
|
||||
<riferimenti corrente="213" potenza="500" modello="Quarzo 500 gruppo da 4" dimensione="2">35</riferimenti>
|
||||
<riferimenti corrente="100" potenza="700" modello="Alogena 700" dimensione="2" correnteMinima="4" tolleranzaCorrente="10" tolleranzaLettureON="10" softStart="2" filtCycle="2" PctMin="153">36</riferimenti>
|
||||
<riferimenti corrente="104" potenza="400" modello="Quarzo 400" dimensione="2">37</riferimenti>
|
||||
<corrente valore="64" sens1="144" sens2="190" sens3="265" sens4="380" sens5="533" sens6="800" sens7="1187" sens8="1700">1</corrente>
|
||||
<corrente valore="72" sens1="150" sens2="200" sens3="280" sens4="400" sens5="566" sens6="845" sens7="1250" sens8="1800">2</corrente>
|
||||
<corrente valore="80" sens1="156" sens2="210" sens3="295" sens4="420" sens5="600" sens6="890" sens7="1312" sens8="1900">3</corrente>
|
||||
<corrente valore="88" sens1="162" sens2="220" sens3="310" sens4="440" sens5="633" sens6="935" sens7="1375" sens8="2000">4</corrente>
|
||||
<corrente valore="96" sens1="168" sens2="230" sens3="325" sens4="460" sens5="666" sens6="980" sens7="1437" sens8="2100">5</corrente>
|
||||
<corrente valore="104" sens1="175" sens2="240" sens3="340" sens4="480" sens5="700" sens6="1025" sens7="1500" sens8="2200">6</corrente>
|
||||
<corrente valore="112" sens1="181" sens2="250" sens3="355" sens4="500" sens5="733" sens6="1070" sens7="1562" sens8="2300">7</corrente>
|
||||
<corrente valore="120" sens1="187" sens2="260" sens3="370" sens4="520" sens5="766" sens6="1115" sens7="1625" sens8="2400">8</corrente>
|
||||
<corrente valore="128" sens1="193" sens2="270" sens3="385" sens4="540" sens5="800" sens6="1160" sens7="1687" sens8="2500">9</corrente>
|
||||
<corrente valore="136" sens1="200" sens2="280" sens3="400" sens4="560" sens5="833" sens6="1205" sens7="1750" sens8="2600">10</corrente>
|
||||
<corrente valore="144" sens1="206" sens2="290" sens3="415" sens4="580" sens5="866" sens6="1250" sens7="1812" sens8="2700">11</corrente>
|
||||
<corrente valore="152" sens1="212" sens2="325" sens3="430" sens4="600" sens5="899" sens6="1295" sens7="1874" sens8="2800">12</corrente>
|
||||
</riscaldo>
|
||||
@@ -0,0 +1,304 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2006 U (http://www.altova.com) by fg (nn) -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
<xs:complexType name="resistenzaType">
|
||||
<xs:attribute name="tipo" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Id tipo resistenza. Corrisponde al'id riferimento</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="riga" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero riga di appartenenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="idTermocoppia" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Id della termocoppia installata. 0 = no termocoppia, altrimenti 1...</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="termocoppiaAssociata" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Id della termocoppia di riferimento</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="idGruppo" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Id del gruppo di appartenenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="canale" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero del canale assoluto</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="fast" type="xs:boolean" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>TRUE = duty cycle nuovo, altrimenti FALSE</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="leftConstraint" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Spazio da aggiungere prima della resistenza [pix]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="rightConstraint" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Spazio da aggiungere dopo la resistenza [pix]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sfasamImp" type="xs:boolean" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sfasamento per pilotaggio a impulsi:
|
||||
possibilità di far lavorare alcuni canali sfasati rispetto agli altri, in modo da avere un assorbimento istantaneo il più basso possibile.
|
||||
Default=FALSE
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="softDelay" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Ritardo per la partenza del soft-start ad impulsi per ogni singolo canale senza che questo abbia necessariamente finito la rampa
|
||||
Default=0
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="riflettoreType">
|
||||
<xs:sequence>
|
||||
<xs:element name="resistenza" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="resistenzaType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="riferimentoType" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Id tipo resistenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="corrente" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Corrente riferimento specifico per il tipo resistenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="potenza" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Potenza nominale della resistenza espressa in Watt</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="modello" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Marca e modello resistenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="dimensione" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>1=250mm 2=125mm</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="correnteMinima" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Soglia bassa sotto cui considerare l'assorbimento un allarme</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="tolleranzaCorrente" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Usata in collaudo. Esprime la semiampiezza dell'intorno di corrente di lettura entro cui l'assorbimento è considerato coretto</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="tolleranzaLettureON" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Usata in lavoro. Esprime il numero di letture non buone oltre cui considerare allarme</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="softStart" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Impostazioni softstart.
|
||||
Bit0-4: definiscono la velocità del softstart. Il valore indica il numero di ripetizioni del singolo step della rampa. Più il valore è piccolo maggiore sarà la velocità del softstart. [default 3].
|
||||
Bit5: se = 0 il softstart lavora con tabella fissa (solo 50hZ), se = 1 il softstart lavora con i valori WaveMax e IntervalWidth, anche con frequenze diverse da 50hZ.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="filtCycle" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero di letture dell'allarme oltre cui considerare vero l'allarme</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="SoftLim" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Limite di percentuale per soft start
|
||||
Default=100
|
||||
Esempio: se pct target = 50% e SoftLim=35%, viene effettuato il soft start fino al 35% poi si salta alla pct target di 50%
|
||||
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PctMin" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Percentuale minima per duty a impulsi
|
||||
Default=0
|
||||
Esempio: se PctMin=40% per pct target da 0-39% viene usato il pilataggio a parzializzazione di fase (alogeno) da 40% a 100% viene usato il pilotaggio a impulsi (quarzo)
|
||||
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="correnteType" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Record di configurazione correnti per tipo resistenza</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="valore" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Boh!!!</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens1" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens2" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens3" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens4" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens5" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens6" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens7" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="sens8" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Sensibilità [W]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:element name="riscaldo">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Configurazione sistema di riscaldo NEW_Risk2007</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="riflettore" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="riflettoreType">
|
||||
<xs:attribute name="tipo" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>0 = riscaldo superiore, 1 = riscaldo inferiore, 2 = preriscaldo sup., 3 = preriscaldo inf.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="dimensionScale" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Fattore di scala per disegnare il riscaldo [TwinPix]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="slimScale" type="xs:double" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Fattore di proporzione fra larghezza e altezza [larghezza/altezza]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="offsetTc" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Offset di compensazione lettura termocoppia</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="rowOffset" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Interasse fra le righe di resistenza [mm]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="riferimenti" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="riferimentoType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="corrente" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="correnteType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="addrTc" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indirizzo di memorizzazione termocoppie lato CPU: 4D5=R8TC8IO, D5=NEW_RISK2007</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="baudRate" type="xs:long" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Velocità di trasmissione [baud] (9600,19200)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="comPort" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Porta seriale per comunicazione con CPU riscaldo</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="gainTc" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Fattore di moltiplicazione della lettura della termocoppia: 0.5=R8TC8IO, 0.6=NEW_RISK2007</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="softStartParam" type="xs:boolean" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>TRUE = utilizzo la parametrizzazione per il softStart, FALSE = utilizzo il softstart cablato nel firmware delle res8CH</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="waveMax" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Numero di semionde massime in un secondo (50hZ = 120, 60hZ = 140)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="intervalWidth" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Durata in tempo di 1/100 di semionda [microsec] (50hZ = 95, 60hZ = 82)</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="comTimeout" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Durata timeout per spegnimento riscaldo in caso di mancanza di comunicazione con la CPU. Trascorso il timout serve rimandare un comando di ON alla CPU per la riaccensione del riscaldo. Indicando 0 la CPU ignora lo spegnimento automatico su assenza di comunicazione. [sec]</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="intervalWidthQuarzo" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Durata in tempo di 1/100 di semionda [microsec] per lampade al quarzo</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="regFramePeriodQuarzo" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Frequenza di invio dei frame di regolazione dalla cpu per lampade al quarzo</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<serverConfig>
|
||||
<ncConfig>
|
||||
<ncVendor>DEMO</ncVendor> <!-- NO_NC/DEMO/FANUC/SIEMENS/OSAI -->
|
||||
<showNcHMI>true</showNcHMI>
|
||||
<ncIpAddress>localhost</ncIpAddress>
|
||||
<ncPort>8080</ncPort>
|
||||
<machineModel>Ares 37 OF</machineModel>
|
||||
<ncVendor>S7NET</ncVendor> <!-- NO_NC/DEMO/FANUC/SIEMENS/OSAI/S7NET -->
|
||||
<showNcHMI>false</showNcHMI>
|
||||
<ncIpAddress>192.168.0.102</ncIpAddress>
|
||||
<ncPort>102</ncPort>
|
||||
<machineModel>Thermo 2020</machineModel>
|
||||
<sharedPath>C:\PartPrg\</sharedPath>
|
||||
<sharedName>//PARTPRG:/</sharedName>
|
||||
<installationDate>01/01/2019</installationDate>
|
||||
<installationDate>01/06/2020</installationDate>
|
||||
<mgiOption>false</mgiOption>
|
||||
<siemensKeyboardOption>false</siemensKeyboardOption>
|
||||
<machineNumberHasLetters>false</machineNumberHasLetters>
|
||||
|
||||
@@ -1,78 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="serverConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="ncConfig">
|
||||
<xs:complexType>
|
||||
<xs:element name="serverConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="ncVendor" type="ncType" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="showNcHMI" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="ncIpAddress" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="ncPort" type="xs:int" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="machineModel" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="sharedPath" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="sharedName" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="installationDate" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="mgiOption" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="siemensKeyboardOption" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="machineNumberHasLetters" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="ncConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="ncVendor" type="ncType" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="showNcHMI" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="ncIpAddress" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="ncPort" type="xs:int" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="machineModel" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="sharedPath" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="sharedName" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="installationDate" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="mgiOption" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="siemensKeyboardOption" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="machineNumberHasLetters" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="softwareProdConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="enabled" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="path" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="serverConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="serverAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="serverPort" type="xs:int" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="language" type="xs:language" minOccurs='1' maxOccurs='1' default="en"/>
|
||||
<xs:element name="enableDirectoryBrowsing" type="xs:boolean" default="false"/>
|
||||
<xs:element name="databaseAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="autoOpenCmsClient" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="textEditorPath" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="MTCFolderPath" 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="alarmToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="extSoftwares">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="software" minOccurs='0' maxOccurs='15'>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="path" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="longName" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="shortName" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="arguments" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="inMainMenuBar" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="softwareProdConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="enabled" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="path" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="serverConfig">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="serverAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="serverPort" type="xs:int" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="language" type="xs:language" minOccurs='1' maxOccurs='1' default="en"/>
|
||||
<xs:element name="enableDirectoryBrowsing" type="xs:boolean" default="false"/>
|
||||
<xs:element name="databaseAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="autoOpenCmsClient" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="textEditorPath" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="MTCFolderPath" 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="alarmToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="extSoftwares">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="software" minOccurs='0' maxOccurs='15'>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="path" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="longName" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="shortName" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="arguments" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="inMainMenuBar" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:simpleType name="ncType" final="restriction" >
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="DEMO" />
|
||||
<xs:enumeration value="OSAI" />
|
||||
<xs:enumeration value="FANUC" />
|
||||
<xs:enumeration value="SIEMENS" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ncType" final="restriction" >
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="DEMO" />
|
||||
<xs:enumeration value="OSAI" />
|
||||
<xs:enumeration value="FANUC" />
|
||||
<xs:enumeration value="SIEMENS" />
|
||||
<xs:enumeration value="S7NET" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gauges>
|
||||
<parameter>
|
||||
<category>LIVE</category>
|
||||
<name>timeAdv</name>
|
||||
<label>live_timeAdv</label>
|
||||
<um>s</um>
|
||||
<scaleFactor>1000</scaleFactor>
|
||||
<numDec>1</numDec>
|
||||
<minVal>0</minVal>
|
||||
<maxVal>3600000</maxVal>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<category>GAUGE</category>
|
||||
<name>power</name>
|
||||
<label>gauge_potenza</label>
|
||||
<um>kWatt</um>
|
||||
<scaleFactor>1000</scaleFactor>
|
||||
<numDec>1</numDec>
|
||||
<minVal>0</minVal>
|
||||
<maxVal>2000000</maxVal>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<category>GAUGE</category>
|
||||
<name>vacuum</name>
|
||||
<label>gauge_vuoto</label>
|
||||
<um>Bar</um>
|
||||
<scaleFactor>1000</scaleFactor>
|
||||
<numDec>2</numDec>
|
||||
<minVal>-1000</minVal>
|
||||
<maxVal>0</maxVal>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<category>GAUGE</category>
|
||||
<name>air</name>
|
||||
<label>gauge_aria</label>
|
||||
<um>Bar</um>
|
||||
<scaleFactor>1000</scaleFactor>
|
||||
<numDec>2</numDec>
|
||||
<minVal>0</minVal>
|
||||
<maxVal>10000</maxVal>
|
||||
</parameter>
|
||||
</gauges>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="gauges">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<!-- Heads -->
|
||||
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="category" type="param_type" />
|
||||
<xs:element name="name" type="xs:string" />
|
||||
<xs:element name="label" type="xs:string" />
|
||||
<xs:element name="um" type="xs:string" />
|
||||
<xs:element name="scaleFactor" type="xs:int" default="1"/>
|
||||
<xs:element name="numDec" type="xs:int" default="0"/>
|
||||
<xs:element name="minVal" type="xs:int" default="0"/>
|
||||
<xs:element name="maxVal" type="xs:int" default="1000"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- Head Type -->
|
||||
<xs:simpleType name="param_type" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="GAUGE" />
|
||||
<xs:enumeration value="LIVE" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Thermo.Active.Model.ConfigModels;
|
||||
using System.Collections.Generic;
|
||||
using Thermo.Active.Model.ConfigModels;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.Scada;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Thermo.Active.Config
|
||||
{
|
||||
@@ -11,7 +11,7 @@ namespace Thermo.Active.Config
|
||||
public static ServerConfigModel ServerStartupConfig;
|
||||
public static NcConfigModel NcConfig;
|
||||
public static List<ExtSoftwareModel> ExtSoftwaresConfig;
|
||||
public static SoftwareProdConfigModel SoftwareProdConfig;
|
||||
public static SoftwareProdConfigModel SoftwareProdConfig;
|
||||
public static MachineModel MachineConfig;
|
||||
public static List<MaintenanceConfigModel> MaintenancesConfig;
|
||||
public static ContactModel CmsContactConfig;
|
||||
@@ -32,6 +32,8 @@ namespace Thermo.Active.Config
|
||||
public static List<NcSoftKeysModel> NcSoftKeysConfig;
|
||||
public static List<AlarmsConfigModel> InitialAlarmsConfig;
|
||||
public static List<HeadsConfigModel> HeadsConfig;
|
||||
|
||||
|
||||
public static CmsConnectConfigModel CmsConnectConfig;
|
||||
|
||||
public static AreasConfigModel ProductionConfig;
|
||||
@@ -42,7 +44,7 @@ namespace Thermo.Active.Config
|
||||
public static AreasConfigModel ScadaConfig;
|
||||
public static AreasConfigModel JobEditorConfig;
|
||||
public static AreasConfigModel UsersConfig;
|
||||
|
||||
|
||||
public static List<ScadaSchemaModel> ProductionScadaSchema = new List<ScadaSchemaModel>();
|
||||
public static List<ScadaSchemaModel> ConfiguredScadaSchema = new List<ScadaSchemaModel>();
|
||||
|
||||
@@ -51,5 +53,16 @@ namespace Thermo.Active.Config
|
||||
public static List<string> MacrosConfig;
|
||||
|
||||
public static string CMSMainProgramContent;
|
||||
|
||||
|
||||
// Thermo
|
||||
public static List<ThermoProdConfigModel> ThermoProdConfig;
|
||||
public static List<RecipeConfigModel> RecipeConfig;
|
||||
public static List<ModBlockConfigModel> ModBlockConfig;
|
||||
public static List<RiskResistModel> RiskResistConfig;
|
||||
public static List<RiskChannelModel> RiskChannelConfig;
|
||||
public static List<RiskBoardModel> RiskBoardConfig;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
using Thermo.Active.Model.ConfigModels;
|
||||
using Thermo.Active.Model.DTOModels.Scada;
|
||||
using Thermo.Active.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -12,15 +10,18 @@ using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Schema;
|
||||
using System.Xml.Serialization;
|
||||
using Thermo.Active.Model.ConfigModels;
|
||||
using Thermo.Active.Model.DTOModels.Scada;
|
||||
using Thermo.Active.Utils;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using static Thermo.Active.Utils.SupportFunctions;
|
||||
|
||||
namespace Thermo.Active.Config
|
||||
{
|
||||
public static class ServerConfigController
|
||||
{
|
||||
private static string actualFileName;
|
||||
private static string actualFileName;
|
||||
|
||||
public static void ReadStartupConfig()
|
||||
{
|
||||
@@ -33,15 +34,18 @@ namespace Thermo.Active.Config
|
||||
ReadUserSoftKeysConfig();
|
||||
ReadAlarmsConfig();
|
||||
ReadHeadsConfig();
|
||||
ReadThermoProdConfig();
|
||||
ReadRecipeConfig();
|
||||
ReadModBlockConfig();
|
||||
ReadRiskConfig();
|
||||
// ReadCMSConnectConfig();
|
||||
ReadMacros();
|
||||
ReadScadaFile();
|
||||
//ReadMainProgram();
|
||||
}
|
||||
catch (XmlException ex)
|
||||
{
|
||||
ExceptionManager.ManageError(ERROR_LEVEL.FATAL,
|
||||
"Error while reading file: " + ex.SourceUri +
|
||||
"Error while reading file: " + ex.SourceUri +
|
||||
"\n Error: " + ex.Message,
|
||||
true
|
||||
);
|
||||
@@ -50,7 +54,7 @@ namespace Thermo.Active.Config
|
||||
{
|
||||
var message = ex.Message;
|
||||
if (ex.InnerException != null)
|
||||
message += "\n"+ex.InnerException.Message;
|
||||
message += "\n" + ex.InnerException.Message;
|
||||
ExceptionManager.ManageError(ERROR_LEVEL.FATAL, message, true);
|
||||
}
|
||||
}
|
||||
@@ -59,7 +63,7 @@ namespace Thermo.Active.Config
|
||||
{
|
||||
// Create new instance
|
||||
XmlSchemaSet readerSettings = new XmlSchemaSet();
|
||||
|
||||
|
||||
// Add Schema from Assembly
|
||||
Assembly myAssembly = Assembly.GetExecutingAssembly();
|
||||
using (Stream schemaStream = myAssembly.GetManifestResourceStream(configSchemaFilePath))
|
||||
@@ -69,11 +73,11 @@ namespace Thermo.Active.Config
|
||||
readerSettings.Add(null, schemaReader);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
actualFileName = configFilePath;
|
||||
|
||||
// Open file reader
|
||||
XDocument xmlConfigFile = XDocument.Load((!isFullPath ? BASE_PATH + "\\": "") + configFilePath);
|
||||
XDocument xmlConfigFile = XDocument.Load((!isFullPath ? BASE_PATH + "\\" : "") + configFilePath);
|
||||
// Validate file
|
||||
xmlConfigFile.Validate(readerSettings, ValidationHandler);
|
||||
|
||||
@@ -129,13 +133,13 @@ namespace Thermo.Active.Config
|
||||
break;
|
||||
|
||||
case AREAS.SCADA_KEY:
|
||||
SetAreaValue(ref ScadaConfig, element);
|
||||
SetAreaValue(ref ScadaConfig, element);
|
||||
break;
|
||||
|
||||
case AREAS.JOBEDITOR_KEY:
|
||||
SetAreaValue(ref JobEditorConfig, element);
|
||||
break;
|
||||
|
||||
|
||||
case AREAS.USERS_KEY:
|
||||
SetAreaValue(ref UsersConfig, element);
|
||||
break;
|
||||
@@ -157,20 +161,20 @@ namespace Thermo.Active.Config
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool CheckAreaStatus(string areaName)
|
||||
public static bool CheckAreaStatus(string areaName)
|
||||
{ // Get Area status ( enabled field) by name
|
||||
switch (areaName)
|
||||
{
|
||||
@@ -205,7 +209,7 @@ namespace Thermo.Active.Config
|
||||
}
|
||||
|
||||
private static void ReadScadaFile()
|
||||
{
|
||||
{
|
||||
DirectoryInfo d = new DirectoryInfo(SCADA_DIRECTORY);
|
||||
FileInfo[] files = d.GetFiles("*.xml");
|
||||
|
||||
@@ -217,7 +221,7 @@ namespace Thermo.Active.Config
|
||||
|
||||
StreamReader sr = new StreamReader(SCADA_DIRECTORY + file.Name);
|
||||
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ScadaSchemaModel));
|
||||
ScadaSchemaModel schema = xmlSerializer.Deserialize(sr) as ScadaSchemaModel;
|
||||
ScadaSchemaModel schema = xmlSerializer.Deserialize(sr) as ScadaSchemaModel;
|
||||
|
||||
|
||||
// Setup incremental ids
|
||||
@@ -230,7 +234,8 @@ namespace Thermo.Active.Config
|
||||
{
|
||||
Id = i++,
|
||||
Buttons = x.Buttons.Select(y => { y.Id = i++; return y; }).ToArray(),
|
||||
Images = x.Images.Select(y => {
|
||||
Images = x.Images.Select(y =>
|
||||
{
|
||||
y.Id = i++;
|
||||
y.Name = GetImageBase64String(SCADA_DIRECTORY + name, y.Name);
|
||||
return y;
|
||||
@@ -255,8 +260,6 @@ namespace Thermo.Active.Config
|
||||
|
||||
public static void ReadServerConfig()
|
||||
{
|
||||
//CalculateHash(SERVER_CONFIG_PATH);
|
||||
|
||||
// Get server file handler
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(SERVER_CONFIG_SCHEMA_PATH, SERVER_CONFIG_PATH);
|
||||
|
||||
@@ -276,7 +279,7 @@ namespace Thermo.Active.Config
|
||||
InstallationDate = x.Element("installationDate").Value,
|
||||
MgiOption = Convert.ToBoolean(x.Element("mgiOption").Value),
|
||||
SiemensKeyboardOption = Convert.ToBoolean(x.Element("siemensKeyboardOption").Value),
|
||||
MachineNumberHasLetters = Convert.ToBoolean(x.Element("machineNumberHasLetters").Value)
|
||||
MachineNumberHasLetters = Convert.ToBoolean(x.Element("machineNumberHasLetters").Value)
|
||||
}).FirstOrDefault();
|
||||
|
||||
// Read Prod Software Config with LINQ
|
||||
@@ -285,9 +288,9 @@ namespace Thermo.Active.Config
|
||||
.Descendants(PROD_SFT_CONFIG_KEY)
|
||||
.Select(x => new SoftwareProdConfigModel()
|
||||
{
|
||||
Enabled = Convert.ToBoolean(x.Element("enabled").Value),
|
||||
Enabled = Convert.ToBoolean(x.Element("enabled").Value),
|
||||
Path = x.Element("path").Value
|
||||
}).FirstOrDefault();
|
||||
}).FirstOrDefault();
|
||||
|
||||
// Read server config with LINQ and save into static config
|
||||
ServerStartupConfig = xmlConfigFile
|
||||
@@ -301,7 +304,7 @@ namespace Thermo.Active.Config
|
||||
EnableDirectoryBrowsing = Convert.ToBoolean(x.Element("enableDirectoryBrowsing").Value),
|
||||
DatabaseAddress = x.Element("databaseAddress").Value,
|
||||
AutoOpenCmsClient = Convert.ToBoolean(x.Element("autoOpenCmsClient").Value),
|
||||
TextEditorPath = x.Element("textEditorPath").Value,
|
||||
TextEditorPath = x.Element("textEditorPath").Value,
|
||||
MTCFolderPath = x.Element("MTCFolderPath").Value,
|
||||
MTCApplicationName = x.Element("MTCApplicationName").Value,
|
||||
MaxAlarmsRows = Convert.ToInt32(x.Element("maxAlarmsRows").Value),
|
||||
@@ -344,7 +347,7 @@ namespace Thermo.Active.Config
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(MAINTENANCES_CONFIG_SCHEMA_PATH, MAINTENANCES_CONFIG_PATH);
|
||||
|
||||
ReadAssistanceConfig();
|
||||
|
||||
|
||||
MaintenancesConfig = xmlConfigFile
|
||||
.Descendants("maintenances")
|
||||
.Elements("maintenance")
|
||||
@@ -373,11 +376,11 @@ namespace Thermo.Active.Config
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(MAINTENANCES_CONFIG_SCHEMA_PATH, MAINTENANCES_CONFIG_PATH);
|
||||
ReadAssistanceConfigFromXml(
|
||||
xmlConfigFile.Root.Descendants("cmsContacts").FirstOrDefault(),
|
||||
out CmsContactConfig,
|
||||
out CmsAuxContact1,
|
||||
out CmsContactConfig,
|
||||
out CmsAuxContact1,
|
||||
out CmsAuxContact2
|
||||
);
|
||||
|
||||
|
||||
xmlConfigFile = GetXmlHandlerWithValidator(MAINTENANCES_CONFIG_SCHEMA_PATH, MAINTENANCES_CONFIG_PATH);
|
||||
ReadAssistanceConfigFromXml(
|
||||
xmlConfigFile.Root.Descendants("scmContacts").FirstOrDefault(),
|
||||
@@ -544,7 +547,7 @@ namespace Thermo.Active.Config
|
||||
{
|
||||
AlarmId = Convert.ToInt32(x.Element("alarmId").Value),
|
||||
PlcId = Convert.ToInt32(x.Element("plcId").Value),
|
||||
RestoreIsActive = Convert.ToBoolean(x.Element("restoreIsActive").Value)
|
||||
RestoreIsActive = Convert.ToBoolean(x.Element("restoreIsActive").Value)
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
@@ -571,7 +574,234 @@ namespace Thermo.Active.Config
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
/// <summary>
|
||||
/// Recipe Config setup from file
|
||||
/// </summary>
|
||||
private static void ReadRecipeConfig()
|
||||
{
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(RECIPE_CONFIG_SCHEMA_PATH, RECIPE_CONFIG_PATH);
|
||||
|
||||
// Read Recipe config from XML file
|
||||
RecipeConfig = xmlConfigFile
|
||||
.Root
|
||||
.Elements()
|
||||
.Select(x => new RecipeConfigModel()
|
||||
{
|
||||
Id = Convert.ToInt16(x.Element("id").Value),
|
||||
Category = GetTActParamType(x.Element("category").Value),
|
||||
SubCategory_1 = x.Element("subCategory_1").Value,
|
||||
SubCategory_2 = x.Element("subCategory_2").Value,
|
||||
Name = x.Element("name").Value,
|
||||
Description = x.Element("description").Value,
|
||||
Format = x.Element("format").Value,
|
||||
ScaleFactor = Convert.ToInt16(x.Element("scaleFactor").Value),
|
||||
NumDec = Convert.ToInt16(x.Element("numDec").Value),
|
||||
//EnumVal = new Dictionary<string, string>()
|
||||
EnumVal = x.Element("enumList") != null ? x.Element("enumList").Elements().ToDictionary(
|
||||
y => y.Element("value").Value,
|
||||
y => new EnumDetail(y.Element("label").Value, y.Element("anim") != null ? y.Element("anim").Value : "")
|
||||
) : new Dictionary<string, EnumDetail>()
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
/// <summary>
|
||||
/// ThermoProd setup from file
|
||||
/// </summary>
|
||||
private static void ReadThermoProdConfig()
|
||||
{
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(THERMO_PROD_SCHEMA_PATH, THERMO_PROD_PATH);
|
||||
|
||||
// Read Recipe config from XML file
|
||||
ThermoProdConfig = xmlConfigFile
|
||||
.Root
|
||||
.Elements()
|
||||
.Select(x => new ThermoProdConfigModel()
|
||||
{
|
||||
Category = GetTActProdCategory(x.Element("category").Value),
|
||||
Name = x.Element("name").Value,
|
||||
Label = x.Element("label").Value,
|
||||
UM = x.Element("um").Value,
|
||||
ScaleFactor = Convert.ToInt32(x.Element("scaleFactor").Value),
|
||||
NumDec = Convert.ToInt32(x.Element("numDec").Value),
|
||||
MinVal = Convert.ToInt32(x.Element("minVal").Value),
|
||||
MaxVal = Convert.ToInt32(x.Element("maxVal").Value),
|
||||
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
/// <summary>
|
||||
/// Module config setup from file
|
||||
/// </summary>
|
||||
private static void ReadModBlockConfig()
|
||||
{
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(MODBLOCK_CONFIG_SCHEMA_PATH, MODBLOCK_CONFIG_PATH);
|
||||
|
||||
// Read head config from XML file
|
||||
ModBlockConfig = xmlConfigFile
|
||||
.Root
|
||||
.Elements()
|
||||
.Select(x => new ModBlockConfigModel()
|
||||
{
|
||||
Id = Convert.ToInt16(x.Element("id").Value),
|
||||
Label = x.Element("label").Value,
|
||||
//LocalizedLabels = x.Element("localizedLabels").Elements().ToDictionary(
|
||||
// y => y.Attribute("langKey").Value, y => y.Value
|
||||
// ),
|
||||
Type = GetTActMB_Type(x.Element("type").Value),
|
||||
Section = GetTActMB_Section(x.Element("section").Value),
|
||||
IdParam = Convert.ToInt16(x.Element("idParam").Value),
|
||||
ShowDelay = Convert.ToBoolean(x.Element("showDelay").Value),
|
||||
Priority = Convert.ToInt16(x.Element("priority").Value)
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
/// <summary>
|
||||
/// Warmers config setup from file
|
||||
/// </summary>
|
||||
private static void ReadRiskConfig()
|
||||
{
|
||||
XDocument xmlConfigFile = GetXmlHandlerWithValidator(RISK_CONFIG_SCHEMA_PATH, RISK_CONFIG_PATH);
|
||||
|
||||
int i = 0;
|
||||
|
||||
List<RiskRiflettore> Riflettori = new List<RiskRiflettore>();
|
||||
List<RiskResistenza> Resistenze = new List<RiskResistenza>();
|
||||
List<RiskRiferimenti> Riferimenti = new List<RiskRiferimenti>();
|
||||
|
||||
// carico gli oggetti "nativi"
|
||||
Riferimenti = xmlConfigFile
|
||||
.Root
|
||||
.Elements("riferimenti")
|
||||
.Select(x => new RiskRiferimenti()
|
||||
{
|
||||
Id = Convert.ToInt16(x.Value),
|
||||
Dimensione = Convert.ToInt16(x.Attribute("dimensione").Value),
|
||||
Potenza = Convert.ToInt16(x.Attribute("potenza").Value),
|
||||
Modello = x.Attribute("modello").Value
|
||||
})
|
||||
.ToList();
|
||||
|
||||
|
||||
Riflettori = xmlConfigFile
|
||||
.Root
|
||||
.Elements("riflettore")
|
||||
.Select(x => new RiskRiflettore()
|
||||
{
|
||||
Tipo = Convert.ToInt16(x.Attribute("tipo").Value),
|
||||
Resistenze = x.Elements("resistenza")
|
||||
.Select(y => new RiskResistenza()
|
||||
{
|
||||
Canale = Convert.ToInt16(y.Attribute("canale").Value),
|
||||
Riga = Convert.ToInt16(y.Attribute("riga").Value),
|
||||
Tipo = Convert.ToInt16(y.Attribute("tipo").Value)
|
||||
}
|
||||
)
|
||||
.ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// conversione da modelli RISK a modello Thermo...
|
||||
int numCol = -1;
|
||||
int ResistId = 0;
|
||||
int oldRow = 0;
|
||||
int currIdBoard = 0;
|
||||
RiskBoardConfig = new List<RiskBoardModel>();
|
||||
RiskResistConfig = new List<RiskResistModel>();
|
||||
RiskChannelConfig = new List<RiskChannelModel>();
|
||||
|
||||
// inizializzo le 64 schede a 0 canali...
|
||||
for (int idxBoard = 0; idxBoard < 64; idxBoard++)
|
||||
{
|
||||
RiskBoardConfig.Add(new RiskBoardModel()
|
||||
{
|
||||
IdBoard = idxBoard,
|
||||
NumChannels = 0
|
||||
});
|
||||
}
|
||||
|
||||
// ciclo x calcolare i canali
|
||||
foreach (var riflettore in Riflettori)
|
||||
{
|
||||
// ciclo sulle resistenze
|
||||
foreach (var resistenza in riflettore.Resistenze)
|
||||
{
|
||||
// cerco la scheda dato il canale... 16 ch x ogni scheda
|
||||
currIdBoard = (resistenza.Canale - 1) / 16;
|
||||
// cerco se ho già la scheda
|
||||
var boardFound = RiskBoardConfig.Find(item => item.IdBoard == currIdBoard);
|
||||
if (boardFound == null)
|
||||
{
|
||||
RiskBoardConfig.Add(new RiskBoardModel()
|
||||
{
|
||||
IdBoard = currIdBoard,
|
||||
NumChannels = 1
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
boardFound.NumChannels += 1;
|
||||
}
|
||||
|
||||
|
||||
// cerco se ho già il canale
|
||||
var chanFound = RiskChannelConfig.Find(item => item.IdChannel == resistenza.Canale);
|
||||
if (chanFound == null)
|
||||
{
|
||||
// cerco il TIPO...
|
||||
var riferimento = Riferimenti.Find(x => x.Id == resistenza.Tipo);
|
||||
if (riferimento != null)
|
||||
{
|
||||
RiskChannelConfig.Add(new RiskChannelModel()
|
||||
{
|
||||
IdChannel = resistenza.Canale,
|
||||
IdReflector = riflettore.Tipo,
|
||||
SetpointRecipe = 0,
|
||||
SetpointThermo = 0,
|
||||
MaxPower = riferimento.Potenza,
|
||||
NumResist = 1,
|
||||
CalcIchMin = riferimento.Modello.Contains("Quarzo")
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
chanFound.NumResist += 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ciclo sui riflettori x recuperare le resistenze...
|
||||
foreach (var riflettore in Riflettori)
|
||||
{
|
||||
// ciclo sulle resistente
|
||||
foreach (var resistenza in riflettore.Resistenze)
|
||||
{
|
||||
if (oldRow != resistenza.Riga)
|
||||
{
|
||||
numCol = 0;
|
||||
oldRow = resistenza.Riga;
|
||||
}
|
||||
else
|
||||
{
|
||||
numCol++;
|
||||
}
|
||||
|
||||
// cerco il TIPO...
|
||||
var riferimento = Riferimenti.Find(x => x.Id == resistenza.Tipo);
|
||||
|
||||
RiskResistConfig.Add(new RiskResistModel()
|
||||
{
|
||||
Id = ResistId++,
|
||||
Row = resistenza.Riga,
|
||||
Column = numCol,
|
||||
IdChannel = resistenza.Canale,
|
||||
Dimension = riferimento.Dimensione
|
||||
}); ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ReadCMSConnectConfig()
|
||||
{
|
||||
@@ -603,14 +833,14 @@ namespace Thermo.Active.Config
|
||||
Token = x.Element("token").Value
|
||||
})
|
||||
.FirstOrDefault();
|
||||
|
||||
|
||||
if (DecodeCMSConnectGatewayLogin(tempGatewayConfigModel.Token, out _tempUSR, out _tempPSW))
|
||||
{
|
||||
tempGatewayConfigModel.Username = _tempUSR;
|
||||
tempGatewayConfigModel.Password = _tempPSW;
|
||||
}
|
||||
else
|
||||
throw new Exception("Error while reading \""+ CMS_CONNECT_CONFIG_PATH + "\": Gateway Token not valid");
|
||||
throw new Exception("Error while reading \"" + CMS_CONNECT_CONFIG_PATH + "\": Gateway Token not valid");
|
||||
|
||||
CmsConnectConfig.Gateway = tempGatewayConfigModel;
|
||||
}
|
||||
@@ -627,16 +857,6 @@ namespace Thermo.Active.Config
|
||||
.Select(x => x.Value)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
|
||||
public static void ReadMainProgram()
|
||||
{
|
||||
if (File.Exists(MAIN_PROGRAM_CONFIG_PATH))
|
||||
{
|
||||
CMSMainProgramContent = File.ReadAllText(MAIN_PROGRAM_CONFIG_PATH);
|
||||
}
|
||||
}
|
||||
|
||||
public static string CalculateHash(string filename)
|
||||
{
|
||||
using (var sha = SHA1.Create())
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -55,6 +58,12 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ServerConfig.cs" />
|
||||
<Compile Include="ServerConfigController.cs" />
|
||||
<Content Include="Config\thermoProdConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Recipes\.placeholder.txt">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Report\Programs.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
@@ -69,12 +78,22 @@
|
||||
<Content Include="Config\customMainProgram.txt">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Config\moduleBlockConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Config\recipeConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Config\risk2007.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Config\userSoftKeyConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Config\userSoftKeyConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<Content Include="Config\areasConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
@@ -83,11 +102,13 @@
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Config\headsConfigValidator.xsd">
|
||||
<EmbeddedResource Include="Config\recipeConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Config\maintenancesConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<Content Include="Config\alarmsConfig.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
@@ -102,12 +123,15 @@
|
||||
</Content>
|
||||
<EmbeddedResource Include="Config\serverConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Config\alarmsConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Config\ncSoftKeyConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -129,27 +153,61 @@
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\areasConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\macrosConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\scadaValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\cmsConnectConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\customerContactConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\headsConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\moduleBlockConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config\risk2007Validator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="Config\Recipes\template.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Config\thermoProdConfigValidator.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
@@ -32,9 +32,6 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CMS_CORE_Library">
|
||||
<HintPath>..\Libs\CMS_CORE_Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
@@ -63,6 +60,10 @@
|
||||
<Compile Include="ThreadsSiemensHmi.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\cms_core_library\CMS_CORE_Library\CMS_CORE_Library.csproj">
|
||||
<Project>{4abf8eef-2b23-483e-acdc-53214fe28681}</Project>
|
||||
<Name>CMS_CORE_Library</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Thermo.Active.Config\Thermo.Active.Config.csproj">
|
||||
<Project>{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}</Project>
|
||||
<Name>Thermo.Active.Config</Name>
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
using CMS_CORE_Library.Models;
|
||||
using Thermo.Active.Config;
|
||||
using Thermo.Active.Core;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
using Thermo.Active.Model.DTOModels.Scada;
|
||||
using Thermo.Active.NC;
|
||||
using Thermo.Active.Utils;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
@@ -18,23 +10,36 @@ using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using TeamDev.SDK.MVVM;
|
||||
using Thermo.Active.Core;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
using Thermo.Active.Model.DTOModels.Scada;
|
||||
using Thermo.Active.Model.DTOModels.ThModules;
|
||||
using Thermo.Active.Model.DTOModels.ThProd;
|
||||
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;
|
||||
using static Thermo.Active.Utils.ExceptionManager;
|
||||
using static Thermo.Active.Utils.ExceptionManager;
|
||||
|
||||
public static class ThreadsFunctions
|
||||
public static class ThreadsFunctions
|
||||
{
|
||||
public static int recipeRtCounter = 0;
|
||||
public static int modulesRtCounter = 0;
|
||||
public static bool reconnectionIsRunning = false;
|
||||
|
||||
private static ConcurrentDictionary<string, long> Timers = new ConcurrentDictionary<string, long>();
|
||||
private static ConcurrentDictionary<string, long> Counter = new ConcurrentDictionary<string, long>();
|
||||
|
||||
private static Thread ConnThread;
|
||||
|
||||
|
||||
#region Functions
|
||||
|
||||
public static void ManageWatchdog()
|
||||
public static void ManageWatchdog()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
@@ -47,15 +52,10 @@ public static class ThreadsFunctions
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
//if(errorCounter == MAX_NUM_OF_WATCHDOG_ERROR)
|
||||
//{
|
||||
|
||||
//}
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Manage watchdog
|
||||
libraryError = ncAdapter.ManageWatchdog();
|
||||
@@ -65,7 +65,7 @@ public static class ThreadsFunctions
|
||||
errorCounter++;
|
||||
}
|
||||
else if (libraryError == NO_ERROR)
|
||||
errorCounter = 0;
|
||||
errorCounter = 0;
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
@@ -85,6 +85,132 @@ public static class ThreadsFunctions
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Manage status/command words for actions
|
||||
/// </summary>
|
||||
public static void ManageStatusCommand()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
{
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Manage status command
|
||||
libraryError = ncAdapter.ManageStatusCommand();
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(250, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException ex)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Manage action for conf request
|
||||
/// </summary>
|
||||
public static void ManageConfRequest()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
{
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Manage status command
|
||||
libraryError = ncAdapter.ManageConfRequest();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(2000, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException ex)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Manage action for conf request
|
||||
/// </summary>
|
||||
public static void ManageProdUpdate()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
{
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
//// Manage status command
|
||||
//libraryError = ncAdapter.ManageProdUpdate();
|
||||
//if (libraryError.errorCode != 0)
|
||||
// ManageLibraryError(libraryError);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(1000, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException ex)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadAlarms()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
@@ -304,10 +430,13 @@ public static class ThreadsFunctions
|
||||
// Send through signalR
|
||||
MessageServices.Current.Publish(SEND_EXPIRED_MAINTENANCES_DATA, null, expiredMaintenances);
|
||||
|
||||
// 2020.06.18 commentata da indicazione di Lucio Maranta (NON dovrebbe servire ora)
|
||||
#if false
|
||||
//Manage Candies
|
||||
libraryError = ncAdapter.ManageCandies();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
ManageLibraryError(libraryError);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
@@ -375,50 +504,6 @@ public static class ThreadsFunctions
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadHeadsData()
|
||||
{
|
||||
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.GetHeadsData(out List<DTOHeadModel> heads);
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
else
|
||||
// Send through signalR
|
||||
MessageServices.Current.Publish(SEND_HEADS_DATA, null, heads);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadAxesNamesData()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
@@ -507,99 +592,7 @@ public static class ThreadsFunctions
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadActiveProgramData()
|
||||
{
|
||||
NcFileAdapter ncAdapter = new NcFileAdapter();
|
||||
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.GetActiveProgramInfo(out DTOActiveProgramDataModel active);
|
||||
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
else
|
||||
// Send through signalR
|
||||
MessageServices.Current.Publish(SEND_ACTIVE_PROGRAM_DATA, null, active);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(400, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadPartProgramQueueData()
|
||||
{
|
||||
NcFileAdapter ncAdapter = new NcFileAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
|
||||
try
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Read data
|
||||
libraryError = ncAdapter.UpdateQueue();
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
libraryError = ncAdapter.GetSelectedProcessQueue(out List<DTOQueueModel> queue);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_QUEUE_DATA, null, queue);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ReadScadaData()
|
||||
public static void ReadScadaData()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
@@ -643,7 +636,313 @@ public static class ThreadsFunctions
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadGaugeData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadGaugeData(out Dictionary<string, DTOThermoProd> currentLiveProd);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_GAUGE_DATA, null, currentLiveProd);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadProdInfoData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC (and log if changed...)
|
||||
libraryError = ncAdapter.ReadProdInfoData(out ThermoModels.ProdInfoModel prodInfoData);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_PROD_INFO_DATA, null, prodInfoData);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadProdCycleData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadProdCycleData(out ThermoModels.ProdCycleModel prodCycleData);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_PROD_CYCLE_DATA, null, prodCycleData);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
//Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadRecipeData()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
try
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncAdapter.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
// ogni n counter leggo anche dati NON RT
|
||||
recipeRtCounter--;
|
||||
bool onlyRt = recipeRtCounter > 0;
|
||||
//check reset...
|
||||
recipeRtCounter = recipeRtCounter < 0 ? 4 : recipeRtCounter;
|
||||
|
||||
sw.Restart();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadRecipeData(onlyRt, false, out Dictionary<string, DTORecipeParam> currRecipe);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_FULL, null, currRecipe);
|
||||
|
||||
// FIXME TODO verificare come ridurre chiamate
|
||||
|
||||
// ora gestisco la overview!
|
||||
libraryError = ncAdapter.GetRecipeOverview(out Dictionary<RecipeSection, RecipeCatStatus> currOverview);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_RECIPE_OVERWIEW, null, currOverview);
|
||||
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadWarmersData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadWarmers(out Dictionary<int, DTOWarmers> currWarmers);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
// pubblico
|
||||
MessageServices.Current.Publish(SEND_THERMO_WARMERS_DATA, null, currWarmers);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(1800, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadAreaData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC... info x area lastra... la % di X / Y
|
||||
libraryError = ncAdapter.GetWarmMaterialArea(out Dictionary<string, double> currAreaPerc);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
// pubblico
|
||||
MessageServices.Current.Publish(SEND_THERMO_AREA_DATA, null, currAreaPerc);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadModulesData()
|
||||
{
|
||||
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();
|
||||
|
||||
// Check if client is connected
|
||||
if (ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get new data from PLC
|
||||
libraryError = ncAdapter.ReadModulesBlock(out Dictionary<int, DTOModulesBlock> currModules);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
MessageServices.Current.Publish(SEND_THERMO_MODULE_DATA, null, currModules);
|
||||
}
|
||||
else
|
||||
RestoreConnection();
|
||||
|
||||
sw.Stop();
|
||||
|
||||
// Update thread timer
|
||||
UpdateStat(MethodBase.GetCurrentMethod().Name, sw.ElapsedMilliseconds);
|
||||
// Wait
|
||||
Thread.Sleep(CalcSleepTime(250, (int)sw.ElapsedMilliseconds));
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncAdapter.Dispose();
|
||||
}
|
||||
}
|
||||
public static void ReadM154Data()
|
||||
{
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
@@ -698,7 +997,7 @@ public static class ThreadsFunctions
|
||||
foreach (M154DataModel m154 in data)
|
||||
{
|
||||
//if (CmsConnectConfig.Enabled)
|
||||
if(ServerStartupConfig.CmsConnectReady)
|
||||
if (ServerStartupConfig.CmsConnectReady)
|
||||
{
|
||||
|
||||
if (m154.Parameters.Count() >= 2 && m154.Parameters[0] == "SOUR")
|
||||
@@ -827,18 +1126,18 @@ public static class ThreadsFunctions
|
||||
{
|
||||
List<DTOLanguageModel> availableLanguages = LanguageController.GetLanguageListFromDirectory();
|
||||
if (availableLanguages == null)
|
||||
return ;
|
||||
return;
|
||||
|
||||
ICollection<CultureInfo> cultureInfos = new List<CultureInfo>();
|
||||
|
||||
// Get nc available language
|
||||
CmsError cmsError = ncAdapter.numericalControl.NC_GetAvailableLanguages(ref cultureInfos);
|
||||
if (cmsError.IsError())
|
||||
ManageLibraryError(cmsError);
|
||||
CmsError libraryError = ncAdapter.numericalControl.NC_GetAvailableLanguages(ref cultureInfos);
|
||||
if (libraryError.IsError())
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
// Filter available language with
|
||||
availableLanguages = availableLanguages.Where(x => cultureInfos.Any(y => y.TwoLetterISOLanguageName == x.IsoId)).ToList();
|
||||
|
||||
|
||||
// Fill redis DB
|
||||
int count = 1;
|
||||
Dictionary<string, string> defAlarmsNamesEn = null;
|
||||
@@ -847,10 +1146,10 @@ public static class ThreadsFunctions
|
||||
{
|
||||
Dictionary<string, string> alarmsNames = GetPlcAlarmsTranslations(lang.IsoId);
|
||||
|
||||
if(lang.IsoId.ToLower() == "en")
|
||||
if (lang.IsoId.ToLower() == "en")
|
||||
{
|
||||
defAlarmsNamesEn = alarmsNames;
|
||||
if(!RedisController.WriteAlarmsConfigEn(alarmsNames))
|
||||
if (!RedisController.WriteAlarmsConfigEn(alarmsNames))
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
}
|
||||
else if (lang.IsoId.ToLower() == "it")
|
||||
@@ -861,7 +1160,7 @@ public static class ThreadsFunctions
|
||||
}
|
||||
else
|
||||
if (!RedisController.WriteAlarmsConfigCurr(alarmsNames))
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
|
||||
if (count == 3)
|
||||
break;
|
||||
@@ -871,10 +1170,10 @@ public static class ThreadsFunctions
|
||||
|
||||
if (availableLanguages.Count < 3 && defAlarmsNamesEn != null)
|
||||
if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesEn))
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
else if (availableLanguages.Count < 3 && defAlarmsNamesIt != null)
|
||||
if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesIt))
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
else if (availableLanguages.Count < 3 && defAlarmsNamesIt != null)
|
||||
if (!RedisController.WriteAlarmsConfigCurr(defAlarmsNamesIt))
|
||||
ManageError(ERROR_LEVEL.FATAL, CMS_CONNECT_SETUP_ALARM_MESSAGE);
|
||||
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
@@ -890,18 +1189,18 @@ public static class ThreadsFunctions
|
||||
private static void TryNcConnection()
|
||||
{
|
||||
// Stop all the NC threads
|
||||
ThreadsHandler.Stop();
|
||||
StatReset();
|
||||
ThreadsHandler.Stop();
|
||||
StatReset();
|
||||
NcAdapter ncAdapter = new NcAdapter();
|
||||
CmsError cmsError = NO_ERROR;
|
||||
CmsError libraryError = NO_ERROR;
|
||||
// Run loop until NC is connected
|
||||
while (!ncAdapter.numericalControl.NC_IsConnected())
|
||||
while (!ncAdapter.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Try reconnection
|
||||
cmsError = ncAdapter.Connect();
|
||||
if (cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_ENVIRONMENT_NOT_FOUND || cmsError.errorCode == CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING || cmsError.errorCode == CMS_ERROR_CODES.OSAI_TT_FOLDER_NOT_FOUND)
|
||||
ManageLibraryError(cmsError);
|
||||
else if (cmsError.errorCode != CMS_ERROR_CODES.OK)
|
||||
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();
|
||||
}
|
||||
@@ -912,7 +1211,7 @@ public static class ThreadsFunctions
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
if (!cmsError.IsError())
|
||||
if (!libraryError.IsError())
|
||||
{
|
||||
if (ServerStartupConfig.AutoOpenCmsClient)
|
||||
StartCMSClient();
|
||||
@@ -944,12 +1243,12 @@ public static class ThreadsFunctions
|
||||
ConnThread.Abort();
|
||||
}
|
||||
|
||||
public static void ManageLibraryError(CmsError cmsError)
|
||||
public static void ManageLibraryError(CmsError libraryError)
|
||||
{
|
||||
switch (cmsError.errorCode)
|
||||
switch (libraryError.errorCode)
|
||||
{
|
||||
case CMS_ERROR_CODES.NC_PROD_ERROR:
|
||||
ManageError(ERROR_LEVEL.WARNING, cmsError.localizationKey);
|
||||
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
||||
break;
|
||||
|
||||
case CMS_ERROR_CODES.NOT_CONNECTED:
|
||||
@@ -959,7 +1258,7 @@ public static class ThreadsFunctions
|
||||
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, cmsError.localizationKey);
|
||||
ManageError(ERROR_LEVEL.FATAL, libraryError.localizationKey);
|
||||
break;
|
||||
|
||||
case CMS_ERROR_CODES.SIEMENS_HMI_NOT_RUNNING:
|
||||
@@ -967,15 +1266,15 @@ public static class ThreadsFunctions
|
||||
break;
|
||||
|
||||
case CMS_ERROR_CODES.SELECTED_PROCESS:
|
||||
ManageError(ERROR_LEVEL.WARNING, cmsError.localizationKey);
|
||||
ManageError(ERROR_LEVEL.WARNING, libraryError.localizationKey);
|
||||
break;
|
||||
|
||||
case CMS_ERROR_CODES.INTERNAL_ERROR:
|
||||
ManageException(ERROR_LEVEL.FATAL, cmsError.exception);
|
||||
ManageException(ERROR_LEVEL.FATAL, libraryError.exception);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal static void UpdateStat(string functionName, long timer)
|
||||
{
|
||||
if (!Timers.ContainsKey(functionName))
|
||||
@@ -994,16 +1293,16 @@ public static class ThreadsFunctions
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
foreach(var value in Counter)
|
||||
foreach (var value in Counter)
|
||||
{
|
||||
if(ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
|
||||
if (ThreadsHandler.RunningThreadStatus.ContainsKey(value.Key) && Counter[value.Key] != 0)
|
||||
{
|
||||
ThreadsHandler.RunningThreadStatus[value.Key] = (Timers[value.Key] / Counter[value.Key]) + " mS";
|
||||
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);
|
||||
@@ -1107,7 +1406,7 @@ public static class ThreadsFunctions
|
||||
message = string.Format(NOT_FOUND_ALARM_MESSAGE, i);
|
||||
}
|
||||
// Add to dictionary
|
||||
returnValue.Add(i.ToString("D6") + "|900",message);
|
||||
returnValue.Add(i.ToString("D6") + "|900", message);
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
@@ -11,21 +11,30 @@ namespace Thermo.Active.Core
|
||||
private static List<Action> ThreadsFunctionsList = new List<Action>
|
||||
{
|
||||
ThreadsFunctions.ManageWatchdog,
|
||||
ThreadsFunctions.ManageStatusCommand,
|
||||
ThreadsFunctions.ManageConfRequest,
|
||||
ThreadsFunctions.ReadAlarms,
|
||||
ThreadsFunctions.ReadPowerOnData,
|
||||
ThreadsFunctions.StatThread,
|
||||
ThreadsFunctions.ReadProcessesPPStatus,
|
||||
//ThreadsFunctions.ReadProcessesPPStatus,
|
||||
ThreadsFunctions.ReadEnabledFunctionality,
|
||||
ThreadsFunctions.ReadExpiredMaintenances,
|
||||
ThreadsFunctions.ReadAxesPositionsData,
|
||||
//ThreadsFunctions.ReadAxesPositionsData,
|
||||
ThreadsFunctions.ReadUserSoftKeysData,
|
||||
ThreadsFunctions.ReadHeadsData,
|
||||
ThreadsFunctions.ReadAxesNamesData,
|
||||
ThreadsFunctions.ReadActiveProgramData,
|
||||
//ThreadsFunctions.ReadHeadsData,
|
||||
//ThreadsFunctions.ReadAxesNamesData,
|
||||
//ThreadsFunctions.ReadActiveProgramData,
|
||||
//ThreadsFunctions.ReadPartProgramQueueData,
|
||||
ThreadsFunctions.ReadScadaData,
|
||||
ThreadsFunctions.ReadM154Data
|
||||
// ThreadsFunctions.ReadNcSoftKeysData,
|
||||
ThreadsFunctions.ReadGaugeData,
|
||||
ThreadsFunctions.ReadProdInfoData,
|
||||
ThreadsFunctions.ReadProdCycleData,
|
||||
ThreadsFunctions.ReadRecipeData,
|
||||
ThreadsFunctions.ReadWarmersData,
|
||||
ThreadsFunctions.ReadAreaData,
|
||||
ThreadsFunctions.ReadModulesData,
|
||||
ThreadsFunctions.ReadScadaData,
|
||||
ThreadsFunctions.ReadM154Data // levare?
|
||||
};
|
||||
private static Action ThreadSetupCmsConnect = ThreadsFunctions.SetupCmsConnect;
|
||||
|
||||
@@ -44,6 +53,7 @@ namespace Thermo.Active.Core
|
||||
{
|
||||
Thread t = new Thread(() => ThreadSetupCmsConnect());
|
||||
t.Start();
|
||||
Thread.Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +70,8 @@ namespace Thermo.Active.Core
|
||||
threadFunction()
|
||||
);
|
||||
t.Start();
|
||||
// aggiungo pausa x evitare sovrapposizioni chiamate
|
||||
Thread.Sleep(50);
|
||||
// Add thread to running threads list
|
||||
lock (RunningThreadsList)
|
||||
RunningThreadsList.Add(t);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using Thermo.Active.Core.Properties;
|
||||
using Thermo.Active.Model;
|
||||
using Thermo.Active.Utils;
|
||||
using System;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using TeamDev.SDK.MVVM;
|
||||
using Thermo.Active.Core.Properties;
|
||||
using Thermo.Active.Model;
|
||||
using Thermo.Active.Utils;
|
||||
|
||||
namespace Thermo.Active.Core
|
||||
{
|
||||
@@ -125,7 +125,7 @@ namespace Thermo.Active.Core
|
||||
|
||||
public static void StopThread()
|
||||
{
|
||||
if (SiemensHmi!= null && SiemensHmi.IsAlive)
|
||||
if (SiemensHmi != null && SiemensHmi.IsAlive)
|
||||
SiemensHmi.Abort();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using System.Diagnostics;
|
||||
using Thermo.Active.Config;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
@@ -37,7 +35,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
var index = userIds.IndexOf(-1);
|
||||
if (userIds.IndexOf(-1) != -1)
|
||||
ifNoUser = true;
|
||||
|
||||
|
||||
List<int> ncAlarmDescIds = dbCtx
|
||||
.AlarmDescriptions
|
||||
.Where(x => x.Title.Contains(title))
|
||||
@@ -45,7 +43,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
.ToList();
|
||||
|
||||
// Get Plc messages ids
|
||||
List<int> plcAlarmDescIds =
|
||||
List<int> plcAlarmDescIds =
|
||||
plcMessages
|
||||
.Where(x => x.Value.IndexOf(title, StringComparison.OrdinalIgnoreCase) >= 0)
|
||||
//.Where(x => x.Value.Contains(title))
|
||||
@@ -60,8 +58,8 @@ namespace Thermo.Active.Database.Controllers
|
||||
.Where(x =>
|
||||
x.TimeStamp >= startDate && x.TimeStamp <= endDate // Filter by date
|
||||
&& sources.Contains(x.Source) // Check source
|
||||
&& ( (ifNoUser && x.Users.Count() == 0) || x.Users.Any(y => userIds.Any(z => z == y.UserId))) // Check user
|
||||
&&
|
||||
&& ((ifNoUser && x.Users.Count() == 0) || x.Users.Any(y => userIds.Any(z => z == y.UserId))) // Check user
|
||||
&&
|
||||
((x.Source == ALARM_SOURCE.NC && ncAlarmDescIds.Contains(x.AlarmDescriptionId.Value)) // Check if message is contained in NC messages
|
||||
|| (x.Source == ALARM_SOURCE.PLC && plcAlarmDescIds.Contains(x.AlarmId))) // Check if message is contained in PLC messages
|
||||
).OrderByDescending(t => t.AlarmOccurrenceId);
|
||||
@@ -137,7 +135,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
int numberOfRows = CountRows();
|
||||
|
||||
if(numberOfRows >= ServerStartupConfig.MaxAlarmsRows)
|
||||
if (numberOfRows >= ServerStartupConfig.MaxAlarmsRows)
|
||||
{
|
||||
dbCtx.Database.ExecuteSqlCommand("DELETE FROM alarm_occurrence LIMIT {0}", ServerStartupConfig.AlarmToDelete);
|
||||
}
|
||||
@@ -151,7 +149,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
public void EmptyAlarms()
|
||||
{
|
||||
int numberOfRows = CountRows();
|
||||
|
||||
|
||||
dbCtx.Database.ExecuteSqlCommand("DELETE FROM alarm_occurrence LIMIT {0}", numberOfRows);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using static CMS_CORE_Library.Models.DataStructures;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
|
||||
@@ -59,8 +59,8 @@ namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
return dbCtx
|
||||
.FunctionsAccess
|
||||
.Select( x => new DTORuntimeFunctionalityModel()
|
||||
{
|
||||
.Select(x => new DTORuntimeFunctionalityModel()
|
||||
{
|
||||
Id = x.FunctionAccessId,
|
||||
Area = x.Area,
|
||||
Name = x.Name,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.MaintenanceModels;
|
||||
using Thermo.Active.Utils;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using Thermo.Active.Model.DTOModels.MaintenanceModels;
|
||||
using Thermo.Active.Utils;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
|
||||
foreach (PerformedMaintenanceModel maintenance in maintList)
|
||||
{
|
||||
if(maintenance.ControlWord != -2)
|
||||
if (maintenance.ControlWord != -2)
|
||||
valRet.Add(new DTOPerformModel()
|
||||
{
|
||||
Date = maintenance.Date,
|
||||
@@ -64,7 +64,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
where m1.MaintenanceId == maintenances.MaintenanceId
|
||||
select m1.Date
|
||||
).Max()
|
||||
select maintenances)
|
||||
select maintenances)
|
||||
.Include("Maintainer")
|
||||
.ToList();
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
CounterValue = (int)counterValue,
|
||||
Date = DateTime.Now,
|
||||
MaintenanceId = maintenanceId,
|
||||
MaintainerId = userId,
|
||||
MaintainerId = userId,
|
||||
ControlWord = controlWord
|
||||
};
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
// find maintenances to be updated into db
|
||||
var old = dbCtx.Maintenances.FirstOrDefault(x => x.MaintenanceId == item.MaintenanceId);
|
||||
|
||||
if(old != null)
|
||||
if (old != null)
|
||||
// Update model
|
||||
old = MaintenancesConfig.Where(x => x.Id == item.MaintenanceId).Select(x =>
|
||||
{
|
||||
@@ -397,14 +397,14 @@ namespace Thermo.Active.Database.Controllers
|
||||
cw = -1;
|
||||
|
||||
SupportFunctions.ConvertStringMachineNumberIntoNumber(machineNumber, out bool containsLetters, out int intMachineVal);
|
||||
if (!GetDataFromMaintenancePassword(password, containsLetters, out int pwdMachineNumber, out int pwdHours, out cw))
|
||||
if (!GetDataFromMaintenancePassword(password, containsLetters, out int pwdMachineNumber, out int pwdHours, out cw))
|
||||
return false;
|
||||
|
||||
// Check machine number
|
||||
if(intMachineVal == pwdMachineNumber)
|
||||
if (intMachineVal == pwdMachineNumber)
|
||||
{
|
||||
// Convert plcCounter in hours and check if password is expired
|
||||
if(((plcCounter/3600) - pwdHours) <= 50)
|
||||
if (((plcCounter / 3600) - pwdHours) <= 50)
|
||||
{
|
||||
return true; // Ok
|
||||
}
|
||||
@@ -458,10 +458,10 @@ namespace Thermo.Active.Database.Controllers
|
||||
tmpPassword4 = tmpPassword5.Remove(tmpPassword5.Length - 1);
|
||||
|
||||
// Create tmpPassoword3
|
||||
foreach(char c in tmpPassword4)
|
||||
foreach (char c in tmpPassword4)
|
||||
{
|
||||
// If tmpPassword is empty copy the first character
|
||||
if(tmpPassword3.Length == 0)
|
||||
if (tmpPassword3.Length == 0)
|
||||
{
|
||||
tmpPassword3 = c.ToString();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
public class ProdInfoController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
|
||||
public ProdInfoController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
}
|
||||
|
||||
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
|
||||
.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> GetPaginated(int numStart, int numRecord)
|
||||
{
|
||||
// cehck numEnd
|
||||
int numEnd = numStart - numRecord;
|
||||
if (numEnd < 0)
|
||||
numEnd = 0;
|
||||
// retrieve
|
||||
return dbCtx
|
||||
.ProdInfo
|
||||
.Where(x => x.NumDone <= numStart && x.NumDone > numEnd)
|
||||
.OrderByDescending(x => x.DtEvent)
|
||||
.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>
|
||||
/// <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)
|
||||
{
|
||||
// Create database machine model
|
||||
ProdInfoModel prodData = new ProdInfoModel()
|
||||
{
|
||||
DtEvent = DateTime.UtcNow,
|
||||
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
|
||||
};
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
dbCtx.ProdInfo.Add(prodData);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return prodData;
|
||||
}
|
||||
|
||||
/// <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 delete all record (truncate)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool PurgeAll()
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
try
|
||||
{
|
||||
dbCtx
|
||||
.Database
|
||||
.ExecuteSqlCommand("TRUNCATE TABLE prodInfo");
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
@@ -30,12 +28,12 @@ namespace Thermo.Active.Database.Controllers
|
||||
public void UpdateQueue()
|
||||
{
|
||||
dbCtx.Queue.RemoveRange(dbCtx.Queue);
|
||||
|
||||
|
||||
var dbRows = new List<QueueItemsModel>();
|
||||
foreach (var item in PartProgramQueue)
|
||||
{
|
||||
// Create database model
|
||||
dbRows =item.Value.Select(x => new QueueItemsModel()
|
||||
dbRows = item.Value.Select(x => new QueueItemsModel()
|
||||
{
|
||||
Id = x.Id,
|
||||
AbsolutePath = x.AbsolutePath,
|
||||
@@ -49,7 +47,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
// Add to db
|
||||
dbCtx.Queue.AddRange(dbRows);
|
||||
}
|
||||
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -65,14 +63,14 @@ namespace Thermo.Active.Database.Controllers
|
||||
item.RemainingReps = reps;
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void DeleteItem(int processId, int id)
|
||||
{
|
||||
QueueItemsModel item = dbCtx.Queue.FirstOrDefault(x => x.Id == id && x.Process == processId);
|
||||
|
||||
if(item == null)
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
dbCtx.Queue.Remove(item);
|
||||
@@ -84,7 +82,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
var dbQueue = dbCtx.Queue.ToList();
|
||||
bool foundData = false;
|
||||
foreach(var entity in dbQueue)
|
||||
foreach (var entity in dbQueue)
|
||||
{
|
||||
// Check if process queue exists
|
||||
if (!PartProgramQueue.ContainsKey(entity.Process))
|
||||
@@ -111,13 +109,13 @@ namespace Thermo.Active.Database.Controllers
|
||||
QueueRunningIndexes[entity.Process] = entity.Id - 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void UpdateQueueIdsAndSave(int processId)
|
||||
{
|
||||
// Fix new ids
|
||||
for (int i = 0; i < PartProgramQueue[processId].Count(); i++)
|
||||
PartProgramQueue[processId][i].Id = i + 1;
|
||||
|
||||
|
||||
UpdateQueue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
using Thermo.Active.Database.Redis;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using Thermo.Active.Database.Redis;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
@@ -41,7 +37,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
redUtil.man.setRSV(redisHash, RepsDone);
|
||||
}
|
||||
|
||||
public static bool WriteAlarmsConfigCurr(Dictionary<string,string> alarms)
|
||||
public static bool WriteAlarmsConfigCurr(Dictionary<string, string> alarms)
|
||||
{
|
||||
string redisHash = redUtil.man.redHash(redisAlmCurr);
|
||||
return redUtil.man.redSaveHashDict(redisHash, alarms);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
namespace Thermo.Active.Database.Controllers
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web.Helpers;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using Thermo.Active.Model.DTOModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
using(MachinesUsersController machController = new MachinesUsersController())
|
||||
using (MachinesUsersController machController = new MachinesUsersController())
|
||||
{
|
||||
machController.Create(MachineConfig.MachineId, user.UserId, 3);
|
||||
}
|
||||
@@ -166,13 +166,13 @@ namespace Thermo.Active.Database.Controllers
|
||||
var tmpUser = dbCtx
|
||||
.Users
|
||||
.Where(x => x.Deleted == false) // Get not deleted users
|
||||
.Join( dbCtx.MachinesUsers,
|
||||
.Join(dbCtx.MachinesUsers,
|
||||
u => u.UserId,
|
||||
m => m.UserId,
|
||||
m => m.UserId,
|
||||
(u, m) => new { Users = u, MachinesUsers = m }
|
||||
)
|
||||
.Where(x => x.MachinesUsers.Role.Level < MIN_CMS_ROLE)
|
||||
.ToList();
|
||||
.ToList();
|
||||
|
||||
return tmpUser
|
||||
.Select(x => new DTOMessageUserModel() // Return DTOUserModel
|
||||
@@ -184,7 +184,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
})
|
||||
.GroupBy(elem => elem.Id).Select(group => group.First())
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region User Manager
|
||||
@@ -210,7 +210,7 @@ namespace Thermo.Active.Database.Controllers
|
||||
Language = x.Language,
|
||||
Role = machineController.GetUserRoleData(MachineConfig.MachineId, x.UserId)
|
||||
}).Where(
|
||||
x=> x.Role.Level < MIN_CMS_ROLE)
|
||||
x => x.Role.Level < MIN_CMS_ROLE)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
using Microsoft.Win32;
|
||||
using MySql.Data.Entity;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Database.Migrations;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using System;
|
||||
|
||||
using System.Data.Entity;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.ServiceProcess;
|
||||
using Thermo.Active.Database.Controllers;
|
||||
using Thermo.Active.Database.Migrations;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using static Thermo.Active.Config.ServerConfig;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using static Thermo.Active.Utils.ExceptionManager;
|
||||
@@ -42,6 +41,10 @@ namespace Thermo.Active.Database
|
||||
public DbSet<AlarmNoteModel> AlarmsNotes { get; set; }
|
||||
public DbSet<AlarmFileModel> AlarmFiles { get; set; }
|
||||
|
||||
// thermo!
|
||||
public DbSet<ProdInfoModel> ProdInfo { get; set; }
|
||||
|
||||
|
||||
// Create migration string
|
||||
public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";";
|
||||
|
||||
@@ -82,7 +85,7 @@ namespace Thermo.Active.Database
|
||||
{
|
||||
// Run migrations and seed.
|
||||
migrator.Update();
|
||||
}
|
||||
}
|
||||
|
||||
FindOrCreateMachineUniqueId();
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
|
||||
public partial class ThermoStart : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
@@ -10,268 +9,268 @@ namespace Thermo.Active.Database.Migrations
|
||||
CreateTable(
|
||||
"dbo.alarm_description",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
title = c.String(unicode: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
title = c.String(unicode: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.alarm_file",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
file_name = c.String(unicode: false),
|
||||
local_file_name = c.String(unicode: false),
|
||||
alarm_desc_id = c.Int(nullable: false),
|
||||
source = c.Int(nullable: false),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
file_name = c.String(unicode: false),
|
||||
local_file_name = c.String(unicode: false),
|
||||
alarm_desc_id = c.Int(nullable: false),
|
||||
source = c.Int(nullable: false),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.user", t => t.user_id)
|
||||
.Index(t => t.user_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.user",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
username = c.String(nullable: false, unicode: false),
|
||||
first_name = c.String(unicode: false),
|
||||
last_name = c.String(unicode: false),
|
||||
password = c.String(unicode: false),
|
||||
security_stamp = c.String(unicode: false),
|
||||
language = c.String(unicode: false),
|
||||
deleted = c.Boolean(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
username = c.String(nullable: false, unicode: false),
|
||||
first_name = c.String(unicode: false),
|
||||
last_name = c.String(unicode: false),
|
||||
password = c.String(unicode: false),
|
||||
security_stamp = c.String(unicode: false),
|
||||
language = c.String(unicode: false),
|
||||
deleted = c.Boolean(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.alarm_occurrence",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
alarm_id = c.Int(nullable: false),
|
||||
alarm_description_id = c.Int(),
|
||||
source = c.Int(nullable: false),
|
||||
type = c.Int(nullable: false),
|
||||
processes = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
alarm_id = c.Int(nullable: false),
|
||||
alarm_description_id = c.Int(),
|
||||
source = c.Int(nullable: false),
|
||||
type = c.Int(nullable: false),
|
||||
processes = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.alarm_description", t => t.alarm_description_id)
|
||||
.Index(t => t.alarm_description_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.alarm_user",
|
||||
c => new
|
||||
{
|
||||
user_id = c.Int(nullable: false),
|
||||
alarm_occurence_id = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
user_id = c.Int(nullable: false),
|
||||
alarm_occurence_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => new { t.user_id, t.alarm_occurence_id })
|
||||
.ForeignKey("dbo.alarm_occurrence", t => t.alarm_occurence_id, cascadeDelete: true)
|
||||
.ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
|
||||
.Index(t => t.user_id)
|
||||
.Index(t => t.alarm_occurence_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.alarm_note",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
message = c.String(unicode: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
alarm_desc_id = c.Int(nullable: false),
|
||||
source = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
message = c.String(unicode: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
alarm_desc_id = c.Int(nullable: false),
|
||||
source = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
|
||||
.Index(t => t.user_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.family",
|
||||
c => new
|
||||
{
|
||||
id = c.Short(nullable: false),
|
||||
name = c.String(unicode: false),
|
||||
right_size = c.Byte(nullable: false),
|
||||
left_size = c.Byte(nullable: false),
|
||||
tcp_table = c.Byte(nullable: false),
|
||||
gamma = c.Byte(nullable: false),
|
||||
rotation_type = c.Byte(nullable: false),
|
||||
cooling_byte = c.Byte(nullable: false),
|
||||
max_speed = c.Int(nullable: false),
|
||||
max_load = c.Byte(nullable: false),
|
||||
min_load_pct_autoload = c.Byte(nullable: false),
|
||||
max_load_pct_autoload = c.Byte(nullable: false),
|
||||
dynamic_compensation = c.Byte(nullable: false),
|
||||
min_load_dynamic_comp = c.Byte(nullable: false),
|
||||
max_load_dynamic_comp = c.Byte(nullable: false),
|
||||
life_type = c.Byte(nullable: false),
|
||||
nominal_life = c.Int(nullable: false),
|
||||
revive_delta = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Short(nullable: false),
|
||||
name = c.String(unicode: false),
|
||||
right_size = c.Byte(nullable: false),
|
||||
left_size = c.Byte(nullable: false),
|
||||
tcp_table = c.Byte(nullable: false),
|
||||
gamma = c.Byte(nullable: false),
|
||||
rotation_type = c.Byte(nullable: false),
|
||||
cooling_byte = c.Byte(nullable: false),
|
||||
max_speed = c.Int(nullable: false),
|
||||
max_load = c.Byte(nullable: false),
|
||||
min_load_pct_autoload = c.Byte(nullable: false),
|
||||
max_load_pct_autoload = c.Byte(nullable: false),
|
||||
dynamic_compensation = c.Byte(nullable: false),
|
||||
min_load_dynamic_comp = c.Byte(nullable: false),
|
||||
max_load_dynamic_comp = c.Byte(nullable: false),
|
||||
life_type = c.Byte(nullable: false),
|
||||
nominal_life = c.Int(nullable: false),
|
||||
revive_delta = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.favorite_user_softkey",
|
||||
c => new
|
||||
{
|
||||
user_softkey_id = c.Int(nullable: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
user_softkey_id = c.Int(nullable: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => new { t.user_softkey_id, t.user_id });
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.function_access",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
write_level_min = c.Int(nullable: false),
|
||||
read_level_min = c.Int(nullable: false),
|
||||
area = c.String(unicode: false),
|
||||
enabled = c.Boolean(nullable: false),
|
||||
plc_id = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
write_level_min = c.Int(nullable: false),
|
||||
read_level_min = c.Int(nullable: false),
|
||||
area = c.String(unicode: false),
|
||||
enabled = c.Boolean(nullable: false),
|
||||
plc_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.machine",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
unique_id = c.String(unicode: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
unique_id = c.String(unicode: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.machine_user",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
machine_id = c.Int(nullable: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
role_id = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
machine_id = c.Int(nullable: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
role_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.machine", t => t.machine_id, cascadeDelete: true)
|
||||
.ForeignKey("dbo.role", t => t.role_id, cascadeDelete: true)
|
||||
.ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
|
||||
.Index(t => new { t.machine_id, t.user_id }, unique: true, clustered: true, name: "unique_machine_user")
|
||||
.Index(t => t.role_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.role",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
level = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
name = c.String(unicode: false),
|
||||
level = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.maintenance_file",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
file_name = c.String(unicode: false),
|
||||
local_file_name = c.String(unicode: false),
|
||||
maintenance_id = c.Int(nullable: false),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
file_name = c.String(unicode: false),
|
||||
local_file_name = c.String(unicode: false),
|
||||
maintenance_id = c.Int(nullable: false),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
|
||||
.ForeignKey("dbo.user", t => t.user_id)
|
||||
.Index(t => t.maintenance_id)
|
||||
.Index(t => t.user_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.maintenance",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
intervall = c.Double(),
|
||||
deadline = c.DateTime(nullable: false, precision: 0),
|
||||
type = c.Int(nullable: false),
|
||||
counter_id = c.Int(nullable: false),
|
||||
title = c.String(unicode: false),
|
||||
description = c.String(unicode: false),
|
||||
unit_of_measure = c.Int(),
|
||||
creation_date = c.DateTime(nullable: false, precision: 0),
|
||||
last_expiration_date = c.DateTime(precision: 0),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
intervall = c.Double(),
|
||||
deadline = c.DateTime(nullable: false, precision: 0),
|
||||
type = c.Int(nullable: false),
|
||||
counter_id = c.Int(nullable: false),
|
||||
title = c.String(unicode: false),
|
||||
description = c.String(unicode: false),
|
||||
unit_of_measure = c.Int(),
|
||||
creation_date = c.DateTime(nullable: false, precision: 0),
|
||||
last_expiration_date = c.DateTime(precision: 0),
|
||||
user_id = c.Int(),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.user", t => t.user_id)
|
||||
.Index(t => t.user_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.maintenance_note",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
message = c.String(unicode: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
maintenance_id = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
message = c.String(unicode: false),
|
||||
user_id = c.Int(nullable: false),
|
||||
maintenance_id = c.Int(nullable: false),
|
||||
timestamp = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.maintenance", t => t.maintenance_id, cascadeDelete: true)
|
||||
.ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true)
|
||||
.Index(t => t.user_id)
|
||||
.Index(t => t.maintenance_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.performed_maintenance",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
date = c.DateTime(nullable: false, precision: 0),
|
||||
counter_value = c.Int(nullable: false),
|
||||
control_word = c.Int(nullable: false),
|
||||
maintenance = c.Int(nullable: false),
|
||||
maintainers_id = c.Int(),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
date = c.DateTime(nullable: false, precision: 0),
|
||||
counter_value = c.Int(nullable: false),
|
||||
control_word = c.Int(nullable: false),
|
||||
maintenance = c.Int(nullable: false),
|
||||
maintainers_id = c.Int(),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.user", t => t.maintainers_id)
|
||||
.ForeignKey("dbo.maintenance", t => t.maintenance, cascadeDelete: true)
|
||||
.Index(t => t.maintenance)
|
||||
.Index(t => t.maintainers_id);
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.queue",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
process = c.Int(nullable: false),
|
||||
part_program_name = c.String(unicode: false),
|
||||
reps = c.Int(nullable: false),
|
||||
remaining_reps = c.Int(nullable: false),
|
||||
absolute_path = c.String(unicode: false),
|
||||
status = c.Int(nullable: false),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false),
|
||||
process = c.Int(nullable: false),
|
||||
part_program_name = c.String(unicode: false),
|
||||
reps = c.Int(nullable: false),
|
||||
remaining_reps = c.Int(nullable: false),
|
||||
absolute_path = c.String(unicode: false),
|
||||
status = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => new { t.id, t.process });
|
||||
|
||||
|
||||
CreateTable(
|
||||
"dbo.session",
|
||||
c => new
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
token = c.String(unicode: false),
|
||||
machine_user_id = c.Int(nullable: false),
|
||||
first_login = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
{
|
||||
id = c.Int(nullable: false, identity: true),
|
||||
token = c.String(unicode: false),
|
||||
machine_user_id = c.Int(nullable: false),
|
||||
first_login = c.DateTime(nullable: false, precision: 0),
|
||||
})
|
||||
.PrimaryKey(t => t.id)
|
||||
.ForeignKey("dbo.machine_user", t => t.machine_user_id, cascadeDelete: true)
|
||||
.Index(t => t.machine_user_id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropForeignKey("dbo.session", "machine_user_id", "dbo.machine_user");
|
||||
|
||||
+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 AddedProdInfoModel : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddedProdInfoModel));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "202006170558519_AddedProdInfoModel"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddedProdInfoModel : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
CreateTable(
|
||||
"dbo.ProdInfo",
|
||||
c => new
|
||||
{
|
||||
DtEvent = c.DateTime(nullable: false, precision: 0),
|
||||
NumTarget = c.Short(nullable: false),
|
||||
NumDone = c.Short(nullable: false),
|
||||
TimeWarm = c.Int(nullable: false),
|
||||
TimeVent = c.Int(nullable: false),
|
||||
TimeVacuum = c.Int(nullable: false),
|
||||
TimeCycleGross = c.Int(nullable: false),
|
||||
TimeCycleNet = c.Int(nullable: false),
|
||||
MaterialTempEndWarm = c.Double(nullable: false),
|
||||
MaterialTempEndVent = c.Double(nullable: false),
|
||||
MoldTemp = c.Double(nullable: false),
|
||||
VacuumReadVal = c.Double(nullable: false),
|
||||
MouldEnergyOUT = c.Double(nullable: false),
|
||||
MouldEnergyIN = c.Double(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.DtEvent);
|
||||
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
DropTable("dbo.ProdInfo");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,13 +1,10 @@
|
||||
namespace Thermo.Active.Database.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using System.Data.Entity.Migrations;
|
||||
using static Thermo.Active.Model.Constants.FUNCTIONALITY_NAMES;
|
||||
using static Thermo.Active.Model.Constants.AREAS;
|
||||
using Thermo.Active.Model.DatabaseModels;
|
||||
using static Thermo.Active.Model.Constants;
|
||||
using static Thermo.Active.Model.Constants.AREAS;
|
||||
using static Thermo.Active.Model.Constants.FUNCTIONALITY_NAMES;
|
||||
|
||||
internal sealed class Configuration : DbMigrationsConfiguration<Thermo.Active.Database.DatabaseContext>
|
||||
{
|
||||
@@ -30,7 +27,7 @@ namespace Thermo.Active.Database.Migrations
|
||||
new RoleModel() { RoleId = (int)ROLE_IDS.CUSTOMER_MAINTAINER, Level = 10, Name = "Maintainer" }
|
||||
);
|
||||
|
||||
context.FunctionsAccess.AddOrUpdate(
|
||||
context.FunctionsAccess.AddOrUpdate(x => x.Name,
|
||||
// General Function, if plcId is 0 then the functionality is not connected to the NC
|
||||
new FunctionAccessModel() { Name = GENERAL, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||
new FunctionAccessModel() { Name = USER_FUNCTIONS, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 },
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -34,7 +34,8 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CMS_CORE_Library">
|
||||
<Reference Include="CMS_CORE_Library, Version=1.1.1.0, Culture=neutral, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Libs\CMS_CORE_Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
@@ -112,6 +113,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\AlarmsController.cs" />
|
||||
<Compile Include="Controllers\FunctionsAccessController.cs" />
|
||||
<Compile Include="Controllers\ProdInfoController.cs" />
|
||||
<Compile Include="Controllers\MachinesController.cs" />
|
||||
<Compile Include="Controllers\MaintenancesController.cs" />
|
||||
<Compile Include="Controllers\QueueController.cs" />
|
||||
@@ -125,6 +127,10 @@
|
||||
<Compile Include="Migrations\202004241109233_Thermo-Start.Designer.cs">
|
||||
<DependentUpon>202004241109233_Thermo-Start.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\202006170558519_AddedProdInfoModel.cs" />
|
||||
<Compile Include="Migrations\202006170558519_AddedProdInfoModel.Designer.cs">
|
||||
<DependentUpon>202006170558519_AddedProdInfoModel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Redis\redUtil.cs" />
|
||||
@@ -164,6 +170,9 @@
|
||||
<EmbeddedResource Include="Migrations\202004241109233_Thermo-Start.resx">
|
||||
<DependentUpon>202004241109233_Thermo-Start.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\202006170558519_AddedProdInfoModel.resx">
|
||||
<DependentUpon>202006170558519_AddedProdInfoModel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
{
|
||||
public class AlarmsConfigModel
|
||||
{
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
{
|
||||
public class AreasConfigModel
|
||||
{
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
{
|
||||
public class CmsConnectConfigModel
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace Thermo.Active.Model.ConfigModels
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user