Compare commits
881 Commits
feature/prodMgmt
...
186
| Author | SHA1 | Date | |
|---|---|---|---|
| 63e636cd36 | |||
| 1458a4cf5d | |||
| 6cf7331081 | |||
| 43402a785f | |||
| 88561778ce | |||
| 0d395fca33 | |||
| 09fea8f0e3 | |||
| 42531aac49 | |||
| bbfc3ca64d | |||
| 50e76bd30c | |||
| 6f6559ce67 | |||
| 5c2f69b8d2 | |||
| 0f7ce076f9 | |||
| 127b4ba1de | |||
| 9e2ee7d5b6 | |||
| 2a0b3f7e72 | |||
| 36dc4171e5 | |||
| 29057c5431 | |||
| a1336f9918 | |||
| 7ded45280f | |||
| ef139a2365 | |||
| fe6498f6ed | |||
| 22ad46ab8c | |||
| e098409b83 | |||
| 083be20f02 | |||
| f7ff6629ce | |||
| 2a4c0e8335 | |||
| bd1488bc02 | |||
| bab9bf504a | |||
| c7f7c4f9c8 | |||
| 36e0927bd1 | |||
| 7b132793d0 | |||
| d01fcf7578 | |||
| 539ed2508d | |||
| cacae4eebf | |||
| 34e31666cd | |||
| 3b0dd98018 | |||
| 76fdf01d38 | |||
| 7918787ac6 | |||
| e797afabcb | |||
| c31edb94d5 | |||
| 86fd710aaa | |||
| f1f8f3aa97 | |||
| 83d6f40491 | |||
| 21cb4050b0 | |||
| 027eed8770 | |||
| 43de959bca | |||
| 5a56d53d90 | |||
| 89b0ce5f96 | |||
| e57d16d690 | |||
| fe25ae54e6 | |||
| 614acd2e40 | |||
| d70474c01f | |||
| 045dd808e5 | |||
| 92cb66d539 | |||
| 941535056d | |||
| f6d794d90c | |||
| 1f769677d1 | |||
| 9de1286290 | |||
| 59bacaa1a6 | |||
| abc8564f2f | |||
| 8bfd294525 | |||
| 47119e7828 | |||
| a8dbf3d15d | |||
| 7bbe807359 | |||
| 5884f229b1 | |||
| 8842111125 | |||
| 7110d05782 | |||
| fa41a5f577 | |||
| e09ca359dd | |||
| e01731685e | |||
| 9a9fa64200 | |||
| 83492b3a00 | |||
| 954224c80f | |||
| 64fbb2e106 | |||
| 95559497af | |||
| 71667b87a9 | |||
| 6919827661 | |||
| 76044293af | |||
| bc817fcbf6 | |||
| 45e62c635f | |||
| 0440202342 | |||
| 9a0705130a | |||
| bdf80680c2 | |||
| 729fa17209 | |||
| bf6e16a4d6 | |||
| e9af483682 | |||
| 5ee41656b7 | |||
| f1aff9393f | |||
| 2e745a53b7 | |||
| 34651b7c7c | |||
| 24db3c589e | |||
| 31f8e90325 | |||
| a1284af386 | |||
| 6aa6df7e39 | |||
| 9aa360bb5f | |||
| 19951eeb7c | |||
| 2841738be8 | |||
| 5a3e8c297a | |||
| a2fbaf9a61 | |||
| 1f8b751d0f | |||
| 24d8986a50 | |||
| 9fa289194f | |||
| 152a5489ee | |||
| 5a0518af42 | |||
| 878bf9e229 | |||
| a9843c3a5b | |||
| d4cfe8d27c | |||
| 8e03c97f8f | |||
| f9e9234d55 | |||
| 5122bb5b79 | |||
| 5091401096 | |||
| 2907387e09 | |||
| 11d5d547f6 | |||
| 885742bb88 | |||
| 81037fa8b1 | |||
| 1f04b99414 | |||
| 0eab7c119b | |||
| bf9bb455af | |||
| f36143336f | |||
| 2eb2440204 | |||
| cd2cb99bd8 | |||
| b1333263c2 | |||
| 2d8a9b9ea6 | |||
| 7c999c712b | |||
| 1ee0d5add8 | |||
| 548f36ccf8 | |||
| 3ed4fc8312 | |||
| 67eb8a9de7 | |||
| 1914658e5c | |||
| e2c1a6ef19 | |||
| 747ac452d9 | |||
| 54930860bd | |||
| 0e89edbfb8 | |||
| db320d3fb1 | |||
| 04df04d15c | |||
| 60bddba24f | |||
| 01e7f87c82 | |||
| daa8f42762 | |||
| 5205593f9f | |||
| 9fe9ffa736 | |||
| 12a3bde770 | |||
| 1f04efa0ee | |||
| 9a87ddee9f | |||
| 7ebf5013b3 | |||
| 57a60f9d12 | |||
| aa03bd0a1a | |||
| 9c54f3aaa9 | |||
| 093e50b006 | |||
| 37ef6055dc | |||
| 5fbbb5e61f | |||
| 0ba2c8305c | |||
| 7d1f9b4d4c | |||
| 72a762b24c | |||
| eeeeba88a4 | |||
| e85bccf0b1 | |||
| 79035f49d2 | |||
| 38cbb34921 | |||
| 3ef60f8ead | |||
| 3db4f8ded4 | |||
| fe972b16dd | |||
| 9a0e5729bf | |||
| cc2dd06c53 | |||
| da2839b3b2 | |||
| a540ef1768 | |||
| b3d0be026a | |||
| 604e1c8f8e | |||
| 4d210ddf9b | |||
| b6dbe49a47 | |||
| 782ea9f03e | |||
| 666feefbd1 | |||
| 3172febf24 | |||
| d0e1b138f2 | |||
| 8a5035b23b | |||
| b603072618 | |||
| 8f293b8fa9 | |||
| 3d0e261ceb | |||
| ad7abfa4b0 | |||
| 93e767563f | |||
| 34702f322d | |||
| 1d8e405862 | |||
| 0f7e94b758 | |||
| 68d8ff4480 | |||
| d15719c1bd | |||
| c4faa9b6cc | |||
| cbd3561cb5 | |||
| 4725f63181 | |||
| 2f753cc8c4 | |||
| 2c8e54c9a6 | |||
| 0153bd1759 | |||
| ac9fc3ddd2 | |||
| ffca754194 | |||
| fc0a3d64af | |||
| 4ed3a26768 | |||
| 1a3d2fc733 | |||
| 631ae60294 | |||
| ad1a53c4fc | |||
| b2a300a7a1 | |||
| 1b76c379c4 | |||
| c530a9823c | |||
| c47b7c0c57 | |||
| f194225bdc | |||
| 274cfdfc6b | |||
| 4a2d40308c | |||
| 3f412e9e17 | |||
| 59eb4b2357 | |||
| 0849871914 | |||
| 6c9bfacf6f | |||
| 1cf33caac3 | |||
| a67381c9b8 | |||
| 57baeaf849 | |||
| 24a8b7db12 | |||
| 8163e6867b | |||
| cbb9a758b1 | |||
| 71cbab86de | |||
| f650b4a1d2 | |||
| 32d8a52c6d | |||
| 78e7af66e2 | |||
| 5ef2f30938 | |||
| eaca7781cd | |||
| dfb6b5b4da | |||
| fc04bf50f5 | |||
| f9ce06f2b1 | |||
| a356169539 | |||
| 12ad1388b9 | |||
| 344f976017 | |||
| a970592c12 | |||
| 40a7a40678 | |||
| 490c95ac9c | |||
| 1536042a38 | |||
| a2c019837a | |||
| 4280254535 | |||
| cffb93d09d | |||
| 72a5ff1879 | |||
| 2ac7fa4361 | |||
| a09b593fb8 | |||
| 9a36d1568a | |||
| ac212a3a6e | |||
| b8b64189fc | |||
| 5be2108efb | |||
| eac94482b9 | |||
| 67298b0899 | |||
| 4b346d8ba7 | |||
| 0b47c548f8 | |||
| fe518b2ce7 | |||
| b69927bc70 | |||
| dc8f2d6b8d | |||
| bb4ac545a0 | |||
| b60fa9b07e | |||
| 5789360908 | |||
| c9c1f20f9e | |||
| 22c25ee2bb | |||
| c7018202c3 | |||
| 134f891f03 | |||
| f073e37254 | |||
| 14dfcf35c7 | |||
| eebbd98280 | |||
| 8e0821ca72 | |||
| 1b869c4408 | |||
| 189b29540b | |||
| 40ff5dae6f | |||
| fac46ce12e | |||
| c9efa885d9 | |||
| 21a262b3fb | |||
| 8e4b2d5913 | |||
| 0b6c5475bd | |||
| c0a2084edf | |||
| f385141d05 | |||
| abba69d0d7 | |||
| 38311df33a | |||
| 7a41ce29fa | |||
| 2aa6112113 | |||
| 83341c6004 | |||
| 00c5b8b97a | |||
| 7501ee38ec | |||
| f1b3a90c2e | |||
| 4d847c2add | |||
| 53a0084df1 | |||
| 9f6ebc84bf | |||
| bc54666dbd | |||
| b7fd90d300 | |||
| bc7a45f514 | |||
| 6059670422 | |||
| 3d616d83b0 | |||
| 81bf6a308b | |||
| b0ffae1969 | |||
| 4926394bfb | |||
| 381adc93a5 | |||
| ea29ef5f92 | |||
| 967846f83d | |||
| 3ed92738d2 | |||
| a4ce9b63a5 | |||
| 939d37eb63 | |||
| 47579dc6af | |||
| ba2359469d | |||
| 45c25b7835 | |||
| fbc5e09f04 | |||
| df9e5fc477 | |||
| 9ad36718bb | |||
| 147c64f88a | |||
| 6154e5fa14 | |||
| 8fc103563d | |||
| f861534e01 | |||
| fe4d3a1635 | |||
| 854b28f588 | |||
| ba6894e15d | |||
| 617802ddf6 | |||
| ee6fc599d8 | |||
| 9bdcb6ef14 | |||
| 648ef062c5 | |||
| a5519a7e23 | |||
| 6bd0d8ef96 | |||
| de3c615801 | |||
| 0ccab81063 | |||
| 695f363b88 | |||
| 30ad2fc050 | |||
| 7e464a8638 | |||
| 28444f60c0 | |||
| ead221b0ac | |||
| c864cec1d4 | |||
| 48d973fc01 | |||
| ae87d3cd07 | |||
| dd7ca930ae | |||
| 83e2ab062d | |||
| 69629c257d | |||
| b0aa56d06d | |||
| 302c74c64e | |||
| 7578bc4b5b | |||
| 9f05b65ca6 | |||
| b6dc59ea93 | |||
| 45ea2a309e | |||
| fbe3f56bc3 | |||
| 73124002a6 | |||
| 8d31628cc2 | |||
| ee11717644 | |||
| 4aec0ca0d9 | |||
| f7fdfd7f55 | |||
| 7d6cdeb612 | |||
| b85ed71319 | |||
| a6a078faac | |||
| b8462438c1 | |||
| 7a0099336c | |||
| 490c4ed21b | |||
| c44465430d | |||
| 9c427d23a3 | |||
| 6f1e429c4e | |||
| d6d5c10517 | |||
| 89ee203461 | |||
| 50d63545ba | |||
| 3a0ad9db97 | |||
| 2a6410ffdc | |||
| 236443b777 | |||
| d2d20d16a2 | |||
| 272f0823af | |||
| bd1994e6ec | |||
| 5ad7b7990c | |||
| e16fc55c57 | |||
| e77887153d | |||
| 7af6a9726a | |||
| 64e8bd0331 | |||
| fb16f616e5 | |||
| dd869ef966 | |||
| 8fdf8b74c4 | |||
| 256895ad04 | |||
| 6855503714 | |||
| c8773d1418 | |||
| 140599cd1c | |||
| e772745253 | |||
| d487ca5f60 | |||
| 53d0b16205 | |||
| 46dbf00660 | |||
| 7e2649efeb | |||
| 0ab280076f | |||
| 456481e65a | |||
| f28cc72be0 | |||
| 307303f99c | |||
| 9980358636 | |||
| 58c1ef1788 | |||
| fb2f6ac315 | |||
| 8315a632bf | |||
| 9b4119451f | |||
| 65c849315f | |||
| 28198b434f | |||
| 7173eb749f | |||
| 96b7e4e455 | |||
| cab2a84231 | |||
| 33498ba894 | |||
| 337b834869 | |||
| cefb9df5bd | |||
| fe3b630e56 | |||
| aede998431 | |||
| c47efbfbfc | |||
| 496e38ab7d | |||
| ad3e3f8b9b | |||
| 8b44ff84af | |||
| e375f3323b | |||
| 1a217424f8 | |||
| 526b83d0fe | |||
| 7e7fb3dab7 | |||
| 7576b33e93 | |||
| 1c13bf0bae | |||
| 3dd81652b5 | |||
| ee21a0fe2e | |||
| 66293fc2d2 | |||
| fcec70b367 | |||
| cb3082522c | |||
| 94beb343eb | |||
| fa3916c2a4 | |||
| 45505d70e1 | |||
| 0d26ddb4f6 | |||
| 20b5d2c99c | |||
| 3401ba241b | |||
| 0badc4b4a8 | |||
| e463f0ece5 | |||
| 96ee5ad494 | |||
| 94bc8a7c50 | |||
| f7a0291ab0 | |||
| 20d76d43ec | |||
| c014b16ace | |||
| b89bc03791 | |||
| 244f7132af | |||
| c6510b928d | |||
| 5bc750da90 | |||
| 0f44285d8a | |||
| 5c20450d4c | |||
| d1359ac605 | |||
| bd03826140 | |||
| b4de394af6 | |||
| 09ebcca66c | |||
| 88aaaf78a3 | |||
| 97c4e1ce97 | |||
| a3a2f75bde | |||
| bc784720ba | |||
| 1a5145fe2f | |||
| d33061aeda | |||
| b16dee60ba | |||
| 17156418f0 | |||
| 637e691a7b | |||
| adb1d0e27c | |||
| be0feb3705 | |||
| a1560a8e78 | |||
| b39ea3815b | |||
| 6b97cd1a4d | |||
| f7e5e4da3c | |||
| 7149f29f98 | |||
| a3894b3561 | |||
| f8afb1a1b4 | |||
| f76b03d957 | |||
| 7013193a75 | |||
| d33ecbe685 | |||
| 687e2d7809 | |||
| eb8cb57ae2 | |||
| 0392251697 | |||
| bc427cf0ef | |||
| 9bab587ecd | |||
| 61b94daf28 | |||
| 4911353eb1 | |||
| 6cced708fd | |||
| 2aaf3e06d2 | |||
| 0f5cd7cf89 | |||
| 4436eb2ab0 | |||
| 655407a9a8 | |||
| 00ce6c2a04 | |||
| beaa30a24d | |||
| 375f5556ef | |||
| 8c79299d2f | |||
| 94cc2cc80b | |||
| a3f0758380 | |||
| 0f30b9f8fc | |||
| 27a741e843 | |||
| 2f9d847410 | |||
| d72c6104fd | |||
| 8422f75978 | |||
| 3d5703ad79 | |||
| ca80c97455 | |||
| 5bf06971df | |||
| 44123da2c2 | |||
| 6f7a2675ef | |||
| fc41652d44 | |||
| 6c3d22278a | |||
| d7bd17f679 | |||
| 30a5592196 | |||
| 998ca04b99 | |||
| b466235c58 | |||
| 735026187d | |||
| 457cef0eb6 | |||
| 36ef955bb6 | |||
| e6b2b00aa5 | |||
| 6c4c441d65 | |||
| 7ca2ad059f | |||
| bf6510c149 | |||
| eddfe40814 | |||
| 4ac901df06 | |||
| fad3c82b46 | |||
| b6bd0b734c | |||
| bd9682361c | |||
| 8281bf0ff5 | |||
| eb14841bfd | |||
| f8a140cdf6 | |||
| 358f8c9330 | |||
| 17100d2f93 | |||
| 5eb07dfaa4 | |||
| b7984023f9 | |||
| 2344940480 | |||
| 498bfdbf34 | |||
| 42fc70e319 | |||
| 865a09fe89 | |||
| 44702e769a | |||
| cbe5e7d303 | |||
| 510b6c8a96 | |||
| 0a8e49082d | |||
| bf5ad49bfa | |||
| 75bfe30d68 | |||
| 98dbb7946a | |||
| b5a024ba0e | |||
| e3df06bb08 | |||
| 946ce23f6f | |||
| 7fd5ee32fb | |||
| c8d50d1dc7 | |||
| 215452a92f | |||
| 0ada41f47d | |||
| 0df05264eb | |||
| 82aa2e84b9 | |||
| a794402ccb | |||
| 95a7a1355e | |||
| 5bfe2bfa1f | |||
| b5c32938df | |||
| 59246cab9e | |||
| 26d0132274 | |||
| 74ad352393 | |||
| f8ccb0492a | |||
| 5f1ca0699a | |||
| bd4cb3504a | |||
| 7c2db0170c | |||
| dee9084d62 | |||
| f842773efc | |||
| b64446e68e | |||
| 34d3414f8e | |||
| e303abec94 | |||
| d643f693d7 | |||
| 75fe84861a | |||
| fdaf80247f | |||
| 83393d4aa1 | |||
| 8cfa418a75 | |||
| 3ed6d88523 | |||
| 8822d1e9d2 | |||
| f1f00e3326 | |||
| 42a6eaa77f | |||
| 06ef9d377d | |||
| 5b9f771d06 | |||
| 49de435bab | |||
| e8c55ada85 | |||
| c2cd9adef8 | |||
| df0c74540f | |||
| 5d3d1f45f8 | |||
| 57e96b9eb9 | |||
| 795af144c1 | |||
| 075a7e2e8d | |||
| 523300e5e1 | |||
| 0e9d0acfcb | |||
| c7c8564aff | |||
| cadf52012c | |||
| d3d49c6bf9 | |||
| 32409742e8 | |||
| 3c329bb5c8 | |||
| 542769af1c | |||
| 66564fde66 | |||
| f3e10a223b | |||
| edd1e7cf47 | |||
| 19a57d4ba7 | |||
| a35b7485fb | |||
| 3a991b7d5e | |||
| 47f2b80abd | |||
| 339f590010 | |||
| 894c732c61 | |||
| 60e144968f | |||
| 685db9d4da | |||
| 6d52d14f58 | |||
| 8f48a05914 | |||
| acb12da71a | |||
| 07d23bd055 | |||
| 4b5f406849 | |||
| 491321a509 | |||
| 0d6b42c356 | |||
| 592984bd22 | |||
| ccb3054ec7 | |||
| 79b1fc2f24 | |||
| 6ffd356eba | |||
| a4f6ffcc28 | |||
| 704049c7a7 | |||
| 91ac201873 | |||
| 56ee15521d | |||
| 5180881114 | |||
| 6144554b4e | |||
| e4ed4b6b0f | |||
| 8769127f91 | |||
| f0ee892ce5 | |||
| 23bcf80ba7 | |||
| cb16049c72 | |||
| 6c834482a4 | |||
| 51e682c166 | |||
| 0ec2d5e931 | |||
| 4e431a7be7 | |||
| e60b47560e | |||
| 3c05f497ef | |||
| ab9f65391e | |||
| d207f82cc1 | |||
| fd98b2fabb | |||
| dfc2eca2c2 | |||
| f7cc7c202b | |||
| 164ffffc95 | |||
| 6ca90f00bd | |||
| bb24cdd2cc | |||
| 4fcc0a52fb | |||
| 9f1e9a9b6a | |||
| c881dae49b | |||
| 4aa4fbb40d | |||
| 7ad55f3f9d | |||
| 0f63c012c8 | |||
| eefb9e751f | |||
| bf27fb3ce1 | |||
| 6e5b5cbd00 | |||
| 41830e6b9d | |||
| 60a78f434f | |||
| 3ad4905de3 | |||
| 840491fcb3 | |||
| 50a1d2708c | |||
| 7ca411b9a1 | |||
| ebf1bcd62e | |||
| 6f4128ce2f | |||
| c959946e1d | |||
| 7d6e934b2a | |||
| 12b5525fb5 | |||
| cc90b8422a | |||
| fc5a5f9c9c | |||
| e2089e6d5a | |||
| 494627ddfc | |||
| 86cef70db6 | |||
| 3ef99c0e0b | |||
| 269e8873aa | |||
| d58aae4e61 | |||
| 9e4188bf90 | |||
| 21a3c1fc1c | |||
| 095a98daf1 | |||
| daf0c77f04 | |||
| 682f84b1d7 | |||
| ee846a4998 | |||
| 94da9f2aad | |||
| 02ba937d02 | |||
| 515c4d14b9 | |||
| f0985fa0d6 | |||
| 001877453a | |||
| 39acc17b98 | |||
| 130cbceaed | |||
| 657072ee90 | |||
| e53443ffe3 | |||
| bd8577b32e | |||
| 14d91f173b | |||
| 045e0b62d8 | |||
| af8820ba4e | |||
| 5e2b482098 | |||
| 2d4c585a49 | |||
| 5491ea4abd | |||
| 6e95f35295 | |||
| 5acf57c494 | |||
| 06f15d5533 | |||
| 456eb99262 | |||
| 5e5b5b02d4 | |||
| 472ed086eb | |||
| ead744cb07 | |||
| 496d64d53a | |||
| 82583c8387 | |||
| 2039417194 | |||
| 3a9c801eec | |||
| 96d7a571ac | |||
| 31ae8a93b5 | |||
| 93e48d5fd8 | |||
| 72bcdeb301 | |||
| 958b97814a | |||
| 63e7629a72 | |||
| c0c97cc0c7 | |||
| fc9a727118 | |||
| 7d57c489d1 | |||
| 4bcf940134 | |||
| c7052ac390 | |||
| 7497f01e7a | |||
| 024f5369e8 | |||
| a990dcf712 | |||
| a382a313e2 | |||
| 39f5be6d9c | |||
| cead2275eb | |||
| e808411cb2 | |||
| da8744de56 | |||
| 0ea0fbd8d4 | |||
| 4d31463688 | |||
| 7086c0a83f | |||
| c5bda8d774 | |||
| c0bc78cb5e | |||
| 5504019044 | |||
| 08d48f6044 | |||
| a554e42f06 | |||
| b4fe6f0c05 | |||
| 5f117de287 | |||
| 89e0e90166 | |||
| 7a6d6aad56 | |||
| c85ed17448 | |||
| a74d2abb19 | |||
| 91fafd459b | |||
| 5fead0145c | |||
| 8f97eeecfd | |||
| 1cadbfd640 | |||
| c6ee7a74b0 | |||
| 98f64f57e5 | |||
| 287e5d1ab8 | |||
| 88e1c64c3b | |||
| ad3a91ad1c | |||
| fb9f1c4b72 | |||
| b8e3cd7ef0 | |||
| 074df56d4d | |||
| f4d226fc2b | |||
| 790652a8c8 | |||
| 816d49a08c | |||
| bc7116cf5d | |||
| 617bb783d2 | |||
| 26f225fabc | |||
| ac1c8f7067 | |||
| 7238579305 | |||
| f13cadd145 | |||
| 216980b923 | |||
| 149205e998 | |||
| ffd24f2539 | |||
| 147b84ab19 | |||
| ec9e23071f | |||
| 85aebf6385 | |||
| 17eabc16da | |||
| 1faba838a7 | |||
| 12378bdac7 | |||
| 611fcb940d | |||
| ab345f7f99 | |||
| e22a34a34e | |||
| 1cb0605d41 | |||
| 1b8e84dd30 | |||
| 9d8a3cd1ea | |||
| ed9f33e5e8 | |||
| fa04f490dc | |||
| 4e625e71c5 | |||
| fa9bed3196 | |||
| 8b645e01d1 | |||
| a8fdd44497 | |||
| f5d1aa04f1 | |||
| c4468e62d8 | |||
| bf4487909c | |||
| 6dc778bbf3 | |||
| 0fc43251bc | |||
| 188ce800e8 | |||
| a7db8bd047 | |||
| a6ee88e4e7 | |||
| 75d881edf6 | |||
| 5f95125ae2 | |||
| 354bf0df6d | |||
| ff6a7a1962 | |||
| d079e187e1 | |||
| e21c13e7c8 | |||
| 3c3ca13af3 | |||
| 2de6e9aae2 | |||
| 87f55952f8 | |||
| 843aa43240 | |||
| 65c7379111 | |||
| c46f7a531a | |||
| 87494489f6 | |||
| ca45edab94 | |||
| ca318a255e | |||
| 3aae8b0f9b | |||
| 5951ab295c | |||
| 2ec4598482 | |||
| 6730de1833 | |||
| 9c5644c52b | |||
| 1753027afd | |||
| a2c5d327db | |||
| 04d94b572c | |||
| 134981c2d7 | |||
| 5da1afa0eb | |||
| e42a231989 | |||
| e509c83b90 | |||
| 79f28bc415 | |||
| 2c94761966 | |||
| 44c6e48398 | |||
| 6c1aa037d5 | |||
| 3a8f702a87 | |||
| b21592609b | |||
| 5a4e86f861 | |||
| 0e41eb6033 | |||
| 11100544c9 | |||
| 42069a2cb2 | |||
| 5c1777a4b6 | |||
| de81cde6ec | |||
| 7c47415d65 | |||
| dcceb55652 | |||
| 247bf212ae | |||
| f5b2745a87 | |||
| 6f46e5a9a5 | |||
| 1c0f161640 | |||
| 7a66c3d63d | |||
| 23af55e1e1 | |||
| 8e3f3ec5e0 | |||
| cf96c67a3c | |||
| ae8f931372 | |||
| 20d9bf716d | |||
| 2f6f308f19 | |||
| 7fd2b6ca30 | |||
| aff9643216 | |||
| 465b09c176 | |||
| 1efde033b2 | |||
| 4a609bc35b | |||
| 88aa48a3d8 | |||
| b280dca20f | |||
| a6d6041b06 | |||
| 46b7b02da9 | |||
| 98d3798824 | |||
| dd7e9b9e19 | |||
| 550b448dc2 | |||
| afaa8f3576 | |||
| 328d2ed176 | |||
| 9bd1faf083 | |||
| 6526a20d5c | |||
| 9f4adce366 | |||
| 7d29511fdb | |||
| e28b736ebf | |||
| 383b5417d4 | |||
| 3f9b2a8c8e | |||
| 382d961761 | |||
| ae3294ca46 | |||
| 1f75da9bef | |||
| ed8400619c | |||
| 67fcba0053 | |||
| a7548a6e78 | |||
| 90fe35fc1c | |||
| 4737d22a2f | |||
| 7a9dca8807 | |||
| 2dfc9e293f | |||
| 3cca07422c | |||
| af4870d99d | |||
| 7b6ee330bb | |||
| 8542b6c565 | |||
| 3c65bced53 | |||
| 95d29cc716 | |||
| bcde0c8d86 | |||
| 76deabb93b | |||
| bfc99fc826 | |||
| cb28589f79 | |||
| 8cae6edff2 | |||
| 34a71b5784 | |||
| 455ddd660c | |||
| bbada3a929 | |||
| 0a00ba3eae | |||
| 7a3a068908 | |||
| 2a3de715da | |||
| 002b235d76 | |||
| b135f017d5 | |||
| 32e0c34945 | |||
| f32d0c0daf | |||
| 014f63bd2b | |||
| a6e58365dd | |||
| 7481d3bf28 | |||
| c036cd30e2 | |||
| 682efe1928 | |||
| d511b49c64 | |||
| bb7ef476ed | |||
| 393da8156b | |||
| 575b74c676 | |||
| 9f27a7b5ce | |||
| 12ee118e72 | |||
| 00994f993b | |||
| 581c6d44fe | |||
| a75edd650e | |||
| eea8a2fa5d | |||
| 14c9fb628b | |||
| 18530ea7b3 | |||
| 04447282ea | |||
| 582a4455e0 | |||
| 43fa8448d2 |
@@ -21,3 +21,9 @@ Output/
|
||||
*.njsproj
|
||||
/ConsoleApp1
|
||||
/WindowsFormsApp1
|
||||
!Thermo.Active/wwwroot/thermoprophet/colored/_last.jpg
|
||||
Thermo.Active/wwwroot/thermoprophet/colored/*.jpg
|
||||
!Thermo.Active/wwwroot/thermoprophet/original/_last.jpg
|
||||
Thermo.Active/wwwroot/thermoprophet/original/*.jpg
|
||||
!Thermo.Active/wwwroot/thermoprophet/data/_last.dat
|
||||
Thermo.Active/wwwroot/thermoprophet/data/*.dat
|
||||
|
||||
@@ -0,0 +1,361 @@
|
||||
#SCRIPT AUTO-BUILD
|
||||
# - Author: Nicola Carminati
|
||||
# - Version: 1.0
|
||||
# - Date: 07/12/2020
|
||||
#
|
||||
#
|
||||
#---------------------------------------------------------------------------------------------------------------------------
|
||||
# recupera timestamp x logging
|
||||
function Get-TimeStamp
|
||||
{
|
||||
return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
|
||||
}
|
||||
|
||||
function getFileLog()
|
||||
{
|
||||
return "{0:yyy_MM_dd}_{0:HH_mm}" -f (Get-Date) + "_$pid.log"
|
||||
}
|
||||
|
||||
function ExecuteLog($txt2log)
|
||||
{
|
||||
Write-Output "-------------------------------------------------------------------------------------------------------------------------------------------------" | Out-File -FilePath "$filelog" -Append
|
||||
Write-Output "$(Get-TimeStamp) $txt2log" | Out-File -FilePath "$filelog" -Append
|
||||
Invoke-Expression "$txt2log 2>&1 | Out-File -FilePath $filelog -Append"
|
||||
if( $LASTEXITCODE -ne 0)
|
||||
{
|
||||
Write-Host "Error during cmmand: $txt2log" -ForegroundColor Red ;
|
||||
Write-Host "Exit...." -ForegroundColor Red ;
|
||||
Set-Location $PSScriptRoot
|
||||
exit
|
||||
}
|
||||
}
|
||||
|
||||
function askConfirmorDie($message)
|
||||
{
|
||||
if ($silent -eq 0) {
|
||||
while ($confirmation -ne 'y') {
|
||||
$confirmation = Read-Host $message
|
||||
if ($confirmation -eq 'n') {
|
||||
Write-Host "As you like...." -ForegroundColor Red ;
|
||||
Write-Host "Bye...." -ForegroundColor Red ;
|
||||
Set-Location $PSScriptRoot
|
||||
exit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function ExitOk()
|
||||
{
|
||||
Write-Host "Done!" -ForegroundColor Green
|
||||
exit
|
||||
}
|
||||
function ExitERR($msg)
|
||||
{
|
||||
Write-Host "Error: $msg" -ForegroundColor Red
|
||||
Write-Host "Bye...." -ForegroundColor Red ;
|
||||
exit
|
||||
}
|
||||
|
||||
function getAssemblyInfo($file)
|
||||
{
|
||||
$regex = "\[assembly\: AssemblyVersion\(""([\.\d+]*)""\)\]"
|
||||
$row = ((Get-Content $file ) | Select-String $regex) | Out-String
|
||||
$found1 = $row.IndexOf("""")
|
||||
$found2 = $row.LastIndexOf("""")
|
||||
RETURN $row.substring($found1+1, $found2 - $found1 -1)
|
||||
}
|
||||
|
||||
function ChangeAssemblyVersion($file,$version)
|
||||
{
|
||||
$regex = "\[assembly\: AssemblyVersion\(""([\.\d+]*)""\)\]"
|
||||
(Get-Content $file) -replace $regex, "[assembly: AssemblyVersion(""$version"")]" | Set-Content $file
|
||||
}
|
||||
|
||||
function CheckNugetScm()
|
||||
{
|
||||
$url = 'https://repository.scmgroup.com/repository/mconnect-nuget/'
|
||||
$ngt = nuget sources -Format Detailed | Out-String
|
||||
$ind = $ngt.LastIndexOf($url)
|
||||
if($ind -lt 0)
|
||||
{
|
||||
ExitERR("Nuget package Scm not found: $url. Add this Repository `r`n -USR: guest`r`n -PSW: mB6SQvj6`r`n")
|
||||
}
|
||||
}
|
||||
function CheckSingleCommand($cmd)
|
||||
{
|
||||
if ($null -eq (Get-Command $cmd -ErrorAction SilentlyContinue))
|
||||
{
|
||||
ExitERR("Command ""$cmd"" not found in your PATH")
|
||||
}
|
||||
}
|
||||
function CheckAllCommand()
|
||||
{
|
||||
CheckSingleCommand "git"
|
||||
CheckSingleCommand "nuget"
|
||||
CheckSingleCommand "devenv"
|
||||
CheckSingleCommand "npm"
|
||||
CheckSingleCommand "7z"
|
||||
CheckSingleCommand "iscc"
|
||||
|
||||
}
|
||||
#---------------------------------------------------------------------------------------------------------------------------
|
||||
# Main Function
|
||||
|
||||
#Setup Variables
|
||||
$outputdir = $PSScriptRoot + "\Thermo.Active\bin"
|
||||
$outputServer = $outputdir + "\Thermo.Active.exe"
|
||||
$outputClient = $outputdir + "\Client\Active_Client.exe"
|
||||
$assemblyInfoFile = $PSScriptRoot + "\Thermo.Active\Properties\AssemblyInfo.cs"
|
||||
$installerFilePath = $PSScriptRoot + "\Thermo.Active\SetupActive_Auto.iss"
|
||||
$outBuildPath = "C:\CMS\AutoBuild\"
|
||||
$branch = "master"
|
||||
$version = ""
|
||||
$branchNeedsToBeSetted = 1;
|
||||
$versionNeedsToBeSetted = 1;
|
||||
$zipOutput = 0;
|
||||
$silent = 0;
|
||||
$excludeClient = 0;
|
||||
$excludeServer = 0;
|
||||
$excludeFrontend = 0;
|
||||
$excludeNodeUpdate = 0;
|
||||
$excludeNugetUpdate = 0;
|
||||
$excludeGit = 0;
|
||||
$filelog = $PSScriptRoot + "\" + $filelog
|
||||
$version = getAssemblyInfo $assemblyInfoFile
|
||||
$outBuild = $outBuildPath + $version
|
||||
$outLogs = $outBuildPath + "_Logs\"
|
||||
|
||||
#Setup Arguments
|
||||
for ( $i = 0; $i -lt $args.count; $i++ ) {
|
||||
if($args[$i] -eq "-branch")
|
||||
{
|
||||
if($args[$i+1].StartsWith("-"))
|
||||
{
|
||||
$err = $args[$i+1]
|
||||
ExitERR "Invalid Branch Name"
|
||||
}
|
||||
else
|
||||
{
|
||||
$branch = $args[$i +1]
|
||||
$i++;
|
||||
$branchNeedsToBeSetted = 0;
|
||||
}
|
||||
}
|
||||
elseif($args[$i] -eq "-version")
|
||||
{
|
||||
if($args[$i+1].StartsWith("-"))
|
||||
{
|
||||
$err = $args[$i+1]
|
||||
ExitERR "Invalid Version Name"
|
||||
}
|
||||
else
|
||||
{
|
||||
$version = $args[$i +1]
|
||||
$outBuild = $outBuildPath + $version
|
||||
$i++;
|
||||
$versionNeedsToBeSetted = 0;
|
||||
}
|
||||
}
|
||||
elseif($args[$i] -eq "-silent")
|
||||
{
|
||||
$silent = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-portable")
|
||||
{
|
||||
$zipOutput = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludeclient")
|
||||
{
|
||||
$excludeClient = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludenodeupdate")
|
||||
{
|
||||
$excludeNodeUpdate = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludenugetupdate")
|
||||
{
|
||||
$excludeNugetUpdate = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludegit")
|
||||
{
|
||||
$excludeGit = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludeserver")
|
||||
{
|
||||
$excludeServer = 1;
|
||||
}
|
||||
elseif($args[$i] -eq "-excludefrontend")
|
||||
{
|
||||
$excludeFrontend = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$err = $args[$i]
|
||||
ExitERR "Invalid parameter: $err"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#Operations...
|
||||
CheckAllCommand
|
||||
|
||||
Write-Host "CMS-Active Builder...." -ForegroundColor Green
|
||||
|
||||
$tempname = getFileLog
|
||||
$filelog = $outLogs + $tempname
|
||||
New-Item -ItemType "directory" -Path "$outLogs" -Force | Out-Null
|
||||
Write-Host "Log File: " $filelog -ForegroundColor Green
|
||||
|
||||
|
||||
if (($silent -eq 0) -and ($branchNeedsToBeSetted -eq 1)) {
|
||||
$branch = git branch --show-current
|
||||
$response = Read-Host "insert the name of the Git Branch [$branch]"
|
||||
if ($response -ne '') {
|
||||
$branch = $response
|
||||
}
|
||||
}
|
||||
if (($silent -eq 0) -and ($versionNeedsToBeSetted -eq 1)) {
|
||||
$response = Read-Host "insert the name of the New Version [$version]"
|
||||
if ($response -ne '') {
|
||||
$version = $response
|
||||
$outBuild = $outBuildPath + $version
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "-------------------------------"
|
||||
if ($excludeGit -ne 1) {
|
||||
Write-Host "Git Feching"
|
||||
ExecuteLog "git fetch --all"
|
||||
|
||||
Write-Host "Moving to branch '$branch'"
|
||||
ExecuteLog "git checkout $branch"
|
||||
|
||||
$mail = git log -1 --pretty=format:'%ae'
|
||||
$author = git log -1 --pretty=format:'%an'
|
||||
Write-Host "This is your last commit message from '$author' [$mail]:"
|
||||
git log --oneline -n 1 HEAD
|
||||
askConfirmorDie "`r`nAre you sure do you want to continue [y,n]"
|
||||
|
||||
ExecuteLog "git checkout ."
|
||||
Write-Host "Pulling"
|
||||
ExecuteLog "git pull"
|
||||
}
|
||||
|
||||
Write-Host "-------------------------------"
|
||||
Write-Host "Clean the Solution"
|
||||
ExecuteLog "devenv Thermo.Active.sln /Clean"
|
||||
$outFile = Test-Path $outputdir
|
||||
if($outFile -eq "True")
|
||||
{
|
||||
Remove-Item $outputdir -Recurse -Force
|
||||
}
|
||||
|
||||
if ($excludeNugetUpdate -ne 1) {
|
||||
Write-Host "Update the Nuget Packages"
|
||||
CheckNugetScm
|
||||
ExecuteLog "nuget restore Thermo.Active.sln "
|
||||
}
|
||||
|
||||
if ($version -ne "") {
|
||||
ExecuteLog "ChangeAssemblyVersion $assemblyInfoFile $version"
|
||||
}
|
||||
|
||||
if ($excludeServer -ne 1) {
|
||||
Write-Host "Build the Server APP"
|
||||
ExecuteLog "devenv Thermo.Active.sln /Build Release /Projectconfig ""Release"" /project ""Thermo.Active\Thermo.Active.csproj"""
|
||||
$newv = (Get-Item $outputServer).VersionInfo.FileVersion
|
||||
$outBuild = $outBuildPath + $newv
|
||||
$outFile = Test-Path $outputServer
|
||||
if($outFile -ne "True")
|
||||
{
|
||||
ExitERR "Error while building Server APP (Exe not created)"
|
||||
}
|
||||
}
|
||||
|
||||
if ($excludeClient -ne 1) {
|
||||
Write-Host "Build the Client APP"
|
||||
ExecuteLog "devenv Thermo.Active.sln /Build Release /Projectconfig ""Release|x64"" /project ""Client2020\Client2020.csproj"""
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\bin\Client\x64"" -Destination ""$PSScriptRoot\tmp"" -Recurse"
|
||||
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\Thermo.Active\bin\Client\x64*"" -Force -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\tmp\*"" -Destination ""$PSScriptRoot\Thermo.Active\bin\Client"" -Recurse"
|
||||
$outFile = Test-Path $outputClient
|
||||
if($outFile -ne "True")
|
||||
{
|
||||
ExitERR "Error while building Client APP (Exe not created)"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "-------------------------------"
|
||||
if ($excludeFrontend -ne 1) {
|
||||
Set-Location .\Thermo.Active\wwwroot\
|
||||
if ($excludeNodeUpdate -ne 1) {
|
||||
Write-Host "Update the Node dependencies"
|
||||
ExecuteLog "npm install"
|
||||
}
|
||||
|
||||
Write-Host "Build the Frontend"
|
||||
ExecuteLog "npm run build"
|
||||
|
||||
Set-Location $PSScriptRoot
|
||||
}
|
||||
Write-Host "-------------------------------"
|
||||
Write-Host "Create the output directory"
|
||||
ExecuteLog "New-Item -ItemType ""directory"" -Path $outBuild -Force"
|
||||
ExecuteLog "Remove-Item $outBuild -Recurse -Force"
|
||||
|
||||
|
||||
if ($zipOutput -ne 1) {
|
||||
Write-Host "-------------------------------"
|
||||
Write-Host "Create the installer"
|
||||
ExecuteLog "iscc ""$installerFilePath"""
|
||||
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\tmp"" -Force -Recurse"
|
||||
}
|
||||
|
||||
if ($zipOutput -eq 1) {
|
||||
Write-Host "-------------------------------"
|
||||
Write-Host "Create the Zip file"
|
||||
$outFile = Test-Path $outputdir
|
||||
if($outFile -eq "True")
|
||||
{
|
||||
ExecuteLog "7z a ""$outBuild\Active_Portable_$version.zip"" $outputdir\* "
|
||||
}
|
||||
|
||||
Write-Host "Create the view Folder"
|
||||
ExecuteLog "New-Item -ItemType ""directory"" -Path view -Force"
|
||||
ExecuteLog "Remove-Item -Path ""view\*"" -Force -Recurse"
|
||||
|
||||
Write-Host "Copy the files in View Folder"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\dist"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Scripts"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\libs"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "New-Item -ItemType ""directory"" -Path view\Assets\styles -Force"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\fonts"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\images"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\icons"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\svg"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\animations"" -Destination ""view\Assets"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\style.css.map"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\Assets\styles\iziToast.min.css"" -Destination ""view\Assets\styles"" "
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\index.html"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\favicon.ico"" -Destination ""view"" -Recurse"
|
||||
ExecuteLog "Copy-Item -Path ""$PSScriptRoot\Thermo.Active\wwwroot\config.development.json"" -Destination ""view"" -Recurse"
|
||||
|
||||
Write-Host "Copy view in Zip file"
|
||||
$outFile = Test-Path ".\View"
|
||||
if($outFile -eq "True")
|
||||
{
|
||||
ExecuteLog "7z a ""$outBuild\Active_Portable_$version.zip"" "".\view"" "
|
||||
ExecuteLog "Remove-Item "".\View"" -Recurse -Force"
|
||||
ExecuteLog "Remove-Item -Path ""$PSScriptRoot\tmp"" -Force -Recurse"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Version created: $version" -ForegroundColor Green
|
||||
Write-Host "Output dir: $outBuild"
|
||||
|
||||
if ($silent -eq 0) {
|
||||
explorer.exe $outBuild
|
||||
}
|
||||
|
||||
ExitOk
|
||||
@@ -8,9 +8,10 @@
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>Client.Chromium</RootNamespace>
|
||||
<AssemblyName>Client.Chromium</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Config.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
<xs:element name="RenderingMethod" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="ShowVirtualKeyboard" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="RunningOnSecondaryScreen" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="DeveloperMode" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="DeveloperMode" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="EnableTransparent" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<Config>
|
||||
<Client>
|
||||
<IsSCM>false</IsSCM>
|
||||
<EnableTransparent>false</EnableTransparent>
|
||||
<TranspColor>#FF00FF</TranspColor>
|
||||
<RenderingMethod>GPU</RenderingMethod> <!-- GPU/CPU -->
|
||||
<ShowVirtualKeyboard>false</ShowVirtualKeyboard>
|
||||
<ShowVirtualKeyboard>true</ShowVirtualKeyboard>
|
||||
<RunningOnSecondaryScreen>false</RunningOnSecondaryScreen>
|
||||
<DeveloperMode>true</DeveloperMode>
|
||||
</Client>
|
||||
@@ -12,9 +13,9 @@
|
||||
<ServerUrl>localhost</ServerUrl>
|
||||
<ServerPort>9000</ServerPort>
|
||||
<Id>1</Id>
|
||||
<DeleteCahceFolderOnStartup>true</DeleteCahceFolderOnStartup>
|
||||
<DeleteCahceFolderOnStartup>false</DeleteCahceFolderOnStartup>
|
||||
</Connection>
|
||||
<VendorHmi>
|
||||
<FollowNcWindow>True</FollowNcWindow>
|
||||
<FollowNcWindow>false</FollowNcWindow>
|
||||
</VendorHmi>
|
||||
</Config>
|
||||
@@ -31,6 +31,7 @@ namespace Client.Config
|
||||
.Descendants(Constants.CLIENT_CONFIG_KEY)
|
||||
.Select(x => new SubModels.Client()
|
||||
{
|
||||
EnableTransparent = ValidateEnableTransparent(x.Element("EnableTransparent").Value),
|
||||
TranspColor = ValidateTranspColor(x.Element("TranspColor").Value),
|
||||
RenderingMethod = ValidateRendering(x.Element("RenderingMethod").Value),
|
||||
RunningOnSecondaryScreen = ValidateSecScreen(x.Element("RunningOnSecondaryScreen").Value),
|
||||
@@ -179,7 +180,16 @@ namespace Client.Config
|
||||
throw new Exception(@"Configuration Error: ""Client - DeveloperMode"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
private static bool ValidateEnableTransparent(string value)
|
||||
{
|
||||
Boolean DeveloperMode;
|
||||
if (Boolean.TryParse(value, out DeveloperMode))
|
||||
return DeveloperMode;
|
||||
else
|
||||
throw new Exception(@"Configuration Error: ""Client - EnableTransparent"" is not a valid Boolean Type");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static Boolean ValidateFollowNcWin(String value)
|
||||
{
|
||||
|
||||
@@ -13,5 +13,8 @@ namespace Client.Config.SubModels
|
||||
public Boolean DeveloperMode { get; set; }
|
||||
public Boolean IsSCM { get; set; }
|
||||
public Boolean Autorun { get; set; }
|
||||
public Boolean EnableTransparent { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
//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 + "lib\\Config.xml";
|
||||
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";
|
||||
|
||||
@@ -38,13 +38,14 @@ namespace Active_Client.Browser_Tools
|
||||
|
||||
private static readonly string[] _validExtensions = {".json", ".rcp", ".tpl" };
|
||||
//private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".cn", ".cno", ".ini", ".mpf", ".spf", ".tap", ".anc", ".iso" };
|
||||
private static readonly string[] _validImages = { ".jpg", ".jpeg", ".png" };
|
||||
private static readonly string[] _validImages = { ".svg" };
|
||||
private static string jobPath = "";
|
||||
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
||||
private static EditorVar _currentEditorObject = new EditorVar();
|
||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||
|
||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||
private const string CMS_PATH = @"C:\CMS";
|
||||
|
||||
public static FileSystemWatcher watcher = null;
|
||||
public static DateTime _lastTimeFileWatcherEventRaised = DateTime.Now;
|
||||
|
||||
@@ -77,9 +78,16 @@ namespace Active_Client.Browser_Tools
|
||||
AddFunction("openOrStartProcess").Execute += openOrStartProcess;
|
||||
AddFunction("isVirtualKeybConfigured").Execute += isVirtualKeybConfigured;
|
||||
AddFunction("getOSdriveList").Execute += getOSdriveList;
|
||||
AddFunction("getAllRecipeDirectories").Execute += getAllRecipeDirectories;
|
||||
AddFunction("getFileList").Execute += getFileList;
|
||||
AddFunction("getProgramInfo").Execute += getProgramInfo;
|
||||
AddFunction("editProgram").Execute += editProgram;
|
||||
AddFunction("deleteFile").Execute += deleteFile;
|
||||
AddFunction("deleteFolder").Execute += deleteFolder;
|
||||
AddFunction("createFolder").Execute += createFolder;
|
||||
AddFunction("duplicateRecipe").Execute += duplicateRecipe;
|
||||
|
||||
|
||||
|
||||
AddFunction("uploadAndActivateProgram").Execute += uploadAndActivateProgram;
|
||||
AddFunction("uploadAndAddToQueue").Execute += uploadAndAddToQueue;
|
||||
@@ -359,32 +367,6 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
List<Drive> drivelist = new List<Drive>();
|
||||
|
||||
// USB & HD Drives
|
||||
foreach (var drive in DriveInfo.GetDrives())
|
||||
{
|
||||
if (drive.IsReady)
|
||||
{
|
||||
//Filter NC Address
|
||||
if (drive.DriveType != DriveType.Network)
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName(drive.VolumeLabel, drive.Name.TrimEnd('\\'), drive.DriveType),
|
||||
Path = drive.RootDirectory.ToString(),
|
||||
Type = ElaborateType(drive.DriveType)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Desktop folder
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName("Desktop", "", DriveType.Unknown),
|
||||
Path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\",
|
||||
Type = "SPFO"
|
||||
});
|
||||
|
||||
if (Directory.Exists(THERMO_RECIPE_PATH))
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
@@ -395,31 +377,58 @@ namespace Active_Client.Browser_Tools
|
||||
});
|
||||
}
|
||||
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(drivelist));
|
||||
}
|
||||
|
||||
public void getAllRecipeDirectories(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
List<string> dirs = this.DirSearch(THERMO_RECIPE_PATH);
|
||||
for (int i = 0; i< dirs.Count; i++)
|
||||
{
|
||||
dirs[i] = dirs[i].Remove(0,CMS_PATH.Length +1);
|
||||
}
|
||||
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(dirs));
|
||||
}
|
||||
|
||||
|
||||
public void duplicateRecipe(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() < 2)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_arguments_not_ok")));
|
||||
return;
|
||||
}
|
||||
|
||||
string oldFile = CMS_PATH + "\\" + e.Arguments[0].StringValue + ".rcp";
|
||||
string newFile = CMS_PATH + "\\" + e.Arguments[1].StringValue + ".rcp";
|
||||
string oldImage = CMS_PATH + "\\" + e.Arguments[0].StringValue + ".svg";
|
||||
string newImage = CMS_PATH + "\\" + e.Arguments[1].StringValue + ".svg";
|
||||
if (!File.Exists(oldFile))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_found")));
|
||||
return;
|
||||
}
|
||||
if (File.Exists(newFile))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_already_exists")));
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
// Network Folders
|
||||
var searcher = new ManagementObjectSearcher("select * from Win32_MappedLogicalDisk");
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
File.Copy(oldFile, newFile, true);
|
||||
if (File.Exists(oldImage))
|
||||
{
|
||||
//Filter not CNC folder
|
||||
if (!queryObj["ProviderName"].ToString().Contains(Config.VendorHmiConfig.IpAddress))
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName(queryObj["VolumeName"].ToString(), queryObj["Name"].ToString(), DriveType.Network),
|
||||
Path = queryObj["Name"].ToString(),
|
||||
Type = ElaborateType(DriveType.Network)
|
||||
});
|
||||
}
|
||||
File.Copy(oldImage, newImage, true);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("cannot_copy_file")));
|
||||
}
|
||||
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(drivelist));
|
||||
}
|
||||
|
||||
|
||||
// Read all files in directory
|
||||
public void getFileList(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
@@ -427,14 +436,14 @@ namespace Active_Client.Browser_Tools
|
||||
List<FileModel> filelist = new List<FileModel>();
|
||||
if (e.Arguments.Count() == 0)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new List<FileModel>()));
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_arguments_not_ok")));
|
||||
return;
|
||||
}
|
||||
|
||||
string p = e.Arguments[0].StringValue;
|
||||
if (p != RECENT_FOLDER_KEY && !Directory.Exists(p))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new List<FileModel>()));
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_exists")));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -485,6 +494,95 @@ namespace Active_Client.Browser_Tools
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(filelist));
|
||||
}
|
||||
|
||||
public void deleteFile(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_arguments_not_ok")));
|
||||
return;
|
||||
}
|
||||
|
||||
// Get path
|
||||
string p = e.Arguments[0].StringValue;
|
||||
FileAttributes attr = File.GetAttributes(p);
|
||||
if (!File.Exists(p) || attr.HasFlag(FileAttributes.Directory))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_found")));
|
||||
return;
|
||||
}
|
||||
if (attr.HasFlag(FileAttributes.ReadOnly))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("file_not_editable")));
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
File.Delete(p);
|
||||
string images = Path.ChangeExtension(p, "svg");
|
||||
if(File.Exists(images))
|
||||
{
|
||||
File.Delete(images);
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_file")));
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteFolder(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_arguments_not_ok")));
|
||||
return;
|
||||
}
|
||||
|
||||
// Get path
|
||||
string p = e.Arguments[0].StringValue;
|
||||
FileAttributes attr = File.GetAttributes(p);
|
||||
if (!Directory.Exists(p) || !attr.HasFlag(FileAttributes.Directory))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("directory_not_found")));
|
||||
return;
|
||||
}
|
||||
if (attr.HasFlag(FileAttributes.ReadOnly))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("directory_not_editable")));
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
Directory.Delete(p,true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_directory")));
|
||||
}
|
||||
}
|
||||
|
||||
public void createFolder(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
if (e.Arguments.Count() == 0)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("error_arguments_not_ok")));
|
||||
return;
|
||||
}
|
||||
string path = e.Arguments[0].StringValue;
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("directory_already_exists")));
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
e.SetReturnValue(JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_directory")));
|
||||
}
|
||||
}
|
||||
// Upload and activate the program
|
||||
public async void uploadAndActivateProgram(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
@@ -671,8 +769,7 @@ namespace Active_Client.Browser_Tools
|
||||
// Read info of a file
|
||||
public void getProgramInfo(object sender, CfrV8HandlerExecuteEventArgs e)
|
||||
{
|
||||
string line, imagePath, imageDirectory;
|
||||
int counter = 0;
|
||||
string imagePath, imageDirectory;
|
||||
|
||||
if (e.Arguments.Count() == 0)
|
||||
{
|
||||
@@ -725,7 +822,10 @@ namespace Active_Client.Browser_Tools
|
||||
{
|
||||
if (File.Exists(imageDirectory + "/" + imagePath + ext))
|
||||
{
|
||||
file.PreviewBase64 = "data:image/" + ext + ";base64," + Convert.ToBase64String(File.ReadAllBytes(imageDirectory + "/" + imagePath + ext));
|
||||
if (ext.ToLower().Equals(".svg"))
|
||||
file.PreviewBase64 = File.ReadAllText(imageDirectory + "/" + imagePath + ext);
|
||||
else
|
||||
file.PreviewBase64 = "data:image/" + ext + ";base64," + Convert.ToBase64String(File.ReadAllBytes(imageDirectory + "/" + imagePath + ext));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -976,6 +1076,26 @@ namespace Active_Client.Browser_Tools
|
||||
return retName;
|
||||
}
|
||||
|
||||
|
||||
private List<String> DirSearch(string sDir)
|
||||
{
|
||||
List<String> files = new List<String>();
|
||||
try
|
||||
{
|
||||
files.Add(sDir);
|
||||
foreach (string d in Directory.GetDirectories(sDir))
|
||||
{
|
||||
files.AddRange(DirSearch(d));
|
||||
}
|
||||
}
|
||||
catch (System.Exception excpt)
|
||||
{
|
||||
MessageBox.Show(excpt.Message);
|
||||
}
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
#endregion FILESYSTEM_METHODS
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<ApplicationVersion>2.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
@@ -128,7 +128,8 @@
|
||||
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
@@ -248,7 +249,7 @@
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.6.2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.6.2 %28x86 e x64%29</ProductName>
|
||||
<ProductName>Microsoft .NET Framework 4.6.2 %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
|
||||
@@ -11,6 +11,7 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Security.Permissions;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
@@ -25,14 +26,13 @@ namespace Active_Client
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region MAIN_METHOD
|
||||
|
||||
[STAThread]
|
||||
[STAThread]
|
||||
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlAppDomain)]
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//Crate General Exception Handler
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(GeneralExMethod);
|
||||
|
||||
//Crate General Exception Handler
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(GeneralExMethod);
|
||||
|
||||
|
||||
//Read App Configuration
|
||||
readConfiguration();
|
||||
@@ -170,8 +170,10 @@ namespace Active_Client
|
||||
e.CommandLine.AppendSwitch("--disable-pinch");
|
||||
e.CommandLine.AppendSwitch("--enable-media-stream");
|
||||
e.CommandLine.AppendSwitch("--enable-usermedia-screen-capture");
|
||||
e.CommandLine.AppendSwitch("--no-proxy-server");
|
||||
|
||||
e.CommandLine.AppendSwitch("--no-proxy-server");
|
||||
e.CommandLine.AppendSwitch("--ignore-certificate-errors-spki-list");
|
||||
e.CommandLine.AppendSwitch("--ignore-certificate-errors");
|
||||
e.CommandLine.AppendSwitch("--ignore-ssl-errors");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -31,5 +31,4 @@ using System.Runtime.InteropServices;
|
||||
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
|
||||
// usando l'asterisco '*' come illustrato di seguito:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("0.1.0.0")]
|
||||
[assembly: AssemblyVersion("2.0.*")]
|
||||
|
||||
@@ -165,7 +165,7 @@ namespace Active_Client.View
|
||||
public void sendClose()
|
||||
{
|
||||
//Close Virtual Keyboard Runtime
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10)
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard)
|
||||
NcWindow.closeVirtualKeyboard();
|
||||
|
||||
//Close the NC HMI && Stop Following Nc
|
||||
@@ -259,7 +259,7 @@ namespace Active_Client.View
|
||||
Browser.DisplayHandler.OnConsoleMessage += BrowserConsoleMessage;
|
||||
Browser.DownloadHandler.OnBeforeDownload += BeforeDownload;
|
||||
//Filter only < Win_10 Platform
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10)
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard)
|
||||
ChromiumWebBrowser.RemoteProcessCreated += (e) => { e.RenderProcessHandler.OnFocusedNodeChanged += BrowserNodeChanged; };
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ namespace Active_Client.View
|
||||
string dom = ev.Node.GetElementAttribute("type").ToLower();
|
||||
|
||||
//Filter if the node Type is TEXT or PASSWORD
|
||||
if (dom != null && (dom.Equals("text") || dom.Equals("password")))
|
||||
if (dom != null && (dom.Equals("text") || dom.Equals("password") || dom.Equals("")))
|
||||
NcWindow.openVirtualKeyboard(ev.Node.ElementBounds, ev.Browser.Identifier > 1, false);
|
||||
}
|
||||
//Filter if this node is TEXTAREA Node
|
||||
|
||||
@@ -1047,7 +1047,7 @@ namespace Active_Client.View
|
||||
if (!IsIconic(MainViewHandle))
|
||||
{
|
||||
//Show Virtual keyboard
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10)
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard)
|
||||
reOpenVirtualKeyboard();
|
||||
}
|
||||
}
|
||||
@@ -1069,7 +1069,7 @@ namespace Active_Client.View
|
||||
//SetForegroundWindow(hwnd);
|
||||
|
||||
//Hide Virtual keyboard
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard && Environment.OSVersion.Version.Major < 10 && KeyboardPID != 0 && ActualPID != KeyboardPID)
|
||||
if (Config.ClientConfig.ShowVirtualKeyboard && KeyboardPID != 0 && ActualPID != KeyboardPID)
|
||||
closeVirtualKeyboard();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
<package id="MetroModernUI" version="1.4.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.2" targetFramework="net462" />
|
||||
<package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -0,0 +1,642 @@
|
||||
using CefSharp;
|
||||
using Client.Config;
|
||||
using Client.Config.SubModels;
|
||||
using Client2020.BrowserTools.Models;
|
||||
using Client2020.BrowserTools.Models.Errors;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Client2020.BrowserTools
|
||||
{
|
||||
public class BrowserJSObject
|
||||
{
|
||||
private Form mainForm;
|
||||
private static readonly string[] _validExtensions = { ".json", ".rcp", ".tpl" };
|
||||
//private static readonly string[] _validExtensions = { "", ".txt", ".cnc", ".cn", ".cno", ".ini", ".mpf", ".spf", ".tap", ".anc", ".iso" };
|
||||
private static readonly string[] _validImages = { ".svg" };
|
||||
private static string jobPath = "";
|
||||
private static Dictionary<string, IntPtr> _editorOpened = new Dictionary<string, IntPtr>();
|
||||
public static string RECENT_FOLDER_KEY = "RECENT";
|
||||
private const string THERMO_RECIPE_PATH = @"C:\CMS\Recipes";
|
||||
private const string THERMO_RECIPE_FOLDER_NAME = @"Recipes";
|
||||
private const string THERMO_SCREENSHOT_PATH = @"C:\CMS\Screenshots";
|
||||
private const string CMS_PATH = @"C:\CMS";
|
||||
|
||||
#region CONSTRUCTOR_METHOD
|
||||
public BrowserJSObject(Form f)
|
||||
{
|
||||
mainForm = f;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion CONSTRUCTOR_METHOD
|
||||
|
||||
#region FORM_BEHAVIOUR_METHODS
|
||||
public void minimizeForm()
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (mainForm.InvokeRequired)
|
||||
mainForm.Invoke((MethodInvoker)delegate ()
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Minimized;
|
||||
});
|
||||
else
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Minimized;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Maximize Main Window
|
||||
public void maximizeForm()
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (mainForm.InvokeRequired)
|
||||
mainForm.Invoke((MethodInvoker)delegate ()
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Maximized;
|
||||
});
|
||||
else
|
||||
{
|
||||
mainForm.WindowState = FormWindowState.Maximized;
|
||||
}
|
||||
}
|
||||
|
||||
// Close Main Window
|
||||
public void closeForm()
|
||||
{
|
||||
//If the mainform is disposed do nothing
|
||||
if (mainForm.IsDisposed)
|
||||
return;
|
||||
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
public string takeScreenshot(string RecipeName)
|
||||
{
|
||||
|
||||
string path = THERMO_SCREENSHOT_PATH + "\\" + RecipeName;
|
||||
string pathFile = THERMO_SCREENSHOT_PATH + "\\" + RecipeName + "\\" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".jpg";
|
||||
try
|
||||
{
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
|
||||
Bitmap captureBitmap = new Bitmap(1920, 1080, PixelFormat.Format32bppArgb);
|
||||
Rectangle captureRectangle = Screen.AllScreens[0].Bounds;
|
||||
Graphics captureGraphics = Graphics.FromImage(captureBitmap);
|
||||
captureGraphics.CopyFromScreen(captureRectangle.Left, captureRectangle.Top, 0, 0, captureRectangle.Size);
|
||||
captureBitmap.Save(pathFile, ImageFormat.Jpeg);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("cannot_create_image")));
|
||||
}
|
||||
return (JsonConvert.SerializeObject(new ScreenshotController(pathFile))); ;
|
||||
|
||||
}
|
||||
|
||||
#endregion FORM_BEHAVIOUR_METHODS
|
||||
|
||||
#region NC_BEHAVIOUR_METHODS
|
||||
public void setNcWindowState(int val)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public int getNcWindowState()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public string getScreenBase64()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
#endregion NC_BEHAVIOUR_METHODS
|
||||
|
||||
#region CHROMIUM_METHODS
|
||||
|
||||
// Get the Version of Chromium
|
||||
public string getChromiumVersion()
|
||||
{
|
||||
return Cef.ChromiumVersion + " (" + Application.ProductVersion + ")";
|
||||
}
|
||||
|
||||
#endregion CHROMIUM_METHODS
|
||||
|
||||
#region STEP_METHODS
|
||||
|
||||
// Get the ID of STEP Client
|
||||
public int getClientID()
|
||||
{
|
||||
return Config.ConnectionConfig.Id;
|
||||
}
|
||||
|
||||
public void forceStepFocus()
|
||||
{
|
||||
}
|
||||
|
||||
public void forceNcFocus()
|
||||
{
|
||||
}
|
||||
|
||||
public void forceProdFocus()
|
||||
{
|
||||
}
|
||||
|
||||
// Get the option of virtual Keyb configured
|
||||
public bool isVirtualKeybConfigured()
|
||||
{
|
||||
return Config.ClientConfig.ShowVirtualKeyboard;
|
||||
}
|
||||
|
||||
// Get the option of virtual Keyb configured
|
||||
public bool isHMIenabled()
|
||||
{
|
||||
return Config.VendorHmiConfig.Enabled;
|
||||
}
|
||||
|
||||
// Get the option of PROD Enabled
|
||||
public bool isPRODenabled()
|
||||
{
|
||||
return Config.ProdSoftwareConfig.Enabled;
|
||||
}
|
||||
|
||||
// Get the SCM option
|
||||
public bool isSCMVisualStyle()
|
||||
{
|
||||
return Config.ClientConfig.IsSCM;
|
||||
}
|
||||
|
||||
public string openExternalBrowser(string proc)
|
||||
{
|
||||
Process.Start(proc);
|
||||
return "";
|
||||
}
|
||||
#endregion STEP_METHODS
|
||||
|
||||
#region PROCESSES_METHODS
|
||||
|
||||
// Read all configured processes
|
||||
public string getConfiguredProcesses()
|
||||
{
|
||||
return JsonConvert.SerializeObject(Config.ExtSoftwaresConfig.Where(X => X.inMainMenuBar == false));
|
||||
}
|
||||
|
||||
// Read all configured processes in main menu
|
||||
public string getConfiguredProcessesInMainMenu()
|
||||
{
|
||||
return JsonConvert.SerializeObject(Config.ExtSoftwaresConfig.Where(X => X.inMainMenuBar == true));
|
||||
}
|
||||
|
||||
// Start a new process
|
||||
public void startNewProcess(string proc)
|
||||
{
|
||||
Thread t = new Thread(new ParameterizedThreadStart(OpenNew));
|
||||
t.Start(proc);
|
||||
}
|
||||
|
||||
// Open the last window or Start a new process
|
||||
public void openOrStartProcess(string proc)
|
||||
{
|
||||
Thread t = new Thread(new ParameterizedThreadStart(OpenStartNew));
|
||||
t.Start(proc);
|
||||
}
|
||||
|
||||
// Function used in Thread
|
||||
private void OpenStartNew(object id)
|
||||
{
|
||||
Software sft = Config.ExtSoftwaresConfig.FirstOrDefault(X => X.id == (string)id);
|
||||
|
||||
if (sft != null && File.Exists(sft.path))
|
||||
{
|
||||
Process[] p = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(sft.path)).OrderByDescending(X => X.StartTime).ToArray();
|
||||
|
||||
if (p.Count() > 0 && p[0].MainWindowHandle != IntPtr.Zero)
|
||||
NcWindow.ForceExtFocus(p[0].MainWindowHandle, 0, 0, 0, 0);
|
||||
else
|
||||
{
|
||||
ProcessStartInfo PS = new ProcessStartInfo(sft.path, sft.arguments);
|
||||
PS.WorkingDirectory = new FileInfo(sft.path).Directory.FullName;
|
||||
Process.Start(PS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Function used in Thread
|
||||
private void OpenNew(object id)
|
||||
{
|
||||
Software sft = Config.ExtSoftwaresConfig.FirstOrDefault(X => X.id == (string)id);
|
||||
if (sft != null)
|
||||
{
|
||||
ProcessStartInfo PS = new ProcessStartInfo(sft.path, sft.arguments);
|
||||
PS.WorkingDirectory = new FileInfo(sft.path).Directory.FullName;
|
||||
Process.Start(PS);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion PROCESSES_METHODS
|
||||
|
||||
#region FILESYSTEM_METHODS
|
||||
public string getOSdriveList()
|
||||
{
|
||||
List<Drive> drivelist = new List<Drive>();
|
||||
|
||||
if (Directory.Exists(THERMO_RECIPE_PATH))
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName("Recipes", "", DriveType.Unknown),
|
||||
Path = THERMO_RECIPE_PATH + "\\",
|
||||
Type = "SPFO"
|
||||
});
|
||||
}
|
||||
|
||||
return JsonConvert.SerializeObject(drivelist);
|
||||
}
|
||||
|
||||
public string getOSextDriveList()
|
||||
{
|
||||
List<Drive> drivelist = new List<Drive>();
|
||||
|
||||
// USB & HD Drives
|
||||
foreach (var drive in DriveInfo.GetDrives())
|
||||
{
|
||||
if (drive.IsReady)
|
||||
{
|
||||
//Filter NC Address
|
||||
if (drive.DriveType != DriveType.Network && drive.DriveType == DriveType.Removable)
|
||||
{
|
||||
drivelist.Add(new Drive()
|
||||
{
|
||||
Name = ElaborateName(drive.VolumeLabel, drive.Name.TrimEnd('\\'), drive.DriveType),
|
||||
Path = drive.RootDirectory.ToString(),
|
||||
Type = ElaborateType(drive.DriveType)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return JsonConvert.SerializeObject(drivelist);
|
||||
}
|
||||
public string backupRecipes(String p)
|
||||
{
|
||||
if (!Directory.Exists(p))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("path_not_exists")));
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string finalPath = p + "Backup_Recipes_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
|
||||
Directory.CreateDirectory(finalPath);
|
||||
this.CopyFilesRecursively(new DirectoryInfo(THERMO_RECIPE_PATH),new DirectoryInfo(finalPath));
|
||||
Process.Start(finalPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("error_during_backup")));
|
||||
}
|
||||
|
||||
return JsonConvert.SerializeObject("");
|
||||
}
|
||||
|
||||
public string backupSubRecipes(String p, String folder)
|
||||
{
|
||||
if (!Directory.Exists(p))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("path_not_exists")));
|
||||
}
|
||||
|
||||
folder = folder.Remove(0,THERMO_RECIPE_FOLDER_NAME.Length);
|
||||
|
||||
try
|
||||
{
|
||||
string finalPath = p + "Backup_Recipes_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
|
||||
Directory.CreateDirectory(finalPath);
|
||||
this.CopyFilesRecursively(new DirectoryInfo(THERMO_RECIPE_PATH + folder), new DirectoryInfo(finalPath));
|
||||
File.WriteAllText(finalPath + "\\data.json", JsonConvert.SerializeObject(new FolderBackup(folder)));
|
||||
Process.Start(finalPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("error_during_backup")));
|
||||
}
|
||||
|
||||
return JsonConvert.SerializeObject("");
|
||||
}
|
||||
|
||||
|
||||
// Read all files in directory
|
||||
public string getFileList(string p)
|
||||
{
|
||||
List<FileModel> filelist = new List<FileModel>();
|
||||
|
||||
|
||||
if (p != RECENT_FOLDER_KEY && !Directory.Exists(p))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("file_not_exists")));
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (p == RECENT_FOLDER_KEY)
|
||||
{
|
||||
filelist = new List<FileModel>();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add directories
|
||||
foreach (string item in Directory.GetDirectories(p))
|
||||
{
|
||||
filelist.Add(new FileModel
|
||||
{
|
||||
Name = Path.GetFileName(item),
|
||||
AbsolutePath = Path.GetFullPath(item),
|
||||
Path = Path.GetFullPath(item),
|
||||
IsDirectory = true,
|
||||
FileExist = true,
|
||||
IsMain = false
|
||||
});
|
||||
}
|
||||
|
||||
// Add files
|
||||
foreach (string item in Directory.GetFiles(p))
|
||||
{
|
||||
if (_validExtensions.Contains(Path.GetExtension(item).ToLower()))
|
||||
{
|
||||
bool isJob = false;
|
||||
filelist.Add(new FileModel
|
||||
{
|
||||
Name = Path.GetFileName(item),
|
||||
AbsolutePath = Path.GetFullPath(item),
|
||||
Path = Path.GetFullPath(item),
|
||||
IsDirectory = false,
|
||||
IsJob = isJob,
|
||||
IsMain = false,
|
||||
FileExist = true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
return (JsonConvert.SerializeObject(filelist));
|
||||
}
|
||||
|
||||
// Read info of a file
|
||||
public string getProgramInfo(string p)
|
||||
{
|
||||
string imagePath, imageDirectory;
|
||||
|
||||
if (!File.Exists(p))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new InfoFile()));
|
||||
}
|
||||
|
||||
FileInfo f = new FileInfo(p);
|
||||
InfoFile file = new InfoFile
|
||||
{
|
||||
Name = f.Name,
|
||||
CreationDate = f.CreationTime,
|
||||
LastModDate = f.LastAccessTime,
|
||||
AbsolutePath = p,
|
||||
CanEdit = !f.IsReadOnly
|
||||
};
|
||||
|
||||
imagePath = Path.GetFileNameWithoutExtension(p);
|
||||
imageDirectory = Path.GetDirectoryName(p);
|
||||
|
||||
file.SheetX = "";
|
||||
file.SheetY = "";
|
||||
file.SheetZ = "";
|
||||
file.Annotation = "";
|
||||
|
||||
try
|
||||
{
|
||||
dynamic content = JsonConvert.DeserializeObject(File.ReadAllText(p));
|
||||
|
||||
if (content != null && content.RecipeParameters != null)
|
||||
{
|
||||
if (content.RecipeParameters.general_sizes_sheet_dim_x != null)
|
||||
file.SheetX = content.RecipeParameters.general_sizes_sheet_dim_x;
|
||||
if (content.RecipeParameters.general_sizes_sheet_dim_y != null)
|
||||
file.SheetY = content.RecipeParameters.general_sizes_sheet_dim_y;
|
||||
if (content.RecipeParameters.general_sizes_sheet_thickness != null)
|
||||
file.SheetZ = content.RecipeParameters.general_sizes_sheet_thickness;
|
||||
if (content.recipeNotes != null)
|
||||
file.Annotation = content.recipeNotes;
|
||||
}
|
||||
|
||||
foreach (string ext in _validImages)
|
||||
{
|
||||
if (File.Exists(imageDirectory + "/" + imagePath + ext))
|
||||
{
|
||||
if (ext.ToLower().Equals(".svg"))
|
||||
file.PreviewBase64 = File.ReadAllText(imageDirectory + "/" + imagePath + ext);
|
||||
else
|
||||
file.PreviewBase64 = "data:image/" + ext + ";base64," + Convert.ToBase64String(File.ReadAllBytes(imageDirectory + "/" + imagePath + ext));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
|
||||
return (JsonConvert.SerializeObject(file));
|
||||
}
|
||||
|
||||
|
||||
public string duplicateRecipe(string p1, string p2)
|
||||
{
|
||||
string oldFile = CMS_PATH + "\\" + p1 + ".rcp";
|
||||
string newFile = CMS_PATH + "\\" + p2 + ".rcp";
|
||||
string oldImage = CMS_PATH + "\\" + p1 + ".svg";
|
||||
string newImage = CMS_PATH + "\\" + p2 + ".svg";
|
||||
if (!File.Exists(oldFile))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("file_not_found")));
|
||||
}
|
||||
if (File.Exists(newFile))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("file_already_exists")));
|
||||
}
|
||||
try
|
||||
{
|
||||
File.Copy(oldFile, newFile, true);
|
||||
if (File.Exists(oldImage))
|
||||
{
|
||||
File.Copy(oldImage, newImage, true);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return(JsonConvert.SerializeObject(new ErrorContainer("cannot_copy_file")));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public string getAllRecipeDirectories()
|
||||
{
|
||||
List<string> dirs = this.DirSearch(THERMO_RECIPE_PATH);
|
||||
for (int i = 0; i < dirs.Count; i++)
|
||||
{
|
||||
dirs[i] = dirs[i].Remove(0, CMS_PATH.Length + 1);
|
||||
}
|
||||
|
||||
return(JsonConvert.SerializeObject(dirs));
|
||||
}
|
||||
|
||||
public string deleteFile(string p)
|
||||
{
|
||||
FileAttributes attr = File.GetAttributes(p);
|
||||
if (!File.Exists(p) || attr.HasFlag(FileAttributes.Directory))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("file_not_found")));
|
||||
}
|
||||
if (attr.HasFlag(FileAttributes.ReadOnly))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("file_not_editable")));
|
||||
}
|
||||
try
|
||||
{
|
||||
File.Delete(p);
|
||||
string images = Path.ChangeExtension(p, "svg");
|
||||
if (File.Exists(images))
|
||||
{
|
||||
File.Delete(images);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_file")));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public string deleteFolder(string p)
|
||||
{
|
||||
|
||||
FileAttributes attr = File.GetAttributes(p);
|
||||
if (!Directory.Exists(p) || !attr.HasFlag(FileAttributes.Directory))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("directory_not_found")));
|
||||
}
|
||||
if (attr.HasFlag(FileAttributes.ReadOnly))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("directory_not_editable")));
|
||||
}
|
||||
try
|
||||
{
|
||||
Directory.Delete(p, true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_directory")));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public string createFolder(string path)
|
||||
{
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("directory_already_exists")));
|
||||
}
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (JsonConvert.SerializeObject(new ErrorContainer("cannot_delete_directory")));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// Private functions
|
||||
private string ElaborateType(DriveType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DriveType.Fixed: return "HD";
|
||||
case DriveType.Removable: return "USB";
|
||||
case DriveType.Network: return "NTW";
|
||||
}
|
||||
return "SPFO";
|
||||
}
|
||||
private string ElaborateName(string name, string letter, DriveType type)
|
||||
{
|
||||
var retName = "";
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(name))
|
||||
retName = name;
|
||||
else
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DriveType.Fixed: retName = "Hard_Disk"; break;
|
||||
case DriveType.Removable: retName = "Usb_Disk"; break;
|
||||
case DriveType.Network: retName = "Netword_Disk"; break;
|
||||
default: retName = "Undefined"; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(letter))
|
||||
retName = retName + " (" + letter + ")";
|
||||
|
||||
return retName;
|
||||
}
|
||||
|
||||
public void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target)
|
||||
{
|
||||
foreach (DirectoryInfo dir in source.GetDirectories())
|
||||
CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name));
|
||||
foreach (FileInfo file in source.GetFiles())
|
||||
file.CopyTo(Path.Combine(target.FullName, file.Name));
|
||||
}
|
||||
|
||||
private List<String> DirSearch(string sDir)
|
||||
{
|
||||
List<String> files = new List<String>();
|
||||
try
|
||||
{
|
||||
files.Add(sDir);
|
||||
foreach (string d in Directory.GetDirectories(sDir))
|
||||
{
|
||||
files.AddRange(DirSearch(d));
|
||||
}
|
||||
}
|
||||
catch (System.Exception excpt)
|
||||
{
|
||||
MessageBox.Show(excpt.Message);
|
||||
}
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
public void cleanFileWatcher()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
#endregion FILESYSTEM_METHODS
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class Drive
|
||||
{
|
||||
public String Name;
|
||||
public String Path;
|
||||
public String Type;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace Client2020.BrowserTools.Models.Errors
|
||||
{
|
||||
public class ErrorContainer
|
||||
{
|
||||
public String error;
|
||||
|
||||
public ErrorContainer(String Err)
|
||||
{
|
||||
this.error = Err;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class FileModel
|
||||
{
|
||||
public string Name;
|
||||
public string AbsolutePath;
|
||||
public string Path;
|
||||
public bool IsDirectory;
|
||||
public bool IsJob;
|
||||
public bool IsMain;
|
||||
public bool FileExist;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class FolderBackup
|
||||
{
|
||||
public String AbsolutePath;
|
||||
public FolderBackup(String Str)
|
||||
{
|
||||
this.AbsolutePath = Str;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class InfoFile
|
||||
{
|
||||
public String Name;
|
||||
public String AbsolutePath;
|
||||
public DateTime CreationDate;
|
||||
public DateTime LastModDate;
|
||||
public String SheetX;
|
||||
public String SheetY;
|
||||
public String SheetZ;
|
||||
public String Annotation;
|
||||
|
||||
public Boolean CanEdit;
|
||||
public string PreviewBase64;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using Client2020.BrowserTools.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class JobToStep
|
||||
{
|
||||
public string name;
|
||||
public DateTime lastEditTimestamp;
|
||||
public string isoMainProgram;
|
||||
public Metas metadata;
|
||||
public List<PPContainer> partPrograms;
|
||||
|
||||
public JobToStep()
|
||||
{
|
||||
metadata = new Metas();
|
||||
partPrograms = new List<PPContainer>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Metadata
|
||||
{
|
||||
public class CustomParam
|
||||
{
|
||||
public string name;
|
||||
public string type;
|
||||
public List<string> selectionList;
|
||||
public int value;
|
||||
|
||||
public CustomParam()
|
||||
{
|
||||
selectionList = new List<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Metadata
|
||||
{
|
||||
public class GenericsParam
|
||||
{
|
||||
public List<ImageParam> images;
|
||||
public string description;
|
||||
public TimeSpan executionTime;
|
||||
|
||||
public GenericsParam()
|
||||
{
|
||||
images = new List<ImageParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Client2020.BrowserTools.Metadata
|
||||
{
|
||||
public class ImageParam
|
||||
{
|
||||
public string name;
|
||||
public string base64;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Metadata
|
||||
{
|
||||
public class Metas
|
||||
{
|
||||
public GenericsParam generics;
|
||||
public List<int> tools;
|
||||
public List<CustomParam> customs;
|
||||
|
||||
public Metas()
|
||||
{
|
||||
generics = new GenericsParam();
|
||||
tools = new List<int>();
|
||||
customs = new List<CustomParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace Client2020.BrowserTools.Metadata
|
||||
{
|
||||
public class PPContainer
|
||||
{
|
||||
public String name;
|
||||
|
||||
public PPContainer(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Client2020.BrowserTools.Metadata;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
public class MetadataToFile
|
||||
{
|
||||
public string description;
|
||||
public TimeSpan executionTime;
|
||||
public List<int> tools;
|
||||
public List<CustomParam> customs;
|
||||
|
||||
public MetadataToFile()
|
||||
{
|
||||
tools = new List<int>();
|
||||
customs = new List<CustomParam>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client2020.BrowserTools.Models
|
||||
{
|
||||
class ScreenshotController
|
||||
{
|
||||
public String path;
|
||||
|
||||
public ScreenshotController(String path)
|
||||
{
|
||||
this.path = path;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using CefSharp;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
internal class CMSContextBrowser : IContextMenuHandler
|
||||
{
|
||||
public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
|
||||
{
|
||||
//throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void OnContextMenuDismissed(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
|
||||
{
|
||||
}
|
||||
|
||||
public bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using CefSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
class CMSRenderBrowser : IRenderProcessMessageHandler
|
||||
{
|
||||
public void OnFocusedNodeChanged(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IDomNode node)
|
||||
{
|
||||
if (node != null)
|
||||
{
|
||||
string NodeName = node.TagName.ToLower();
|
||||
string dom = node["type"];
|
||||
|
||||
//Filter if this node is an INPUT Node
|
||||
if (NodeName != null && NodeName.Equals("input"))
|
||||
{
|
||||
//Filter if the node Type is TEXT or PASSWORD
|
||||
if (dom == null || (dom.ToLower().Equals("text") || dom.ToLower().Equals("password")))
|
||||
NcWindow.openVirtualKeyboard(true, false);
|
||||
}
|
||||
//Filter if this node is TEXTAREA Node
|
||||
else if (NodeName != null && NodeName.Equals("textarea"))
|
||||
NcWindow.openVirtualKeyboard(true, false);
|
||||
else
|
||||
NcWindow.closeVirtualKeyboard();
|
||||
}
|
||||
else
|
||||
NcWindow.closeVirtualKeyboard();
|
||||
|
||||
}
|
||||
|
||||
public void OnContextCreated(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
|
||||
{
|
||||
}
|
||||
|
||||
public void OnContextReleased(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public void OnUncaughtException(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, JavascriptException exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props" Condition="Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props')" />
|
||||
<Import Project="..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props')" />
|
||||
<Import Project="..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props')" />
|
||||
<Import Project="..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{0780047F-12E4-4FCC-9748-6B23F0FD3711}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Client2020</RootNamespace>
|
||||
<AssemblyName>Active_Client</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\Thermo.Active\bin\Client_Debug\x64\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>Client2020.Program</StartupObject>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>..\Thermo.Active\bin\Client\x64\</OutputPath>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Resources\ACTIVE_ICONA.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<OutputPath>..\Thermo.Active\bin\Client_Debug\x64\</OutputPath>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</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.Management" />
|
||||
<Reference Include="System.Management.Instrumentation" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BrowserTools\BrowserJSObject.cs" />
|
||||
<Compile Include="BrowserTools\Models\Drive.cs" />
|
||||
<Compile Include="BrowserTools\Models\Errors\ErrorContainer.cs" />
|
||||
<Compile Include="BrowserTools\Models\File.cs" />
|
||||
<Compile Include="BrowserTools\Models\FolderBackup.cs" />
|
||||
<Compile Include="BrowserTools\Models\InfoFile.cs" />
|
||||
<Compile Include="BrowserTools\Models\JobToStep.cs" />
|
||||
<Compile Include="BrowserTools\Models\MetadataToFile.cs" />
|
||||
<Compile Include="BrowserTools\Models\Metadata\CustomParam.cs" />
|
||||
<Compile Include="BrowserTools\Models\Metadata\GenericsParam.cs" />
|
||||
<Compile Include="BrowserTools\Models\Metadata\ImageParam.cs" />
|
||||
<Compile Include="BrowserTools\Models\Metadata\Metas.cs" />
|
||||
<Compile Include="BrowserTools\Models\Metadata\PPContainer.cs" />
|
||||
<Compile Include="BrowserTools\Models\ScreenshotController.cs" />
|
||||
<Compile Include="CMSContextBrowser.cs" />
|
||||
<Compile Include="CMSRenderBrowser.cs" />
|
||||
<Compile Include="LoadingForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LoadingForm.Designer.cs">
|
||||
<DependentUpon>LoadingForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NcWindow.cs" />
|
||||
<Compile Include="OpeningForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="OpeningForm.Designer.cs">
|
||||
<DependentUpon>OpeningForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="LoadingForm.resx">
|
||||
<DependentUpon>LoadingForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="OpeningForm.resx">
|
||||
<DependentUpon>OpeningForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="app.manifest" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Client.Config\Client.Config.csproj">
|
||||
<Project>{205a6ade-fb5a-45cb-9c51-9817e7bb8939}</Project>
|
||||
<Name>Client.Config</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Client.Utils\Client.Utils.csproj">
|
||||
<Project>{34434b22-d546-4a5c-b575-49720c77643a}</Project>
|
||||
<Name>Client.Utils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\ACTIVE_ICONA.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\ACTIVE_ICONA.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\CM_ACTIVE_LOGO.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\CM_ACTIVE_LOGO_INVERTED.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\CMS_LOGO.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\MAESTRO_ACTIVE_LOGO.jpg" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\SCM_MAESTRO_ACTIVE_ICONA.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\SinumerikHmi.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props'))" />
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets')" />
|
||||
<Import Project="..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets')" />
|
||||
</Project>
|
||||
@@ -0,0 +1,158 @@
|
||||
namespace Client2020
|
||||
{
|
||||
partial class LoadingForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadingForm));
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
this.ErrorLBL = new System.Windows.Forms.Label();
|
||||
this.CloseLabel = new System.Windows.Forms.Label();
|
||||
this.LogoSCM = new System.Windows.Forms.PictureBox();
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
this.LogoCMS = new System.Windows.Forms.PictureBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoSCM)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoCMS)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.BackColor = System.Drawing.Color.White;
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(75)))), ((int)(((byte)(75)))), ((int)(((byte)(75)))));
|
||||
this.StatusLBL.Location = new System.Drawing.Point(0, 384);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(502, 34);
|
||||
this.StatusLBL.TabIndex = 5;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// ErrorLBL
|
||||
//
|
||||
this.ErrorLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ErrorLBL.BackColor = System.Drawing.Color.White;
|
||||
this.ErrorLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ErrorLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.ErrorLBL.Location = new System.Drawing.Point(501, 384);
|
||||
this.ErrorLBL.Name = "ErrorLBL";
|
||||
this.ErrorLBL.Size = new System.Drawing.Size(468, 34);
|
||||
this.ErrorLBL.TabIndex = 7;
|
||||
this.ErrorLBL.Text = "...";
|
||||
this.ErrorLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// CloseLabel
|
||||
//
|
||||
this.CloseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CloseLabel.BackColor = System.Drawing.Color.White;
|
||||
this.CloseLabel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.CloseLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.CloseLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.CloseLabel.Location = new System.Drawing.Point(922, 0);
|
||||
this.CloseLabel.Margin = new System.Windows.Forms.Padding(3, 0, 2, 0);
|
||||
this.CloseLabel.Name = "CloseLabel";
|
||||
this.CloseLabel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.CloseLabel.Size = new System.Drawing.Size(47, 31);
|
||||
this.CloseLabel.TabIndex = 3;
|
||||
this.CloseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// LogoSCM
|
||||
//
|
||||
this.LogoSCM.BackColor = System.Drawing.Color.White;
|
||||
this.LogoSCM.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.LogoSCM.Image = global::Client2020.Properties.Resources.MAESTRO_ACTIVE_LOGO;
|
||||
this.LogoSCM.Location = new System.Drawing.Point(0, 0);
|
||||
this.LogoSCM.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.LogoSCM.Name = "LogoSCM";
|
||||
this.LogoSCM.Size = new System.Drawing.Size(969, 400);
|
||||
this.LogoSCM.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.LogoSCM.TabIndex = 8;
|
||||
this.LogoSCM.TabStop = false;
|
||||
this.LogoSCM.Visible = false;
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.BackColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(75)))), ((int)(((byte)(75)))), ((int)(((byte)(75)))));
|
||||
this.VersionLBL.Location = new System.Drawing.Point(0, 0);
|
||||
this.VersionLBL.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(929, 31);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// LogoCMS
|
||||
//
|
||||
this.LogoCMS.BackColor = System.Drawing.Color.White;
|
||||
this.LogoCMS.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.LogoCMS.Image = global::Client2020.Properties.Resources.CM_ACTIVE_LOGO_INVERTED;
|
||||
this.LogoCMS.Location = new System.Drawing.Point(0, 31);
|
||||
this.LogoCMS.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.LogoCMS.Name = "LogoCMS";
|
||||
this.LogoCMS.Size = new System.Drawing.Size(969, 369);
|
||||
this.LogoCMS.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.LogoCMS.TabIndex = 6;
|
||||
this.LogoCMS.TabStop = false;
|
||||
this.LogoCMS.Visible = false;
|
||||
//
|
||||
// LoadingForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(969, 418);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.VersionLBL);
|
||||
this.Controls.Add(this.CloseLabel);
|
||||
this.Controls.Add(this.ErrorLBL);
|
||||
this.Controls.Add(this.LogoCMS);
|
||||
this.Controls.Add(this.LogoSCM);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "LoadingForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(0, 60, 0, 0);
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading Active Client";
|
||||
this.TopMost = true;
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoSCM)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoCMS)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Label StatusLBL;
|
||||
private System.Windows.Forms.Label ErrorLBL;
|
||||
private System.Windows.Forms.Label CloseLabel;
|
||||
private System.Windows.Forms.PictureBox LogoSCM;
|
||||
private System.Windows.Forms.Label VersionLBL;
|
||||
private System.Windows.Forms.PictureBox LogoCMS;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using Client.Config;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
public partial class LoadingForm : Form
|
||||
{
|
||||
|
||||
//Constructor
|
||||
public LoadingForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
if (Config.ClientConfig.IsSCM)
|
||||
{
|
||||
LogoCMS.Visible = false;
|
||||
LogoSCM.Visible = true;
|
||||
this.Icon = Client2020.Properties.Resources.MAESTRO_ACTIVE_ICON;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogoCMS.Visible = true;
|
||||
LogoSCM.Visible = false;
|
||||
}
|
||||
|
||||
//Set window Position
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Show & Set the status
|
||||
public void Show(String status)
|
||||
{
|
||||
this.Show();
|
||||
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate () { StatusLBL.Text = status; });
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusLBL.Text = status;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
namespace Client2020
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1920, 1080);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "MainForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Active Client 2.0";
|
||||
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
using CefSharp;
|
||||
using CefSharp.WinForms;
|
||||
using Client.Config;
|
||||
using Client.Utils;
|
||||
using Client2020.BrowserTools;
|
||||
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.Windows.Forms;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
ChromiumWebBrowser browser;
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//Setup the Icon
|
||||
if (Config.ClientConfig.IsSCM)
|
||||
this.Icon = Properties.Resources.MAESTRO_ACTIVE_ICON;
|
||||
|
||||
//Start the browser
|
||||
browser = new ChromiumWebBrowser(Config.ConnectionConfig.StartingUrl);
|
||||
this.Controls.Add(browser);
|
||||
|
||||
//Setup the Object Custom
|
||||
browser.JavascriptObjectRepository.Register(Constants.BROWSER_JS_OBJ_NAME, new BrowserJSObject(this), isAsync: false, options: BindingOptions.DefaultBinder);
|
||||
|
||||
//Setup the Handlers
|
||||
browser.RenderProcessMessageHandler = new CMSRenderBrowser();
|
||||
browser.MenuHandler = new CMSContextBrowser();
|
||||
|
||||
//Setu the NC behaviour
|
||||
NcWindow.mainFrm = this;
|
||||
NcWindow.StartStepFollowing(this.Handle);
|
||||
}
|
||||
|
||||
|
||||
public void keyPressedHandler(bool altPressed, bool ctrlPressed, bool shiftPressed, int key)
|
||||
{
|
||||
//Work only if is a Developer mode
|
||||
if (Config.ClientConfig.DeveloperMode && altPressed)
|
||||
{
|
||||
if (key == (int)Keys.F5)
|
||||
{
|
||||
browser.Reload(true);
|
||||
}
|
||||
|
||||
if (key == (int)Keys.F12)
|
||||
{
|
||||
WindowInfo wi = new WindowInfo();
|
||||
wi.SetAsPopup(this.Handle, "DevTools");
|
||||
browser.ShowDevTools(wi);
|
||||
}
|
||||
|
||||
//wi.SetAsChild(this.Handle);
|
||||
|
||||
if (key == (int)Keys.F10)
|
||||
ShowPopup("chrome://gpu/");
|
||||
|
||||
if (key == (int)Keys.F11)
|
||||
ShowPopup("chrome://version/");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Show Chrome Window
|
||||
private void ShowPopup(string url)
|
||||
{
|
||||
int w = 1600, h = 800;
|
||||
|
||||
Form frm = new Form();
|
||||
frm.Controls.Add(new ChromiumWebBrowser(url));
|
||||
frm.Height = h;
|
||||
frm.Width = w;
|
||||
frm.StartPosition = FormStartPosition.CenterScreen;
|
||||
frm.ShowDialog();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
namespace Client2020
|
||||
{
|
||||
partial class OpeningForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OpeningForm));
|
||||
this.StatusLBL = new System.Windows.Forms.Label();
|
||||
this.ErrorLBL = new System.Windows.Forms.Label();
|
||||
this.LogoCMS = new System.Windows.Forms.PictureBox();
|
||||
this.CloseLabel = new System.Windows.Forms.Label();
|
||||
this.LogoSCM = new System.Windows.Forms.PictureBox();
|
||||
this.VersionLBL = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoCMS)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoSCM)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// StatusLBL
|
||||
//
|
||||
this.StatusLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.StatusLBL.BackColor = System.Drawing.Color.White;
|
||||
this.StatusLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StatusLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(75)))), ((int)(((byte)(75)))), ((int)(((byte)(75)))));
|
||||
this.StatusLBL.Location = new System.Drawing.Point(0, 384);
|
||||
this.StatusLBL.Name = "StatusLBL";
|
||||
this.StatusLBL.Size = new System.Drawing.Size(502, 34);
|
||||
this.StatusLBL.TabIndex = 5;
|
||||
this.StatusLBL.Text = "...";
|
||||
this.StatusLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// ErrorLBL
|
||||
//
|
||||
this.ErrorLBL.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ErrorLBL.BackColor = System.Drawing.Color.White;
|
||||
this.ErrorLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.749999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ErrorLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
|
||||
this.ErrorLBL.Location = new System.Drawing.Point(501, 384);
|
||||
this.ErrorLBL.Name = "ErrorLBL";
|
||||
this.ErrorLBL.Size = new System.Drawing.Size(468, 34);
|
||||
this.ErrorLBL.TabIndex = 7;
|
||||
this.ErrorLBL.Text = "...";
|
||||
this.ErrorLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// LogoCMS
|
||||
//
|
||||
this.LogoCMS.BackColor = System.Drawing.Color.White;
|
||||
this.LogoCMS.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.LogoCMS.Image = global::Client2020.Properties.Resources.CM_ACTIVE_LOGO_INVERTED;
|
||||
this.LogoCMS.Location = new System.Drawing.Point(0, 31);
|
||||
this.LogoCMS.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.LogoCMS.Name = "LogoCMS";
|
||||
this.LogoCMS.Size = new System.Drawing.Size(969, 369);
|
||||
this.LogoCMS.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.LogoCMS.TabIndex = 6;
|
||||
this.LogoCMS.TabStop = false;
|
||||
this.LogoCMS.Visible = false;
|
||||
//
|
||||
// CloseLabel
|
||||
//
|
||||
this.CloseLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.CloseLabel.BackColor = System.Drawing.Color.White;
|
||||
this.CloseLabel.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.CloseLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.CloseLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(43)))), ((int)(((byte)(91)))));
|
||||
this.CloseLabel.Location = new System.Drawing.Point(922, 0);
|
||||
this.CloseLabel.Margin = new System.Windows.Forms.Padding(3, 0, 2, 0);
|
||||
this.CloseLabel.Name = "CloseLabel";
|
||||
this.CloseLabel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||
this.CloseLabel.Size = new System.Drawing.Size(47, 31);
|
||||
this.CloseLabel.TabIndex = 3;
|
||||
this.CloseLabel.Text = "X";
|
||||
this.CloseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
this.CloseLabel.Click += new System.EventHandler(this.CloseLabel_Click);
|
||||
this.CloseLabel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.CloseLabel_MouseClick);
|
||||
//
|
||||
// LogoSCM
|
||||
//
|
||||
this.LogoSCM.BackColor = System.Drawing.Color.White;
|
||||
this.LogoSCM.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.LogoSCM.Image = global::Client2020.Properties.Resources.MAESTRO_ACTIVE_LOGO;
|
||||
this.LogoSCM.Location = new System.Drawing.Point(0, 0);
|
||||
this.LogoSCM.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.LogoSCM.Name = "LogoSCM";
|
||||
this.LogoSCM.Size = new System.Drawing.Size(969, 400);
|
||||
this.LogoSCM.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.LogoSCM.TabIndex = 8;
|
||||
this.LogoSCM.TabStop = false;
|
||||
this.LogoSCM.Visible = false;
|
||||
//
|
||||
// VersionLBL
|
||||
//
|
||||
this.VersionLBL.BackColor = System.Drawing.Color.White;
|
||||
this.VersionLBL.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Bold);
|
||||
this.VersionLBL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(75)))), ((int)(((byte)(75)))), ((int)(((byte)(75)))));
|
||||
this.VersionLBL.Location = new System.Drawing.Point(0, 0);
|
||||
this.VersionLBL.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.VersionLBL.Name = "VersionLBL";
|
||||
this.VersionLBL.Size = new System.Drawing.Size(929, 31);
|
||||
this.VersionLBL.TabIndex = 0;
|
||||
this.VersionLBL.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// OpeningForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(969, 418);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.StatusLBL);
|
||||
this.Controls.Add(this.VersionLBL);
|
||||
this.Controls.Add(this.CloseLabel);
|
||||
this.Controls.Add(this.ErrorLBL);
|
||||
this.Controls.Add(this.LogoCMS);
|
||||
this.Controls.Add(this.LogoSCM);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "OpeningForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(0, 60, 0, 0);
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
|
||||
this.Text = "Loading Active Client";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.LoadingForm_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoCMS)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.LogoSCM)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Label StatusLBL;
|
||||
private System.Windows.Forms.Label ErrorLBL;
|
||||
private System.Windows.Forms.PictureBox LogoCMS;
|
||||
private System.Windows.Forms.Label CloseLabel;
|
||||
private System.Windows.Forms.PictureBox LogoSCM;
|
||||
private System.Windows.Forms.Label VersionLBL;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,347 @@
|
||||
using Client.Config;
|
||||
using Client.Config.SubModels;
|
||||
using Client.Utils;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
public partial class OpeningForm : Form
|
||||
{
|
||||
public const int TimerTest = 500;
|
||||
private HttpWebRequest ConnTestRequest;
|
||||
private HttpWebResponse ConnTestResponse;
|
||||
private String ConnTestError;
|
||||
private Task ConnTask;
|
||||
private ushort WaitDot = 1;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region WINDOW_START_&_BEHAVIOUR_METHOD
|
||||
|
||||
//Constructor
|
||||
public OpeningForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
if (Config.ClientConfig.IsSCM)
|
||||
{
|
||||
LogoCMS.Visible = false;
|
||||
LogoSCM.Visible = true;
|
||||
this.Icon = Client2020.Properties.Resources.MAESTRO_ACTIVE_ICON;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogoCMS.Visible = true;
|
||||
LogoSCM.Visible = false;
|
||||
}
|
||||
|
||||
//Set window Position
|
||||
this.Location = new Point((Screen.PrimaryScreen.Bounds.Width / 2) - (this.Width / 2), (Screen.PrimaryScreen.Bounds.Height / 2) - (this.Height / 2));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//OnLoad Method
|
||||
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
|
||||
ConnTask = Task.Run(() => BagroundWorker());
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Set the status & Messages Labels
|
||||
private void setStatus(String status, String Error)
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate () { StatusLBL.Text = status; });
|
||||
this.Invoke((MethodInvoker)delegate () { ErrorLBL.Text = Error; });
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusLBL.Text = status;
|
||||
ErrorLBL.Text = Error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Set Opacity of the Window
|
||||
private void setOpacity(double opacity)
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke((MethodInvoker)delegate () { this.Opacity = opacity; });
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Opacity = opacity;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Close the Window
|
||||
private void closeWindow()
|
||||
{
|
||||
//Invoke method if is needed or call the method in STD mode
|
||||
if (this.InvokeRequired)
|
||||
this.Invoke((MethodInvoker)delegate () { this.Close(); });
|
||||
else
|
||||
this.Close();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region CONNECTING_TASK_METHOD
|
||||
|
||||
//Main Void of the background Task
|
||||
private void BagroundWorker()
|
||||
{
|
||||
//Set App Opacity
|
||||
setOpacity(1);
|
||||
|
||||
//Show the loading state on the app ICON
|
||||
|
||||
//try to Request
|
||||
if (!Config.ConnectionConfig.BypassReadConfiguration)
|
||||
{
|
||||
setStatus("Connecting to " + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort, "");
|
||||
|
||||
Boolean error = false;
|
||||
do
|
||||
{
|
||||
if (error == true)
|
||||
return;
|
||||
} while (!testConnection(new Uri(Config.ConnectionConfig.ReadConfigUrl), out error));
|
||||
|
||||
}
|
||||
|
||||
//Set App Opacity (Only Siemens)
|
||||
if (Config.VendorHmiConfig.Type == 2)
|
||||
setOpacity(0.85);
|
||||
|
||||
//Open Nc Window
|
||||
setStatus("Opening NC Window... ", "");
|
||||
|
||||
if (Config.VendorHmiConfig.Enabled)
|
||||
if (!OpenNcWindow())
|
||||
return;
|
||||
|
||||
//Open Nc Window
|
||||
setStatus("Opening PROD Window... ", "");
|
||||
|
||||
if (Config.ProdSoftwareConfig.Enabled)
|
||||
{
|
||||
var exename = Path.GetFileNameWithoutExtension(Config.ProdSoftwareConfig.Path);
|
||||
if (!OpenProdWindow(Config.ProdSoftwareConfig.Path, exename))
|
||||
return;
|
||||
}
|
||||
|
||||
//Set App Opacity
|
||||
setOpacity(1);
|
||||
|
||||
//Close the Window
|
||||
closeWindow();
|
||||
}
|
||||
|
||||
|
||||
//Sub-Method used to test the connection
|
||||
private bool testConnection(Uri url, out Boolean error)
|
||||
{
|
||||
Boolean Connected = false;
|
||||
error = false;
|
||||
|
||||
//Try to connect
|
||||
if (url.Scheme == Uri.UriSchemeHttps || url.Scheme == Uri.UriSchemeHttp)
|
||||
{
|
||||
try
|
||||
{
|
||||
ConnTestRequest = (HttpWebRequest)WebRequest.Create(url);
|
||||
ConnTestRequest.Timeout = (int)(TimerTest);
|
||||
ConnTestRequest.KeepAlive = false;
|
||||
ConnTestResponse = (HttpWebResponse)ConnTestRequest.GetResponse();
|
||||
ConnTestError = ConnTestResponse.StatusCode.ToString();
|
||||
Connected = (ConnTestResponse.StatusCode == HttpStatusCode.OK) ? true : false;
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
Connected = false;
|
||||
ConnTestError = ex.Status.ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
Connected = true;
|
||||
|
||||
|
||||
//Check if it's connected
|
||||
if (Connected)
|
||||
{
|
||||
// var jsonDefinition = new { ncVendor = "", showHMI = "", ncIp = "", ncPort = "", prodEnabled = "", prodPath = "", extPrograms = "" };
|
||||
|
||||
var jsonDefinition = new ServerConfigModel();
|
||||
setStatus("Connected!", "");
|
||||
|
||||
//Read the configuration from Server
|
||||
try
|
||||
{
|
||||
using (var reader = new StreamReader(ConnTestResponse.GetResponseStream()))
|
||||
{
|
||||
var ConfigResponse = JsonConvert.DeserializeAnonymousType(reader.ReadToEnd(), jsonDefinition);
|
||||
|
||||
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();
|
||||
string ProdPath = ConfigResponse.ProdPath.ToUpper();
|
||||
string Autorun = ConfigResponse.Autorun.ToUpper();
|
||||
|
||||
|
||||
//Read the Server Type
|
||||
if (ncVendorName.Equals("DEMO"))
|
||||
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");
|
||||
error = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
//Read if the HMI must be visible
|
||||
if (ncVendorHMI.ToUpper().Equals("TRUE"))
|
||||
Config.VendorHmiConfig.Enabled = true;
|
||||
else
|
||||
Config.VendorHmiConfig.Enabled = false;
|
||||
|
||||
//Autorun
|
||||
if (Autorun.ToUpper().Equals("TRUE"))
|
||||
Config.ClientConfig.Autorun = true;
|
||||
else
|
||||
Config.ClientConfig.Autorun = false;
|
||||
|
||||
|
||||
//Read if the HMI must be visible
|
||||
if (ProdEnabled.ToUpper().Equals("TRUE"))
|
||||
Config.ProdSoftwareConfig.Enabled = true;
|
||||
else
|
||||
Config.ProdSoftwareConfig.Enabled = false;
|
||||
|
||||
// Paths
|
||||
Config.ProdSoftwareConfig.Path = ProdPath;
|
||||
Config.TextEditorPath = ConfigResponse.EditorPath;
|
||||
|
||||
if (ConfigResponse.ExtSoftwares != null)
|
||||
Config.ExtSoftwaresConfig = ConfigResponse.ExtSoftwares.ToArray();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
setStatus("Error!", "Error While loading the configuration");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//Set the Dot string
|
||||
String dot = "";
|
||||
for (int i = 0; i < WaitDot; i++) dot += ".";
|
||||
|
||||
//Set the status
|
||||
setStatus("Retry connection to " + Config.ConnectionConfig.ServerUrl + ":" + Config.ConnectionConfig.ServerPort + " " + dot, "Server not found (Error: " + ConnTestError + ")");
|
||||
if (WaitDot < 3)
|
||||
WaitDot++;
|
||||
else
|
||||
WaitDot = 0;
|
||||
|
||||
//Wait 500 ms
|
||||
Thread.Sleep(500);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Sub-Method used to open the NC Window
|
||||
private bool OpenNcWindow()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//Sub-Method used to open the NC Window
|
||||
private bool OpenProdWindow(string ExePath, string ExeName)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#region CLOSE_BUTTON_BEHAVIUR
|
||||
|
||||
//On click Method
|
||||
private void CloseLabel_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
//Exit
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//On Mouse Enter
|
||||
private void CloseLabel_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
CloseLabel.ForeColor = Color.DarkRed;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//On Mouse Leave
|
||||
private void CloseLabel_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
CloseLabel.ForeColor = Color.White;
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void CloseLabel_MouseClick(object sender, EventArgs e)
|
||||
{
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
private void CloseLabel_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
using Client.Config;
|
||||
using Client.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Management;
|
||||
using Microsoft.Win32;
|
||||
using CefSharp.WinForms;
|
||||
using CefSharp;
|
||||
|
||||
namespace Client2020
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
|
||||
static Mutex CmsStepClientMutex = new Mutex(true, "{66fa29db-925a-402b-a4c7-d3d780fb1bc3}");
|
||||
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
|
||||
//Crate General Exception Handler
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(GeneralExMethod);
|
||||
|
||||
//Read App Configuration
|
||||
readConfiguration();
|
||||
|
||||
//Initialize Chromium
|
||||
InitializeCefSettings();
|
||||
|
||||
//Check if is already running an instance of this application
|
||||
if (!CmsStepClientMutex.WaitOne(TimeSpan.Zero, true))
|
||||
ShowAlarmAndClose("Only one istance of " + Application.ProductName + " can be executed!");
|
||||
|
||||
|
||||
//Check Graphic Card in Energy Saving mode
|
||||
checkGraphicCard();
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
//Run the Loading Form
|
||||
Application.Run(new OpeningForm());
|
||||
|
||||
//Run the Main-Browser Form
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
|
||||
static private void InitializeCefSettings()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Config.ConnectionConfig.DeleteCahceFolderOnStartup && Directory.Exists(Constants.BROWSER_CACHE_FOLDER))
|
||||
{
|
||||
Directory.Delete(Constants.BROWSER_CACHE_FOLDER, true);
|
||||
}
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
ShowAlarmAndClose(E.Message);
|
||||
}
|
||||
|
||||
//Setup the CEF Folder
|
||||
var settings = new CefSettings();
|
||||
|
||||
if (Config.ClientConfig.RenderingMethod == Constants.Rendering.CPU)
|
||||
settings.CefCommandLineArgs.Add("--disable-gpu");
|
||||
|
||||
if (Config.ClientConfig.EnableTransparent == true)
|
||||
settings.CefCommandLineArgs.Add("--enable-transparent-visuals");
|
||||
|
||||
settings.CefCommandLineArgs.Add("--disable-pinch");
|
||||
settings.CefCommandLineArgs.Add("--enable-media-stream");
|
||||
settings.CefCommandLineArgs.Add("--enable-usermedia-screen-capture");
|
||||
settings.CefCommandLineArgs.Add("--no-proxy-server");
|
||||
settings.CefCommandLineArgs.Add("--ignore-certificate-errors-spki-list");
|
||||
settings.CefCommandLineArgs.Add("--ignore-ssl-errors");
|
||||
CefSharpSettings.FocusedNodeChangedEnabled = true;
|
||||
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
|
||||
|
||||
settings.LogSeverity = LogSeverity.Fatal;
|
||||
settings.CachePath = Constants.BROWSER_CACHE_FOLDER;
|
||||
|
||||
|
||||
//Initialize Cef
|
||||
try
|
||||
{
|
||||
Cef.Initialize(settings);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
ShowAlarmAndClose(E.Message);
|
||||
}
|
||||
}
|
||||
|
||||
#region CONFIG_METHODS
|
||||
|
||||
//Sub-Method used to read the configuration
|
||||
static private void readConfiguration()
|
||||
{
|
||||
//Read the Config
|
||||
try
|
||||
{
|
||||
ConfigController.ReadStartupConfig();
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
ShowAlarmAndClose(E.Message);
|
||||
}
|
||||
}
|
||||
|
||||
static private void checkGraphicCard()
|
||||
{
|
||||
|
||||
ManagementObjectSearcher VideoCardsQuery = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_VideoController");
|
||||
ManagementObjectCollection VideoCards = VideoCardsQuery.Get();
|
||||
//Check if i have more Cards
|
||||
if (VideoCards.Count > 1)
|
||||
{
|
||||
//Prepare List of Cards
|
||||
String Cardlist = "";
|
||||
foreach (ManagementObject card in VideoCards)
|
||||
{
|
||||
Cardlist = Cardlist + " - " + card["Name"] + "\n";
|
||||
}
|
||||
|
||||
//If is Win 10 check the Registry Key
|
||||
if (Environment.OSVersion.Version.Major == 10)
|
||||
{
|
||||
string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\DirectX\UserGpuPreferences";
|
||||
string valueName = System.Reflection.Assembly.GetExecutingAssembly().Location;
|
||||
Object value = Registry.GetValue(keyName, valueName, null);
|
||||
if (value == null || !value.Equals("GpuPreference=1;"))
|
||||
{
|
||||
//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);
|
||||
Application.Restart();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
private static void GeneralExMethod(object sender, UnhandledExceptionEventArgs args)
|
||||
{
|
||||
Exception e = (Exception)args.ExceptionObject;
|
||||
|
||||
//Create Directory
|
||||
if (!Directory.Exists(Client.Utils.Constants.CEF_EXCEPTIONLOG_PATH))
|
||||
Directory.CreateDirectory(Constants.CEF_EXCEPTIONLOG_PATH);
|
||||
|
||||
//Log the exception on File
|
||||
string path = Constants.CEF_EXCEPTIONLOG_PATH + @"\" + DateTime.Now.ToString("yyyy_MM_dd") + @".txt";
|
||||
using (StreamWriter sw = File.AppendText(path))
|
||||
sw.WriteLine(DateTime.Now.ToString("HH:mm:ss") + " | Class.Name: " + e.TargetSite.ReflectedType.Name + " | Method.Name: " + e.TargetSite.Name + " | Error: " + e.Message);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Method Used to Show an alarm and close the application
|
||||
public static void ShowAlarmAndClose(string Message)
|
||||
{
|
||||
MessageBox.Show(Message,
|
||||
Application.ProductName,
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error,
|
||||
MessageBoxDefaultButton.Button1
|
||||
);
|
||||
Environment.Exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Le informazioni generali relative a un assembly sono controllate dal seguente
|
||||
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
|
||||
// associate a un assembly.
|
||||
[assembly: AssemblyTitle("Active Client 2.0")]
|
||||
[assembly: AssemblyDescription("Active Client - Main HMI for CMS Machines")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("CMS Spa")]
|
||||
[assembly: AssemblyProduct("Active Client")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
|
||||
// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
|
||||
// COM, impostare su true l'attributo ComVisible per tale tipo.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
|
||||
[assembly: Guid("0780047f-12e4-4fcc-9748-6b23f0fd3711")]
|
||||
|
||||
// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
|
||||
//
|
||||
// Versione principale
|
||||
// Versione secondaria
|
||||
// Numero di build
|
||||
// Revisione
|
||||
//
|
||||
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
|
||||
// usando l'asterisco '*' come illustrato di seguito:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("2.0")]
|
||||
@@ -0,0 +1,133 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Il codice è stato generato da uno strumento.
|
||||
// Versione runtime:4.0.30319.42000
|
||||
//
|
||||
// Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
|
||||
// il codice viene rigenerato.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Client2020.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
|
||||
/// </summary>
|
||||
// Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder.
|
||||
// tramite uno strumento quale ResGen o Visual Studio.
|
||||
// Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen
|
||||
// con l'opzione /str oppure ricompilare il progetto VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Client2020.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le
|
||||
/// ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon ACTIVE_ICONA {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ACTIVE_ICONA", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ACTIVE_ICONA1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ACTIVE_ICONA1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CM_ACTIVE_LOGO {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CM_ACTIVE_LOGO", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap CM_ACTIVE_LOGO_INVERTED {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("CM_ACTIVE_LOGO_INVERTED", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon MAESTRO_ACTIVE_ICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MAESTRO_ACTIVE_ICON", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap MAESTRO_ACTIVE_LOGO {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MAESTRO_ACTIVE_LOGO", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cerca una risorsa localizzata di tipo System.Drawing.Icon simile a (Icona).
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon SinumerikHmi {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SinumerikHmi", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="SinumerikHmi" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SinumerikHmi.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CM_ACTIVE_LOGO" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CM_ACTIVE_LOGO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="CM_ACTIVE_LOGO_INVERTED" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\CM_ACTIVE_LOGO_INVERTED.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MAESTRO_ACTIVE_LOGO" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MAESTRO_ACTIVE_LOGO.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MAESTRO_ACTIVE_ICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SCM_MAESTRO_ACTIVE_ICONA.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ACTIVE_ICONA" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ACTIVE_ICONA.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ACTIVE_ICONA1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ACTIVE_ICONA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Client2020.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 428 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- Opzioni manifesto di Controllo dell'account utente
|
||||
Per modificare il livello di Controllo dell'account utente di Windows, sostituire il
|
||||
nodo requestedExecutionLevel con uno dei seguenti.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
Se si specifica l'elemento requestedExecutionLevel, la funzionalità Virtualizzazione file system e registro di sistema verrà disabilitata.
|
||||
Rimuovere questo elemento se l'applicazione richiede questa virtualizzazione per
|
||||
compatibilità con le versioni precedenti.
|
||||
-->
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Elenco delle versioni di Windows in cui è stata testata questa applicazione e
|
||||
per cui è stato previsto l'uso. Rimuovere il commento dagli elementi appropriati per
|
||||
fare in modo che Windows selezioni automaticamente l'ambiente più compatibile. -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- Indica che l'applicazione è sensibile ai valori DPI e non verrà scalata automaticamente da Windows in caso di
|
||||
valori DPI maggiori. Le applicazioni Windows Presentation Foundation (WPF) sono automaticamente sensibili ai valori DPI, pertanto non è necessario
|
||||
acconsentire esplicitamente. Con le applicazioni Windows Form destinate a .NET Framework 4.6 per cui è stato acconsentito esplicitamente a questa impostazione,
|
||||
è anche necessario impostare 'EnableWindowsFormsHighDpiAutoResizing' su 'true' nel relativo file app.config. -->
|
||||
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
|
||||
<!-- Abilita i temi per finestre di dialogo e controlli comuni di Windows (Windows XP e versioni successive) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="cef.redist.x64" version="84.4.1" targetFramework="net462" />
|
||||
<package id="cef.redist.x86" version="84.4.1" targetFramework="net462" />
|
||||
<package id="CefSharp.Common" version="84.4.10" targetFramework="net462" />
|
||||
<package id="CefSharp.WinForms" version="84.4.10" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props" Condition="Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props')" />
|
||||
<Import Project="..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props')" />
|
||||
<Import Project="..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props')" />
|
||||
<Import Project="..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{97474BC6-6405-4043-9BEE-E1BDE6B8D972}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Client_New</RootNamespace>
|
||||
<AssemblyName>Client_New</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<Optimize>true</Optimize>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.84.4.1\build\cef.redist.x64.props'))" />
|
||||
<Error Condition="!Exists('..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.84.4.1\build\cef.redist.x86.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.props'))" />
|
||||
<Error Condition="!Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.84.4.10\build\CefSharp.Common.targets')" />
|
||||
<Import Project="..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.84.4.10\build\CefSharp.WinForms.targets')" />
|
||||
</Project>
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
namespace Client_New
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1264, 609);
|
||||
this.ControlBox = false;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Name = "Form1";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Form1";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
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.Windows.Forms;
|
||||
using CefSharp.WinForms;
|
||||
|
||||
namespace Client_New
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
var browser = new ChromiumWebBrowser("http:\\localhost:9000");
|
||||
this.Controls.Add(browser);
|
||||
}
|
||||
|
||||
private void cursort(object sender, EventArgs e)
|
||||
{
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Client_New
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Client_New")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Client_New")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("97474bc6-6405-4043-9bee-e1bde6b8d972")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Client_New.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Client_New.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Client_New.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="cef.redist.x64" version="84.4.1" targetFramework="net461" />
|
||||
<package id="cef.redist.x86" version="84.4.1" targetFramework="net461" />
|
||||
<package id="CefSharp.Common" version="84.4.10" targetFramework="net461" />
|
||||
<package id="CefSharp.WinForms" version="84.4.10" targetFramework="net461" />
|
||||
</packages>
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Thermo.Active.Thermocamera")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Thermo.Active.Thermocamera")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("8d8ec91a-3a15-4a1d-951b-a35e7068debd")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8D8EC91A-3A15-4A1D-951B-A35E7068DEBD}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Thermo.Active.Thermocamera</RootNamespace>
|
||||
<AssemblyName>Thermo.Active.Thermocamera</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Flir.Atlas.Image, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Image.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Flir.Atlas.Live, Version=2.0.14266.1000, Culture=neutral, PublicKeyToken=caa391fd8e07c76b, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\FLIR Systems\FLIR Atlas SDK 6\bin\x86\Flir.Atlas.Live.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ThermoCamComunicator.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Thermo.Active.Model\Thermo.Active.Model.csproj">
|
||||
<Project>{631375DD-06D3-49BB-8130-D9DDB34C429D}</Project>
|
||||
<Name>Thermo.Active.Model</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Thermo.Cam.Utils\Thermo.Cam.Utils.csproj">
|
||||
<Project>{e4587942-498b-4aa7-9cc9-9304eb2d05c8}</Project>
|
||||
<Name>Thermo.Cam.Utils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,160 @@
|
||||
using Flir.Atlas.Live.Device;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.Model;
|
||||
using Thermo.Active.Model.DTOModels.ThWarmers;
|
||||
using Thermo.Cam.Utils;
|
||||
|
||||
namespace Thermo.Active.Thermocamera
|
||||
{
|
||||
public class ThermoCamComunicator
|
||||
{
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// Classe gestione ThermoCam (oggetti Image, metodi processing...)
|
||||
/// </summary>
|
||||
protected TCContr TCamLive = new TCContr(BASE_PATH, BASE_PATH);
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Public Fields
|
||||
|
||||
public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||
|
||||
/// <summary>
|
||||
/// Indica se la camera sia connessa
|
||||
/// </summary>
|
||||
public bool CameraIsConnected = false;
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Init classe
|
||||
/// </summary>
|
||||
/// <param name="isLive">Indica aabilitazione a live straming vs load dati storici</param>
|
||||
public ThermoCamComunicator(bool isLive)
|
||||
{
|
||||
// init classe controllo camera
|
||||
TCamLive = new TCContr($"{Constants.WEBSITE_DIRECTORY}\\{Constants.THERMO_DATA_FOLDER}", $"{BASE_PATH}\\{Constants.CONFIG_DIRECTORY}");
|
||||
|
||||
// aggancio evento connesisone/disconnessione
|
||||
TCamLive.eh_CameraConnStatusChanged += TCamLive_eh_CameraConnStatusChanged;
|
||||
|
||||
// avvio classe gestione thermocamera...
|
||||
TCamLive.tryReloadConf();
|
||||
|
||||
if (isLive)
|
||||
{
|
||||
// SOLO PER IL LIVE --> cerco camera
|
||||
TCamLive.discoveryCamera();
|
||||
}
|
||||
}
|
||||
|
||||
private void TCamLive_eh_CameraConnStatusChanged(object sender, Flir.Atlas.Live.ConnectionStatusChangedEventArgs e)
|
||||
{
|
||||
// salvo stato connessione
|
||||
CameraIsConnected = e.Status == ConnectionStatus.Connected;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Rilettura da file di tutti i dati
|
||||
/// </summary>
|
||||
/// <param name="fileName">Nome set file (originale + colorized + dati temperatura)</param>
|
||||
/// <returns></returns>
|
||||
protected bool loadData(string fileName)
|
||||
{
|
||||
bool done = false;
|
||||
try
|
||||
{
|
||||
done = TCamLive.fileLoad(fileName);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return done;
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// chiusura metodi legati a ThermoCam (discovery e connessione)
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
TCamLive.stopDiscovery();
|
||||
TCamLive.DisconnectCamera();
|
||||
TCamLive.DisposeCamera();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce lettura di tutti i punti richiesti (es centroidi riscaldi)
|
||||
/// </summary>
|
||||
/// <param name="setName">Nome dei dati da leggere, se "" --> live</param>
|
||||
/// <param name="points">Dictionary id richiesta + punto (es canali + relativi punti medi come centro calcolato della resistenza di riferimento del canale)</param>
|
||||
/// <param name="temp">Dizionario temperature come id + valore double in °C</param>
|
||||
/// <returns></returns>
|
||||
public bool readMultiTemperatures(string setName, Dictionary<int, ThermoPoint> points, out List<MeasurePoint> temp)
|
||||
{
|
||||
temp = new List<MeasurePoint>();
|
||||
// converto la richiesta in una lista di punti di misura...
|
||||
List<MeasurePoint> reqData = points.Select(item => new MeasurePoint()
|
||||
{
|
||||
Id = item.Key,
|
||||
Coords = new System.Drawing.Point(item.Value.X, item.Value.Y),
|
||||
Temperature = 0
|
||||
}).ToList();
|
||||
bool done = false;
|
||||
if (string.IsNullOrEmpty(setName) || setName == "_live")
|
||||
{
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// carico file vari...
|
||||
done = TCamLive.fileLoad(setName);
|
||||
}
|
||||
try
|
||||
{
|
||||
temp = TCamLive.getPointsTemperature(false, reqData);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
// fatto!
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Richiesta di acquisizione immagine FLIR (restituisce nome con cui sono stati salvati file)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string takePicture()
|
||||
{
|
||||
string imgName = "";
|
||||
try
|
||||
{
|
||||
// effettua chiamata x scattare immagine e SALVARE
|
||||
TCamLive.takePicture();
|
||||
TCamLive.calculateTarget();
|
||||
imgName = TCamLive.fileSave();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return imgName;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thermo.Active.Model.DTOModels.AlarmModels;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
|
||||
namespace Thermo.Active.CmsConnectGateway
|
||||
{
|
||||
public static class CMSConnectConstants
|
||||
{
|
||||
public const string IP_ADDR_LABEL = "IP_ADDRESS=";
|
||||
public const string GATEWAY_LABEL = "DEFAULT_GATEWAY=";
|
||||
public const string DNSIP_LABEL = "DNS_IP=";
|
||||
public const string DNSPREFIX_LABEL = "DNS_SUFFIX=";
|
||||
public const string PROXY_ADDR_LABEL = "PROXY=";
|
||||
public const string NO_PROXY_LABEL = "NO_PROXY=";
|
||||
public const string UNDEF_VALUE = "none";
|
||||
public const string CONNECTION_OK_VALUE = "OK";
|
||||
public const string CONNECTION_NOWEB_VALUE = "NO_WEB";
|
||||
public const string CONNECTION_NOPORT_VALUE = "NO_PORTS";
|
||||
|
||||
public const int REBOOT_MINUTES_MAX = 2;
|
||||
public const int REBOOT_MSWAIT_BETWEEN_OP = 500;
|
||||
|
||||
public const string ADMIN_COMMAND = "sudo ";
|
||||
public const string SSH_SET_PROXY_COMMAND = ADMIN_COMMAND + "./setProxy.sh ";
|
||||
public const string SSH_SET_DNSIP_COMMAND = ADMIN_COMMAND + "./setDnsIp.sh ";
|
||||
public const string SSH_SET_DNSSUFFIX_COMMAND = ADMIN_COMMAND + "./setDnsSuffix.sh ";
|
||||
public const string SSH_SET_NETWORK_COMMAND = ADMIN_COMMAND + "./setNetwork.sh ";
|
||||
public const string SSH_GET_NETWORK_COMMAND = ADMIN_COMMAND + "./getNetworkConfiguration.sh ";
|
||||
public const string SSH_GET_PROXY_COMMAND = ADMIN_COMMAND + "./getProxyConfiguration.sh ";
|
||||
public const string SSH_TEST_CONNECTION_COMMAND = ADMIN_COMMAND + "./testConnection.sh ";
|
||||
public const string SSH_GW_REBOOT_COMMAND = ADMIN_COMMAND + "./gatewayReboot.sh ";
|
||||
|
||||
public const string YAML_CONFIG_FILE = "./example-mconnect.conf.yaml";
|
||||
|
||||
|
||||
public const string CONNECT_UNDEFINED = "UNDEFINED";
|
||||
public const string CONNECT_MACHINE_STAUTS_EXE = "EXE";
|
||||
public const string CONNECT_MACHINE_STAUTS_READY = "READY";
|
||||
public const string CONNECT_MACHINE_STAUTS_SETUP = "SETUP";
|
||||
public const string CONNECT_MACHINE_STAUTS_FAIL = "FAIL";
|
||||
public const string CONNECT_MACHINE_STAUTS_POWEROFF = "POWER_OFF";
|
||||
|
||||
public const string CONNECT_PROC_STAUTS_EXE = "EXE";
|
||||
public const string CONNECT_PROC_STAUTS_READY = "READY";
|
||||
public const string CONNECT_PROC_STAUTS_HOLD = "HOLD";
|
||||
public const string CONNECT_PROC_STAUTS_FHOLD = "FEED_HOLD";
|
||||
public const string CONNECT_PROC_STAUTS_OSTOP = "OPTIONAL_STOP";
|
||||
public const string CONNECT_PROC_STAUTS_PSTOPPED = "PROGRAM_STOPPED";
|
||||
|
||||
public const string CONNECT_PROC_MODE_AUTO = "AUTOMATIC";
|
||||
public const string CONNECT_PROC_MODE_EDIT = "EDIT";
|
||||
public const string CONNECT_PROC_MODE_JOG = "MANUAL_JOG";
|
||||
|
||||
public static string ConvertThermoToConnectStatus(int status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 0: return CONNECT_MACHINE_STAUTS_POWEROFF;
|
||||
case 1: return CONNECT_MACHINE_STAUTS_READY;
|
||||
case 2: return CONNECT_MACHINE_STAUTS_EXE;
|
||||
case 4: return CONNECT_MACHINE_STAUTS_SETUP;
|
||||
case 8: return CONNECT_MACHINE_STAUTS_FAIL;
|
||||
case 16: return CONNECT_MACHINE_STAUTS_READY;
|
||||
case 128: return CONNECT_MACHINE_STAUTS_FAIL;
|
||||
default: return CONNECT_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
public static string ConvertThermoToConnectProcessStatus(int status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 0: return CONNECT_PROC_STAUTS_READY;
|
||||
case 1: return CONNECT_PROC_STAUTS_READY;
|
||||
case 2: return CONNECT_PROC_STAUTS_EXE;
|
||||
case 4: return CONNECT_PROC_STAUTS_FHOLD;
|
||||
case 8: return CONNECT_PROC_STAUTS_OSTOP;
|
||||
case 16: return CONNECT_PROC_STAUTS_HOLD;
|
||||
case 128: return CONNECT_PROC_STAUTS_HOLD;
|
||||
default: return CONNECT_UNDEFINED;
|
||||
}
|
||||
}
|
||||
public static string ConvertThermoToConnectProcessMode(int status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 1: return CONNECT_PROC_MODE_EDIT;
|
||||
case 2: return CONNECT_PROC_MODE_AUTO;
|
||||
case 4: return CONNECT_PROC_MODE_JOG;
|
||||
default: return CONNECT_UNDEFINED;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ConvertThermoToConnectPower(int status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 0: return false;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
public static bool ConvertThermoToConnectMachineAlarm(DTOAlarmsModel alarms)
|
||||
{
|
||||
return alarms.PlcAlarms.Count > 0;
|
||||
}
|
||||
|
||||
public static string ConvertThermoToConnectAlarms(DTOAlarmsModel alarms)
|
||||
{
|
||||
List<string> alms = new List<string>();
|
||||
foreach (DTOPlcAlarmModel alarm in alarms.PlcAlarms) {
|
||||
int severity = alarm.IsWarning ? 500 : 900;
|
||||
alms.Add(alarm.Id.ToString("D6") + "|" + severity);
|
||||
}
|
||||
return string.Join(",", alms);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
---------------------------------------------------------------
|
||||
------- MConnect Client SDK -------
|
||||
---------------------------------------------------------------
|
||||
|
||||
Libreria di utility per connessione con il cloud di Maestro Connect.
|
||||
|
||||
Le dipendenze inserite sono necessarie al funzionamento dell'SDK.
|
||||
|
||||
Sono inclusi a titolo di esempio due files:
|
||||
* example-mconnect.conf.yaml
|
||||
* example-NLog.config
|
||||
|
||||
Attenzione a configurare correttamente il file NLog.xml includendo il rule per la classe, vedere ad esempio il file example-NLog.config allegato.
|
||||
@@ -9,8 +9,9 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Thermo.Active.CmsConnectGateway</RootNamespace>
|
||||
<AssemblyName>Thermo.Active.CmsConnectGateway</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -30,23 +31,84 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="MConnectSDK, Version=1.2.2007.218, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MConnectSDK.1.2.2007.218\lib\net462\MConnectSDK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<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="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.6.7\lib\net45\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.1.16\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Net.IPNetwork, Version=2.4.0.126, Culture=neutral, PublicKeyToken=717343cc2c25edcf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\IPNetwork2.2.4.0.126\lib\net46\System.Net.IPNetwork.dll</HintPath>
|
||||
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\StackExchange.Redis.2.1.58\lib\net461\StackExchange.Redis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=4.0.2.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.4.7.3\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.IPNetwork, Version=2.5.226.0, Culture=neutral, PublicKeyToken=717343cc2c25edcf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\IPNetwork2.2.5.226\lib\net46\System.Net.IPNetwork.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Threading.Channels, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Channels.4.7.1\lib\net461\System.Threading.Channels.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="YamlDotNet, Version=7.0.0.0, Culture=neutral, PublicKeyToken=ec19458f3c15af5e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\YamlDotNet.7.0.0\lib\net45\YamlDotNet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Builders\iBuilder.cs" />
|
||||
<Compile Include="CMSConnectConstants.cs" />
|
||||
<Compile Include="GatewayAdapter.cs" />
|
||||
<Compile Include="Events\GatewayRebootEventHandlerArgs.cs" />
|
||||
<Compile Include="Exceptions\GatewayException.cs" />
|
||||
@@ -56,8 +118,23 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="example-mconnect.conf.yaml" />
|
||||
<None Include="example-NLog.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="README.txt" />
|
||||
</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.Model\Thermo.Active.Model.csproj">
|
||||
<Project>{631375dd-06d3-49bb-8130-d9ddb34c429d}</Project>
|
||||
<Name>Thermo.Active.Model</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.2" newVersion="4.0.2.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
|
||||
autoReload="true"
|
||||
throwExceptions="false"
|
||||
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >
|
||||
|
||||
|
||||
<!-- optional, add some variabeles
|
||||
https://github.com/nlog/NLog/wiki/Configuration-file#variables
|
||||
-->
|
||||
<variable name="myvar" value="myvalue"/>
|
||||
|
||||
<!--
|
||||
See https://github.com/nlog/nlog/wiki/Configuration-file
|
||||
for information on customizing logging rules and outputs.
|
||||
-->
|
||||
|
||||
<targets async="true">
|
||||
<target xsi:type="File"
|
||||
name="mconnect_sdk"
|
||||
fileName="${basedir}/logs/${shortdate}.log"
|
||||
layout="${longdate} ${uppercase:${level}} ${message}"
|
||||
/>
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="MConnectSDK.*" minlevel="Debug" writeTo="mconnect_sdk" />
|
||||
</rules>
|
||||
</nlog>
|
||||
@@ -0,0 +1,14 @@
|
||||
#File di conf per MConnectClientSDK
|
||||
conf:
|
||||
Client_ID: "test"
|
||||
MachineID: "cjpjwuas400cb0slxs5zfj4yh"
|
||||
PingTarget: "stg.api.maestroconnect.scmgroup.com"
|
||||
AliveTarget: "https://stg.api.maestroconnect.scmgroup.com/health"
|
||||
BaseUrl: "https://stg.api.maestroconnect.scmgroup.com/api"
|
||||
UploadUrl: "https://stg.api.maestroconnect.scmgroup.com/storage-api/backups"
|
||||
WebAppUrl: "https://stg.maestroconnect.scmgroup.com/settings/machine-activation?user_code={0}&machine_id={1}"
|
||||
MemoryLayer:
|
||||
Redis:
|
||||
ConnectionString: "127.0.0.1,abortConnect=false,ssl=false"
|
||||
DbIndex: 1
|
||||
Module: "MCC"
|
||||
@@ -1,5 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="IPNetwork2" version="2.4.0.126" targetFramework="net461" />
|
||||
<package id="IPNetwork2" version="2.5.226" targetFramework="net462" />
|
||||
<package id="MConnectSDK" version="1.2.2007.218" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net462" />
|
||||
<package id="NLog" version="4.6.7" targetFramework="net462" />
|
||||
<package id="Pipelines.Sockets.Unofficial" version="2.1.16" targetFramework="net462" />
|
||||
<package id="SSH.NET" version="2016.1.0" targetFramework="net461" />
|
||||
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="4.7.3" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net462" />
|
||||
<package id="YamlDotNet" version="7.0.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -0,0 +1,121 @@
|
||||
<ModelDesign>
|
||||
<Machine>
|
||||
<Property SymbolicName="Model" BrowseName="Model" DataType="ua:String" ValueRank="Scalar" Value="EIDOS" />
|
||||
<Property SymbolicName="Manufacturer" BrowseName="Manufacturer" DataType="ua:String" ValueRank="Scalar" Value="CMS Industries" />
|
||||
<Property SymbolicName="Serial" BrowseName="Serial" DataType="ua:String" ValueRank="Scalar" Value="9943" />
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="CNC_MACHINE" />
|
||||
<Property SymbolicName="BuildYear" BrowseName="BuildYear" DataType="ua:String" ValueRank="Scalar" Value="2020" />
|
||||
<Variable SymbolicName="Status" BrowseName="Status" DataType="ua:String" ValueRank="Scalar" Units="Enum" />
|
||||
<Variable SymbolicName="Alarm" BrowseName="Alarm" DataType="ua:Boolean" ValueRank="Scalar" Units="Bool" />
|
||||
<Variable SymbolicName="Emergency" BrowseName="Emergency" DataType="ua:Boolean" ValueRank="Scalar" Units="Bool" />
|
||||
<Variable SymbolicName="Power" BrowseName="Power" DataType="ua:Boolean" ValueRank="Scalar" Units="Bool" />
|
||||
<Variable SymbolicName="ActiveTime" BrowseName="ActiveTime" DataType="ua:Float" ValueRank="Scalar" Units="h" CmsDataType="CounterList" CmsDataIndex="001" CmsDataOpt="HOURS" />
|
||||
<Variable SymbolicName="ActiveWorkingTime" BrowseName="ActiveWorkingTime" DataType="ua:Float" ValueRank="Scalar" Units="h" CmsDataType="CounterList" CmsDataIndex="002" CmsDataOpt="HOURS" />
|
||||
|
||||
<Component Name="Cnc">
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="SIEMENS" />
|
||||
<Property SymbolicName="Version" BrowseName="Version" DataType="ua:String" ValueRank="Scalar" Value="S71500" />
|
||||
<Condition SymbolicName="Condition" BrowseName="Condition" DataType="ua:String" ValueRank="Scalar" Type="OffNormalAlarmState" Units="" />
|
||||
<Component Name="CncProcesses">
|
||||
<Component Name="01">
|
||||
<Variable SymbolicName="Mode" BrowseName="Mode" DataType="ua:String" ValueRank="Scalar" Units="Enum" />
|
||||
<Variable SymbolicName="SubMode" BrowseName="SubMode" DataType="ua:String" ValueRank="Scalar" Units="" />
|
||||
<Variable SymbolicName="Status" BrowseName="Status" DataType="ua:String" ValueRank="Scalar" Units="Enum" />
|
||||
|
||||
<Variable SymbolicName="FeedOverride" BrowseName="FeedOverride" DataType="ua:String" ValueRank="Scalar" Units="Perc" />
|
||||
<Variable SymbolicName="RapidOverride" BrowseName="RapidOverride" DataType="ua:String" ValueRank="Scalar" Units="Perc" />
|
||||
<Variable SymbolicName="SpeedOverride" BrowseName="SpeedOverride" DataType="ua:String" ValueRank="Scalar" Units="Perc" />
|
||||
|
||||
</Component>
|
||||
</Component>
|
||||
</Component>
|
||||
<Component Name="Plc">
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="SIEMENS" />
|
||||
<Property SymbolicName="Version" BrowseName="Version" DataType="ua:String" ValueRank="Scalar" Value="" />
|
||||
<Condition SymbolicName="Condition" BrowseName="Condition" DataType="ua:String" ValueRank="Scalar" Type="OffNormalAlarmState" Units="" />
|
||||
</Component>
|
||||
<Component Name="Hmi">
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="CMS Active" />
|
||||
<Variable SymbolicName="Version" BrowseName="Version" DataType="ua:String" ValueRank="Scalar" Value="" />
|
||||
<Variable SymbolicName="User" BrowseName="User" DataType="ua:String" ValueRank="Scalar" Units="" />
|
||||
</Component>
|
||||
<Component Name="Axes">
|
||||
<Component Name="01">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="X" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
<Component Name="02">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="Y" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
<Component Name="03">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="Z" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
<Component Name="04">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="V" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
<Component Name="05">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="B" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
<Component Name="06">
|
||||
<Property SymbolicName="Type" BrowseName="Type" DataType="ua:String" ValueRank="Scalar" Value="LINEAR" />
|
||||
<Property SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Value="C" />
|
||||
<Property SymbolicName="Role" BrowseName="Role" DataType="ua:String" ValueRank="Scalar" Value="MASTER" />
|
||||
<Property SymbolicName="MasterId" BrowseName="MasterId" DataType="ua:String" ValueRank="Scalar" Value="0" />
|
||||
<Variable SymbolicName="Load" BrowseName="Load" DataType="ua:Float" ValueRank="Scalar" Units="Perc"/>
|
||||
<Variable SymbolicName="CurrentPos" BrowseName="CurrentPos" DataType="ua:Float" ValueRank="Scalar" Units="mm" SGroup="2" DBand="1" VGroup="P" />
|
||||
<Variable SymbolicName="FeedRate" BrowseName="FeedRate" DataType="ua:Float" ValueRank="Scalar" Units="m/min" SGroup="4" DBand="1" VGroup="P" />
|
||||
</Component>
|
||||
</Component>
|
||||
<Component Name="OperatingGroups">
|
||||
</Component>
|
||||
<Component Name="AuxiliaryGroups">
|
||||
</Component>
|
||||
<Component Name="ProductionProcesses">
|
||||
<Component Name="01">
|
||||
<Component Name="Programs">
|
||||
<Component Name="01">
|
||||
<Variable SymbolicName="Name" BrowseName="Name" DataType="ua:String" ValueRank="Scalar" Units="" />
|
||||
<Variable SymbolicName="RepsTarget" BrowseName="RepsTarget" DataType="ua:String" ValueRank="Scalar" Units="" />
|
||||
<Variable SymbolicName="RepsDone" BrowseName="RepsDone" DataType="ua:String" ValueRank="Scalar" Units="" />
|
||||
</Component>
|
||||
</Component>
|
||||
</Component>
|
||||
</Component>
|
||||
<Component Name="Events">
|
||||
<Variable SymbolicName="Donwtimes" BrowseName="Donwtimes" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Production" BrowseName="Production" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Kpis" BrowseName="Kpis" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Tools" BrowseName="Tools" DataType="ua:String" ValueRank="Scalar" />
|
||||
<Variable SymbolicName="Messages" BrowseName="Messages" DataType="ua:String" ValueRank="Scalar" />
|
||||
</Component>
|
||||
</Machine>
|
||||
</ModelDesign>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
|
||||
<xs:element name="IOSetup">
|
||||
<!-- Heads -->
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:int"/>
|
||||
<xs:element name="category" type="io_type" />
|
||||
<xs:element name="bank" type="xs:string" />
|
||||
<xs:element name="position" type="xs:string" />
|
||||
<xs:element name="page" type="xs:string" />
|
||||
<xs:element name="wire" type="xs:string" />
|
||||
<xs:element name="profinet" type="xs:string" />
|
||||
<xs:element name="disableForce" type ="xs:boolean" minOccurs="0" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- Head Type -->
|
||||
<xs:simpleType name="io_type" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="DI" />
|
||||
<xs:enumeration value="DO" />
|
||||
<xs:enumeration value="AI"/>
|
||||
<xs:enumeration value="AO"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
|
||||
<xs:element name="inputsOperator">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element name="realValueModal" type="valuesType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="showValModal" type="showValType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="buttonsListModal" type="buttonsType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="simpleModal" type="modalType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:complexType name="valuesType">
|
||||
<xs:all>
|
||||
<xs:element name="id" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="showValType">
|
||||
<xs:all>
|
||||
<xs:element name="id" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="buttons">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="button">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:int"></xs:element>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="buttonsType">
|
||||
<xs:all>
|
||||
<xs:element name="id" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="buttons">
|
||||
<xs:complexType>
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="button">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:int"></xs:element>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="modalType">
|
||||
<xs:all>
|
||||
<xs:element name="id" minOccurs='1' maxOccurs='1'/>
|
||||
<xs:element name="title" type="translatedText" minOccurs='1' maxOccurs='1'/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Translations field Type -->
|
||||
<xs:complexType name="translatedText">
|
||||
<xs:sequence>
|
||||
<xs:element name="lang" type="langType" minOccurs="0" maxOccurs="unbounded">
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- lang field -->
|
||||
<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>
|
||||
</xs:schema>
|
||||
@@ -308,6 +308,7 @@
|
||||
"options_thermoregulator_9_setpoint": 0.0,
|
||||
"options_thermoregulator_10_enabled": 0.0,
|
||||
"options_thermoregulator_10_setpoint": 0.0
|
||||
"extraction_main_drawing_enabled": 0.0
|
||||
},
|
||||
"ChannelSetpoints": {
|
||||
"1": 0,
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"MeasPoints": [],
|
||||
"CameraAddress": "",
|
||||
"CameraName": "Camera Emulator",
|
||||
"DestPoints": {
|
||||
"Coords": [
|
||||
"0, 0",
|
||||
"1500, 0",
|
||||
"1500, 1200",
|
||||
"0, 1200"
|
||||
],
|
||||
"curr": 0
|
||||
},
|
||||
"OrigPoints": {
|
||||
"Coords": [
|
||||
"0, 0",
|
||||
"640, 0",
|
||||
"640, 480",
|
||||
"0, 480"
|
||||
],
|
||||
"curr": 4
|
||||
},
|
||||
"TargetRange": {
|
||||
"Max": 60.0,
|
||||
"Min": 0.0
|
||||
},
|
||||
"TargetSize": {
|
||||
"X": 1500,
|
||||
"Y": 1200
|
||||
}
|
||||
}
|
||||
@@ -40,4 +40,9 @@
|
||||
<allowExternalBrowser>true</allowExternalBrowser>
|
||||
<ncNeeded>false</ncNeeded>
|
||||
</users>
|
||||
<thermoHood>
|
||||
<enabled>true</enabled>
|
||||
<allowExternalBrowser>true</allowExternalBrowser>
|
||||
<ncNeeded>false</ncNeeded>
|
||||
</thermoHood>
|
||||
</areasConfig>
|
||||
@@ -82,6 +82,16 @@
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="thermoHood">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="enabled" type="xs:boolean" />
|
||||
<xs:element name="allowExternalBrowser" type="xs:boolean" />
|
||||
<xs:element name="ncNeeded" type="xs:boolean" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -1,27 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
enabledWord:
|
||||
bit 0 : Move Absolute [Ack]
|
||||
bit 1 : Jog inc + [Ack]
|
||||
bit 2 : Jog inc - [Ack]
|
||||
bit 3 : Allinea [Ack]
|
||||
bit 4 : Probe (Ack)
|
||||
bit 5 : SetSlavePosition (Ack)
|
||||
bit 6 : Azzera (Ack)
|
||||
bit 7 - bit14: not used
|
||||
bit15 : Target pos
|
||||
|
||||
Asse slave : 6
|
||||
Asse master gantry con proxy: 56
|
||||
Asse master gantry senza proxy: 2152
|
||||
Asse singolo con proxy: 16
|
||||
Asse singolo senza proxy: 2112
|
||||
-->
|
||||
<axes>
|
||||
<axis id="1" >X</axis>
|
||||
<axis id="2" >Y</axis>
|
||||
<axis id="3" >Z</axis>
|
||||
<axis id="4" >B</axis>
|
||||
<axis id="5" >C</axis>
|
||||
<axis id="6" >V</axis>
|
||||
<axis id="7" ></axis>
|
||||
<axis id="8" ></axis>
|
||||
<axis id="9" ></axis>
|
||||
<axis id="10" ></axis>
|
||||
<axis id="11" ></axis>
|
||||
<axis id="12" ></axis>
|
||||
<axis id="13" ></axis>
|
||||
<axis id="14" ></axis>
|
||||
<axis id="15" ></axis>
|
||||
<axis id="16" ></axis>
|
||||
<axis id="17" >SP</axis>
|
||||
<axis id="18" ></axis>
|
||||
<axis id="19" ></axis>
|
||||
<axis id="20" ></axis>
|
||||
<axis id="21" ></axis>
|
||||
<axis id="22" ></axis>
|
||||
<axis id="23" ></axis>
|
||||
<axis id="24" ></axis>
|
||||
<axis id="1" name="W1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="2" name="W2" type="LINEAR" enabled="true" master="1" enabledWord="6" />
|
||||
<axis id="3" name="W3" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="4" name="W4" type="LINEAR" enabled="false" master="1" enabledWord="6" />
|
||||
<axis id="5" name="Z1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="6" name="Z2" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="7" name="Z3" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="8" name="Z4" type="LINEAR" enabled="true" master="5" enabledWord="6" />
|
||||
<axis id="9" name="R1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="10" name="R2" type="LINEAR" enabled="false" master="9" enabledWord="6" />
|
||||
<axis id="11" name="S1" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="12" name="S2" type="LINEAR" enabled="false" master="11" enabledWord="6" />
|
||||
<axis id="13" name="CZ1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="14" name="CZ2" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="15" name="CZ3" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="16" name="CZ4" type="LINEAR" enabled="true" master="13" enabledWord="6" />
|
||||
<axis id="17" name="U1" type="LINEAR" enabled="true" master="0" enabledWord="56" />
|
||||
<axis id="18" name="U2" type="LINEAR" enabled="true" master="17" enabledWord="6" />
|
||||
<axis id="19" name="P" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="20" name="X" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="21" name="CX1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||
<axis id="22" name="CX2" type="LINEAR" enabled="true" master="21" enabledWord="6" />
|
||||
<axis id="23" name="CY1" type="LINEAR" enabled="true" master="0" enabledWord="2152" />
|
||||
<axis id="24" name="CY2" type="LINEAR" enabled="true" master="23" enabledWord="6" />
|
||||
<axis id="25" name="F11" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="26" name="F12" type="LINEAR" enabled="false" master="25" enabledWord="6" />
|
||||
<axis id="27" name="F21" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="28" name="F22" type="LINEAR" enabled="false" master="27" enabledWord="6" />
|
||||
<axis id="29" name="F31" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="30" name="F32" type="LINEAR" enabled="false" master="29" enabledWord="6" />
|
||||
<axis id="31" name="F41" type="LINEAR" enabled="true" master="0" enabledWord="2112" />
|
||||
<axis id="32" name="F42" type="LINEAR" enabled="false" master="31" enabledWord="6" />
|
||||
<axis id="33" name="E" type="LINEAR" enabled="true" master="0" enabledWord="16" />
|
||||
<axis id="34" name="M" type="LINEAR" enabled="false" master="0" enabledWord="0" />
|
||||
</axes>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="axes">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="axis" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="axisType" />
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:complexType name="axisType">
|
||||
<xs:attribute name="id" type="xs:integer" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="name" type="xs:string" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="type" type="axType" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="enabled" type="xs:boolean" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="master" type="xs:integer" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="enabledWord" type="xs:integer" use="required">
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="axType" final="restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="NA" />
|
||||
<xs:enumeration value="LINEAR" />
|
||||
<xs:enumeration value="ROTATIONAL" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<inputsOperator>
|
||||
<simpleModal>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<lang langKey="it">Attesa carico/scarico lastra</lang>
|
||||
<lang langKey="en">Waiting sheet load/unload</lang>
|
||||
</title>
|
||||
</simpleModal>
|
||||
<simpleModal>
|
||||
<id>2</id>
|
||||
<title>
|
||||
<lang langKey="it">Attesa carico/scarico pezzo</lang>
|
||||
<lang langKey="en">Waiting piece load/unload</lang>
|
||||
</title>
|
||||
</simpleModal>
|
||||
<simpleModal>
|
||||
<id>3</id>
|
||||
<title>
|
||||
<lang langKey="it">Pausa ciclo attiva</lang>
|
||||
<lang langKey="en">Pause cycle active</lang>
|
||||
</title>
|
||||
</simpleModal>
|
||||
<simpleModal>
|
||||
<id>4</id>
|
||||
<title>
|
||||
<lang langKey="it">Ciclo parcheggio in corso</lang>
|
||||
<lang langKey="en">Parking cycle ongoing</lang>
|
||||
</title>
|
||||
</simpleModal>
|
||||
<realValueModal>
|
||||
<id>10</id>
|
||||
<title>
|
||||
<lang langKey="en">External water</lang>
|
||||
<lang langKey="it">Acqua esterna</lang>
|
||||
</title>
|
||||
</realValueModal>
|
||||
<realValueModal>
|
||||
<id>11</id>
|
||||
<title>
|
||||
<lang langKey="en">External water</lang>
|
||||
<lang langKey="it">Acqua esterna</lang>
|
||||
</title>
|
||||
</realValueModal>
|
||||
<buttonsListModal>
|
||||
<id>6</id>
|
||||
<title>
|
||||
<lang langKey="en">External water</lang>
|
||||
<lang langKey="it">Acqua esterna</lang>
|
||||
</title>
|
||||
<buttons>
|
||||
<button>
|
||||
<value>3</value>
|
||||
<title>
|
||||
<lang langKey="en">External water</lang>
|
||||
<lang langKey="it">Acqua esterna</lang>
|
||||
</title>
|
||||
</button>
|
||||
<button>
|
||||
<value>4</value>
|
||||
<title>
|
||||
<lang langKey="en">External water</lang>
|
||||
<lang langKey="it">Acqua esterna</lang>
|
||||
</title>
|
||||
</button>
|
||||
</buttons>
|
||||
</buttonsListModal>
|
||||
</inputsOperator>
|
||||
@@ -8,6 +8,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>Frame</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>2</id>
|
||||
@@ -44,6 +46,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>Mould</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>6</id>
|
||||
@@ -53,6 +57,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>2</priority>
|
||||
<category>Heats</category>
|
||||
<subCategory_1>LowerHeaters</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>7</id>
|
||||
@@ -62,6 +68,8 @@
|
||||
<idParam>0</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Heats</category>
|
||||
<subCategory_1>UpperHeaters</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>8</id>
|
||||
@@ -71,9 +79,8 @@
|
||||
<idParam>80</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>3</priority>
|
||||
<category>Pyrometer</category>
|
||||
<category>Pyrometer</category>
|
||||
<subCategory_1>Pyrometer</subCategory_1>
|
||||
<subCategory_2></subCategory_2>
|
||||
</block>
|
||||
<block>
|
||||
<id>9</id>
|
||||
@@ -83,6 +90,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>4</priority>
|
||||
<category>Heats</category>
|
||||
<subCategory_1>DecomSustain</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>10</id>
|
||||
@@ -92,6 +101,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>5</priority>
|
||||
<category>Cycle</category>
|
||||
<subCategory_1>AcrylicFrame</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>11</id>
|
||||
@@ -110,6 +121,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Cycle</category>
|
||||
<subCategory_1>UpperOverheating</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>13</id>
|
||||
@@ -119,9 +132,7 @@
|
||||
<idParam>99</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>2</priority>
|
||||
<category>Drawing</category>
|
||||
<subCategory_1></subCategory_1>
|
||||
<subCategory_2></subCategory_2>
|
||||
<category>Drawing</category>
|
||||
</block>
|
||||
<block>
|
||||
<id>14</id>
|
||||
@@ -131,6 +142,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>Mould</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>15</id>
|
||||
@@ -149,6 +162,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>3</priority>
|
||||
<category>Cooling</category>
|
||||
<subCategory_1>Blowing</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>17</id>
|
||||
@@ -158,18 +173,19 @@
|
||||
<idParam>139</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>4</priority>
|
||||
<category>Cooling</category>
|
||||
<category>Cooling</category>
|
||||
<subCategory_1>Pyrometer</subCategory_1>
|
||||
<subCategory_2></subCategory_2>
|
||||
</block>
|
||||
<block>
|
||||
<id>19</id>
|
||||
<label>MB_Mod_Vuoto</label>
|
||||
<type>VACUUM</type>
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<idParam>189</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>5</priority>
|
||||
<category>Vacuum</category>
|
||||
<subCategory_1>Main</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>21</id>
|
||||
@@ -179,6 +195,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>6</priority>
|
||||
<category>Vacuum</category>
|
||||
<subCategory_1>Direct</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>23</id>
|
||||
@@ -187,8 +205,9 @@
|
||||
<section>FORMING</section>
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
|
||||
<priority>7</priority>
|
||||
<category>Vacuum</category>
|
||||
<subCategory_1>Aux</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>25</id>
|
||||
@@ -198,6 +217,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>8</priority>
|
||||
<category>Cooling</category>
|
||||
<subCategory_1>Nebulizer</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>26</id>
|
||||
@@ -216,6 +237,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>9</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>UpperPlate</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>29</id>
|
||||
@@ -225,6 +248,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
<category>UpperPlate</category>
|
||||
<subCategory_1>Cycle</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>30</id>
|
||||
@@ -234,6 +259,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>9</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>UpperPlate</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>31</id>
|
||||
@@ -243,6 +270,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>10</priority>
|
||||
<category>UpperPlate</category>
|
||||
<subCategory_1>Air</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>33</id>
|
||||
@@ -252,6 +281,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>11</priority>
|
||||
<category>UpperPlate</category>
|
||||
<subCategory_1>Vacuum</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>34</id>
|
||||
@@ -279,6 +310,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>10</priority>
|
||||
<category>UpperPlate</category>
|
||||
<subCategory_1>Extraction</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>38</id>
|
||||
@@ -297,6 +330,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>2</priority>
|
||||
<category>Extraction</category>
|
||||
<subCategory_1>Main</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>40</id>
|
||||
@@ -306,6 +341,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>Mould</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>41</id>
|
||||
@@ -324,6 +361,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>false</showDelay>
|
||||
<priority>1</priority>
|
||||
<category>Positions</category>
|
||||
<subCategory_1>Frame</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>43</id>
|
||||
@@ -360,6 +399,8 @@
|
||||
<idParam>-1</idParam>
|
||||
<showDelay>true</showDelay>
|
||||
<priority>6</priority>
|
||||
<category>Vacuum</category>
|
||||
<subCategory_1>Pre</subCategory_1>
|
||||
</block>
|
||||
<block>
|
||||
<id>47</id>
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
|
||||
<xs:element name="recipe">
|
||||
<!-- Heads -->
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<!-- Heads -->
|
||||
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
|
||||
@@ -1,64 +1,159 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<serverConfig>
|
||||
<ncConfig>
|
||||
<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/06/2020</installationDate>
|
||||
<mgiOption>false</mgiOption>
|
||||
<siemensKeyboardOption>false</siemensKeyboardOption>
|
||||
<machineNumberHasLetters>false</machineNumberHasLetters>
|
||||
</ncConfig>
|
||||
<softwareProdConfig>
|
||||
<enabled>false</enabled>
|
||||
<path>C:\Program Files\Notepad++\notepad++.exe</path>
|
||||
</softwareProdConfig>
|
||||
<serverConfig>
|
||||
<serverPort>9000</serverPort>
|
||||
<serverAddress>*</serverAddress>
|
||||
<language>en</language>
|
||||
<enableDirectoryBrowsing>true</enableDirectoryBrowsing>
|
||||
<databaseAddress>localhost</databaseAddress>
|
||||
<autoOpenCmsClient>false</autoOpenCmsClient>
|
||||
<textEditorPath>C:\Windows\System32\notepad.exe</textEditorPath>
|
||||
<MTCFolderPath>C:\CMS\MTC\ADAPTER\</MTCFolderPath>
|
||||
<MTCApplicationName>SCMA</MTCApplicationName>
|
||||
<CMSConnectReady>false</CMSConnectReady>
|
||||
<maxAlarmsRows>50000</maxAlarmsRows>
|
||||
<alarmToDelete>5000</alarmToDelete>
|
||||
</serverConfig>
|
||||
<extSoftwares>
|
||||
<software>
|
||||
<longName>Calculator</longName>
|
||||
<shortName>CAL</shortName>
|
||||
<path>C:\Windows\System32\calc.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>true</inMainMenuBar>
|
||||
</software>
|
||||
<software>
|
||||
<longName>NotePad</longName>
|
||||
<shortName>NP</shortName>
|
||||
<path>C:\Windows\System32\notepad.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>true</inMainMenuBar>
|
||||
</software>
|
||||
<software>
|
||||
<longName>MsPaint</longName>
|
||||
<shortName>PA</shortName>
|
||||
<path>C:\Windows\System32\mspaint.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>false</inMainMenuBar>
|
||||
</software>
|
||||
<software>
|
||||
<longName>NotePad2</longName>
|
||||
<shortName>NP2</shortName>
|
||||
<path>C:\Windows\System32\notepad.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>false</inMainMenuBar>
|
||||
</software>
|
||||
<ncConfig>
|
||||
<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:\CMS\Recipes\</sharedPath>
|
||||
<sharedName>//PARTPRG:/</sharedName>
|
||||
<installationDate>01/06/2020</installationDate>
|
||||
<mgiOption>false</mgiOption>
|
||||
<siemensKeyboardOption>false</siemensKeyboardOption>
|
||||
<machineNumberHasLetters>false</machineNumberHasLetters>
|
||||
</ncConfig>
|
||||
<softwareProdConfig>
|
||||
<enabled>false</enabled>
|
||||
<path>C:\Program Files\Notepad++\notepad++.exe</path>
|
||||
</softwareProdConfig>
|
||||
<serverConfig>
|
||||
<serverPort>9000</serverPort>
|
||||
<serverAddress>*</serverAddress>
|
||||
<language>en</language>
|
||||
<enableDirectoryBrowsing>true</enableDirectoryBrowsing>
|
||||
<databaseAddress>localhost</databaseAddress>
|
||||
<autoOpenCmsClient>false</autoOpenCmsClient>
|
||||
<textEditorPath>C:\Windows\System32\notepad.exe</textEditorPath>
|
||||
<MTCFolderPath>C:\CMS\MTC\ADAPTER\</MTCFolderPath>
|
||||
<MTCApplicationName>SCMA</MTCApplicationName>
|
||||
<CMSConnectReady>true</CMSConnectReady>
|
||||
<maxAlarmsRows>50000</maxAlarmsRows>
|
||||
<alarmToDelete>5000</alarmToDelete>
|
||||
<maxSheetHistoryRows>10000</maxSheetHistoryRows>
|
||||
<sheetHistoryToDelete>500</sheetHistoryToDelete>
|
||||
</serverConfig>
|
||||
<extSoftwares>
|
||||
<software>
|
||||
<longName>HC-DIAG2</longName>
|
||||
<shortName>HD2</shortName>
|
||||
<path>C:\Program Files (x86)\HC-DIAG2\HC-DIAG2.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>false</inMainMenuBar>
|
||||
</software>
|
||||
<software>
|
||||
<longName>Calc</longName>
|
||||
<shortName>NP</shortName>
|
||||
<path>C:\Windows\System32\calc.exe</path>
|
||||
<arguments></arguments>
|
||||
<inMainMenuBar>false</inMainMenuBar>
|
||||
</software>
|
||||
</extSoftwares>
|
||||
<additionalParameters>
|
||||
<entry>
|
||||
<key>warmerPlanSizeX</key>
|
||||
<value>1500</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>warmerPlanSizeY</key>
|
||||
<value>1200</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>flirImgX</key>
|
||||
<value>1000</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>flirImgY</key>
|
||||
<value>803</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>resistSizeX</key>
|
||||
<value>125</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>resistSizeY</key>
|
||||
<value>60</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>warmerAutocompStartValue</key>
|
||||
<value>50</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>warmerAutocompStep</key>
|
||||
<value>5</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>LoaderXsize</key>
|
||||
<value>1400</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>loaderSuckersNumber</key>
|
||||
<value>12</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>ThermoCameraXpos</key>
|
||||
<value>93</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>ThermoCameraYpos</key>
|
||||
<value>728</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>ThermoCameraXdim</key>
|
||||
<value>828</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>ThermoCameraYdim</key>
|
||||
<value>1004</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>RangeTempMin</key>
|
||||
<value>0</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>RangeTempMax</key>
|
||||
<value>100</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>EnableThermocam</key>
|
||||
<value>true</value>
|
||||
</entry>
|
||||
</additionalParameters>
|
||||
<unitOfMeasures>
|
||||
<unitOfMeasure id="0" value="" />
|
||||
<unitOfMeasure id="1" value="mm" />
|
||||
<unitOfMeasure id="2" value="Nm" />
|
||||
<unitOfMeasure id="3" value="°C" />
|
||||
<unitOfMeasure id="4" value="mm/s" />
|
||||
<unitOfMeasure id="5" value="ms" />
|
||||
<unitOfMeasure id="6" value="s" />
|
||||
<unitOfMeasure id="7" value="%" />
|
||||
</unitOfMeasures>
|
||||
<sampling>
|
||||
<thread name="alarms" value="200" />
|
||||
<thread name="axis" value="200" />
|
||||
<thread name="channelsIoFast" value="300" />
|
||||
<thread name="channelsIoSlow" value="5000" />
|
||||
<thread name="area" value="2500" />
|
||||
<thread name="confReq" value="2000" />
|
||||
<thread name="expMan" value="30000" />
|
||||
<thread name="functionEnab" value="300" />
|
||||
<thread name="gauges" value="500" />
|
||||
<thread name="m154" value="500" />
|
||||
<thread name="mCommands" value="250" />
|
||||
<thread name="powerOn" value="500" />
|
||||
<thread name="prodCycle" value="1000" />
|
||||
<thread name="prodInfo" value="1000" />
|
||||
<thread name="prodPanel" value="500" />
|
||||
<thread name="modules" value="200" />
|
||||
<thread name="recipe" value="1000" />
|
||||
<thread name="scada" value="1000" />
|
||||
<thread name="statusCommand" value="250" />
|
||||
<thread name="FlirCamera" value="500" />
|
||||
<thread name="userSK" value="250" />
|
||||
<thread name="warmers" value="2000" />
|
||||
<thread name="watchdog" value="250" />
|
||||
<thread name="stats" value="2000" />
|
||||
</sampling>
|
||||
</serverConfig>
|
||||
@@ -42,6 +42,8 @@
|
||||
<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="maxSheetHistoryRows" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="sheetHistoryToDelete" type="xs:int" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="CMSConnectReady" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
@@ -63,10 +65,61 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="additionalParameters" >
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="key" type="xs:string" />
|
||||
<xs:element name="value" type="xs:string" />
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="unitOfMeasures">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="unitOfMeasure" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="umType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="sampling" >
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="thread" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="sampleType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:complexType name="umType">
|
||||
<xs:attribute name="id" type="xs:integer" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="value" type="xs:string" use="required">
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="sampleType">
|
||||
<xs:attribute name="name" type="xs:string" use="required">
|
||||
</xs:attribute>
|
||||
<xs:attribute name="value" type="xs:integer" use="required">
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="ncType" final="restriction" >
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="DEMO" />
|
||||
|
||||