diff --git a/README.md b/README.md
index 4bcf4586..53c7ca38 100644
--- a/README.md
+++ b/README.md
@@ -275,7 +275,7 @@ There are some programs in folder *test' to test the TCP communication:
### **WORK IN PROGRESS**
-->
## Changelog
-### **WORK IN PROGRESS**
+### 4.0.3 (2022-03-21)
* (bluefox) Updated serial port package
* (bluefox) Minimal node.js version is 12
diff --git a/admin/asset-manifest.json b/admin/asset-manifest.json
index 648187e6..a7d63128 100644
--- a/admin/asset-manifest.json
+++ b/admin/asset-manifest.json
@@ -1,8 +1,8 @@
{
"files": {
"main.css": "./static/css/main.c9480e85.chunk.css",
- "main.js": "./static/js/main.8ffc33a5.chunk.js",
- "main.js.map": "./static/js/main.8ffc33a5.chunk.js.map",
+ "main.js": "./static/js/main.1f40a2d2.chunk.js",
+ "main.js.map": "./static/js/main.1f40a2d2.chunk.js.map",
"runtime-main.js": "./static/js/runtime-main.0b37ba43.js",
"runtime-main.js.map": "./static/js/runtime-main.0b37ba43.js.map",
"static/css/2.67ef5efb.chunk.css": "./static/css/2.67ef5efb.chunk.css",
@@ -18,6 +18,6 @@
"static/css/2.67ef5efb.chunk.css",
"static/js/2.b0873898.chunk.js",
"static/css/main.c9480e85.chunk.css",
- "static/js/main.8ffc33a5.chunk.js"
+ "static/js/main.1f40a2d2.chunk.js"
]
}
\ No newline at end of file
diff --git a/admin/index_m.html b/admin/index_m.html
index 38fd87cb..6aa70977 100644
--- a/admin/index_m.html
+++ b/admin/index_m.html
@@ -1 +1 @@
-
Modbus
\ No newline at end of file
+Modbus
\ No newline at end of file
diff --git a/admin/static/js/main.8ffc33a5.chunk.js b/admin/static/js/main.1f40a2d2.chunk.js
similarity index 99%
rename from admin/static/js/main.8ffc33a5.chunk.js
rename to admin/static/js/main.1f40a2d2.chunk.js
index d8d457c8..603d6491 100644
--- a/admin/static/js/main.8ffc33a5.chunk.js
+++ b/admin/static/js/main.1f40a2d2.chunk.js
@@ -1,2 +1,2 @@
-(this["webpackJsonpmodebus-admin"]=this["webpackJsonpmodebus-admin"]||[]).push([[0],{172:function(e){e.exports=JSON.parse('[{"value":"","title":""},{"value":"uint16be","title":"Unsigned 16 bit (Big Endian)"},{"value":"uint16le","title":"Unsigned 16 bit (Little Endian)"},{"value":"int16be","title":"Signed 16 bit (Big Endian)"},{"value":"int16le","title":"Signed 16 bit (Little Endian)"},{"value":"uint32be","title":"Unsigned 32 bit (Big Endian)"},{"value":"uint32le","title":"Unsigned 32 bit (Little Endian)"},{"value":"uint32sw","title":"Unsigned 32 bit (Big Endian Word Swap)"},{"value":"uint32sb","title":"Unsigned 32 bit (Big Endian Byte Swap)"},{"value":"int32be","title":"Signed 32 bit (Big Endian)"},{"value":"int32le","title":"Signed 32 bit (Little Endian)"},{"value":"int32sw","title":"Signed 32 bit (Big Endian Word Swap)"},{"value":"int32sb","title":"Signed 32 bit (Big Endian Byte Swap)"},{"value":"uint64be","title":"Unsigned 64 bit (Big Endian)"},{"value":"uint64le","title":"Unsigned 64 bit (Little Endian)"},{"value":"uint8be","title":"Unsigned 8 bit (Big Endian)"},{"value":"uint8le","title":"Unsigned 8 bit (Little Endian)"},{"value":"int8be","title":"Signed 8 bit (Big Endian)"},{"value":"int8le","title":"Signed 8 bit (Little Endian)"},{"value":"floatbe","title":"Float (Big Endian)"},{"value":"floatle","title":"Float (Little Endian)"},{"value":"floatsw","title":"Float (Big Endian Word Swap)"},{"value":"floatsb","title":"Float (Big Endian Byte Swap)"},{"value":"doublebe","title":"Double (Big Endian)"},{"value":"doublele","title":"Double (Little Endian)"},{"value":"string","title":"String (Zero-end)"},{"value":"stringle","title":"String (Little Endian, Zero-end)"}]')},317:function(e){e.exports=JSON.parse('[{"name":"type","type":"select","title":"TCP/Serial RTU","options":[{"value":"tcp","title":"TCP"},{"value":"serial","title":"Serial"},{"value":"tcprtu","title":"RTU over TCP"}]},{"name":"comName","type":"ports","title":"Port"},{"name":"baudRate","type":"select","title":"Baud rate","options":[{"value":"110","title":"110"},{"value":"150","title":"150"},{"value":"300","title":"300"},{"value":"600","title":"600"},{"value":"1200","title":"1200"},{"value":"2400","title":"2400"},{"value":"4800","title":"4800"},{"value":"9600","title":"9600"},{"value":"19200","title":"19200"},{"value":"38400","title":"38400"},{"value":"56000","title":"56000"},{"value":"57600","title":"57600"},{"value":"115200","title":"115200"}]},{"name":"dataBits","type":"select","title":"Data bits","options":[{"value":"8","title":"8"},{"value":"7","title":"7"},{"value":"6","title":"6"},{"value":"5","title":"5"}]},{"name":"stopBits","type":"select","title":"Stop bits","options":[{"value":"1","title":"1"},{"value":"2","title":"2"}]},{"name":"parity","type":"select","title":"Parity","options":[{"value":"none","title":"none"},{"value":"even","title":"even"},{"value":"mark","title":"mark"},{"value":"odd","title":"odd"},{"value":"space","title":"space"}]},{"name":"bind","type":"text","title":"Partner IP Address"},{"name":"port","type":"number","title":"Port"},{"name":"deviceId","type":"text","title":"Device ID"},{"name":"multiDeviceId","type":"checkbox","title":"Multi device IDs"},{"name":"slave","type":"select","title":"Type","options":[{"value":"0","title":"Master"},{"value":"1","title":"Slave"}]}]')},318:function(e){e.exports=JSON.parse('[{"name":"showAliases","type":"checkbox","title":"Use aliases as address"},{"name":"directAddresses","type":"checkbox","title":"Use direct addresses by aliases"},{"name":"doNotRoundAddressToWord","type":"checkbox","title":"Do not align addresses to word"},{"name":"doNotUseWriteMultipleRegisters","type":"checkbox","title":"Do not use \\"Write multiple registers\\"","help":"Write only with FC5/FC6"},{"name":"onlyUseWriteMultipleRegisters","type":"checkbox","title":"Use only \\"Write multiple registers\\"","help":"Write only with FC15/FC16"},{"name":"round","type":"number","title":"Round Real to"},{"name":"poll","type":"number","title":"Poll delay","dimension":"ms"},{"name":"recon","type":"number","title":"Reconnect time","dimension":"ms"},{"name":"timeout","type":"number","title":"Read timeout","dimension":"ms"},{"name":"pulsetime","type":"number","title":"Pulse time","dimension":"ms"},{"name":"waitTime","type":"number","title":"Wait time","dimension":"ms"},{"name":"maxBlock","type":"number","title":"Max read request length","dimension":"registers"},{"name":"maxBoolBlock","type":"number","title":"Max read request length (booleans)","dimension":"registers"},{"name":"readInterval","type":"number","title":"Read interval","dimension":"ms"},{"name":"writeInterval","type":"number","title":"Write interval","dimension":"ms"},{"name":"alwaysUpdate","type":"checkbox","title":"Update unchanged states"},{"name":"doNotIncludeAdrInId","type":"checkbox","title":"do not include address in ID"},{"name":"preserveDotsInId","type":"checkbox","title":"preserve dots in ID"}]')},332:function(e){e.exports=JSON.parse('{"a":"4.0.2"}')},347:function(e,t,a){},412:function(e){e.exports=JSON.parse('{"Add DB":"Add DB","Address":"Address","All entries will be deleted. Are you sure?":"All entries will be deleted. Are you sure?","Are you sure?":"Are you sure?","Baud rate":"Baud rate","CW":"CW","Cancel":"Cancel","Close":"Close","Coils":"Coils","Connection parameters":"Connection parameters","Cyclic write":"Cyclic write","Data bits":"Data bits","Delete":"Delete","Delete address":"Delete address","Delete all entries":"Delete all entries","Description":"Description","Device ID":"Device ID","Do not align addresses to word":"Do not align addresses to 16 bits","Enable polling of data point":"Poll this data point periodically","Export":"Export","Export to CSV":"Export to CSV","Factor":"Factor","General":"General","Holding Registers":"Holding Registers","Import":"Import","Import DB file":"Import DB file","Import from CSV":"Import from CSV","Import symbols file":"Import symbols file","Input Registers":"Input Registers","Inputs":"Discrete Inputs","Length":"Length","Load Symbols":"Load symbols","Master":"Master","Max read request length (booleans)":"Max read request length (booleans)","Max read request length":"Max read request length (float)","Multi device IDs":"Multiple device IDs","Name":"Name","Offset":"Offset","PLC Connection":"PLC Connection","PLC IP Address":"PLC IP Address","PLC Rack":"PLC Rack","PLC Slot":"PLC Slot","Parity":"Parity","Partner IP Address":"Partner IP Address","Poll delay":"Data polling interval","Port":"Port","Pulse time":"Pulse time","RTU over TCP":"RTU over TCP","RW":"RW","Read timeout":"Read timeout","Reconnect time":"Reconnect delay","Role":"Role","Room":"Room","Round Real to":"Round real to","SF":"SF","Say \\"yes\\" for the next minute":"\\"Yes\\" for the next minute","Select port":"Select serial port","Serial":"Serial","Slave":"Slave","Start address":"Start address","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serial RTU","Text copied to clipboard. Click to close the window":"Text copied to clipboard. Click to close the window.","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Toggle poll","Type":"Type","Unit":"Unit","Update unchanged states":"Update unchanged states","Use aliases as address":"Use aliases","Use direct addresses by aliases":"Use direct addresses (when aliases)","WP":"WP","Wait time":"Wait time","Write access allowed":"Write access allowed","Write interval":"Write interval","deviceId":"Slave ID","do not include address in ID":"Do not include address in ID","formula":"Formula","ms":"ms","poll":"Poll","preserve dots in ID":"Preserve dots in ID","registers":"registers","Discrete inputs":"Discrete inputs","Binary inputs (read-only)":"Binary inputs (read-only)","Binary inputs and outputs":"Binary inputs and outputs","Input registers (8-64 bit values, read-only)":"Input registers (8-64 bit values, read-only)","Input/output registers (8-64 bit values)":"Input/output registers (8-64 bit values)","Add line":"Add line","Edit as TSV (Tab separated values)":"Edit as TSV (Tab separated values)","Edit mode":"Edit mode","Toggle extended mode":"Toggle extended mode","Formula":"Formula","Change all":"Change all","Poll":"Poll","Delete all":"Delete all","Nothing":"Nothing","Delete item":"Delete item","Don\'t show this message in 5 minutes":"Don\'t show this message for 5 minutes","Are you sure to delete item with address \\"%s\\"?":"Are you sure to delete item with address \\"%s\\"?","Store this value as scaling factor":"Store this value as scaling factor","Write pulses (true \u2192 false edge)":"Write pulses (true \u2192 false edge)","Delete all items":"Delete all items","Are you sure to delete all items?":"Are you sure to delete all items?","Edit data as TSV":"Edit data as TSV","You can copy, paste and edit data as TSV.":"You can copy, paste and edit data as TSV.","Copy to clipboard":"Copy to clipboard","TSV was copied to clipboard":"Data was copied to clipboard","Do not use \\"Write multiple registers\\"":"Do not use \\"Write multiple registers\\"","Use only \\"Write multiple registers\\"":"Use only \\"Write multiple registers\\"","Write only with FC5/FC6":"Write only with FC5/FC6","Write only with FC15/FC16":"Write only with FC15/FC16","Slave IP address":"Slave IP address","Listen on all IPs":"Listen on all IPs","Read interval":"Read interval","Slave ID":"Slave ID"}')},413:function(e){e.exports=JSON.parse('{"Add DB":"DB hinzuf\xfcgen","Address":"Adresse","All entries will be deleted. Are you sure?":"Sollen wirklich alle Eintr\xe4ge gel\xf6scht werden?","Are you sure?":"Wirklich sicher?","Baud rate":"Baud rate","CW":"CW","Cancel":"Abbrechen","Close":"Schlie\xdfen","Coils":"Diskrete Ausg\xe4nge","Connection parameters":"Verbindungsparameter","Cyclic write":"Zyklisch schreiben","Data bits":"Data Bits","Delete":"L\xf6schen","Delete address":"Adresse l\xf6schen","Delete all entries":"Alle Eintr\xe4ge l\xf6schen","Description":"Beschreibung","Device ID":"Ger\xe4te ID","Do not align addresses to word":"Die Adressen nicht auf 16 Bits ausrichten","Enable polling of data point":"Datenpunkt zyklisch abfragen","Export":"Export","Export to CSV":"Als CSV exportieren","Factor":"Faktor","General":"Allgemein","Holding Registers":"Holding-register","Import":"Import","Import DB file":"DB-Datei importieren","Import from CSV":"Import aus CSV","Import symbols file":"Symboldatei Importieren","Input Registers":"Eingangsregister","Inputs":"Diskrete Eing\xe4nge","Length":"L\xe4nge","Load Symbols":"Symbole laden","Master":"Master","Max read request length (booleans)":"Max Leseanforderungsl\xe4nge (Booleans)","Max read request length":"Max Leseanforderungsl\xe4nge (Float)","Multi device IDs":"Mehrere Ger\xe4te-IDs","Name":"Name","Offset":"Offset","PLC Connection":"SPS Verbindung","PLC IP Address":"SPS IP Adresse","PLC Rack":"SPS Rack","PLC Slot":"SPS Slot","Parity":"Parit\xe4t","Partner IP Address":"Partner IP-Adresse","Poll delay":"Datenabfrageintervall","Port":"Port","Pulse time":"Impluszeit","RTU over TCP":"RTU \xfcber TCP","RW":"RW","Read timeout":"Wartezeit Lesend","Reconnect time":"Wartezeit bis zum erneuten verbinden ","Role":"Rolle","Room":"Raum","Round Real to":"Zahlen runden auf","SF":"SF","Say \\"yes\\" for the next minute":"\\"Ja\\" f\xfcr die n\xe4chste Minute","Select port":"Serielle Schnittstelle ausw\xe4hlen","Serial":"Seriell","Slave":"Slave","Start address":"Start-Adresse","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serielle RTU","Text copied to clipboard. Click to close the window":"Der Text wurde in die Zwischenablage kopiert. Klicken um das Fenster zu schlie\xdfen.","Toggle RW":"RW umschalten","Toggle WP":"WP umschalten","Toggle poll":"Poll umschalten","Type":"Typ","Unit":"Einheit","Update unchanged states":"Unver\xe4nderte Zust\xe4nde aktualisieren","Use aliases as address":"Aliases benutzen","Use direct addresses by aliases":"Direkte Adressen benutzen (bei Aliases)","WP":"WP","Wait time":"Wartezeit","Write access allowed":"Schreiben erlaubt","Write interval":"Schreibintervall","deviceId":"Slave-ID","do not include address in ID":"Adresse nicht in ID aufnehmen","formula":"Formel","ms":"ms","poll":"Poll","preserve dots in ID":"Punkte in IDs erhalten","registers":"Register","Discrete inputs":"Diskrete Eing\xe4nge","Binary inputs (read-only)":"Bin\xe4re Eing\xe4nge (nur lesen)","Binary inputs and outputs":"Bin\xe4re Ein- und Ausg\xe4nge","Input registers (8-64 bit values, read-only)":"Eingangsregister (8-64 Bit Werte, schreibgesch\xfctzt)","Input/output registers (8-64 bit values)":"Eingabe-/Ausgaberegister (8-64 Bit Werte)","Add line":"Zeile hinzuf\xfcgen","Edit as TSV (Tab separated values)":"Als TSV bearbeiten (Tabulatorgetrennte Werte)","Edit mode":"Bearbeitungsmodus","Toggle extended mode":"Erweiterten Modus umschalten","Formula":"Formel","Change all":"\xc4ndere Alles","Poll":"Abfrage","Delete all":"Alles l\xf6schen","Nothing":"Nichts","Delete item":"Item l\xf6schen","Don\'t show this message in 5 minutes":"Diese Nachricht 5 Minuten lang nicht anzeigen","Are you sure to delete item with address \\"%s\\"?":"Das Element mit der Adresse \\"%s\\" wirklich l\xf6schen?","Store this value as scaling factor":"Diesen Wert als Skalierungsfaktor speichern","Write pulses (true \u2192 false edge)":"Schreibimpulse (wahr \u2192 falsche Flanke)","Delete all items":"Alle Elemente l\xf6schen","Are you sure to delete all items?":"Alle Elemente l\xf6schen?","Edit data as TSV":"Daten als TSV bearbeiten","You can copy, paste and edit data as TSV.":"Man kann die Daten als TSV kopieren, einf\xfcgen und bearbeiten.","Copy to clipboard":"In die Zwischenablage kopieren","TSV was copied to clipboard":"Daten wurden in die Zwischenablage kopiert","Do not use \\"Write multiple registers\\"":"\\"Mehrere Register schreiben\\" nicht verwenden","Use only \\"Write multiple registers\\"":"Nur \\"Write multiple registers\\" verwenden","Write only with FC5/FC6":"Nur mit FC5/FC6 schreiben ","Write only with FC15/FC16":"Nur mit FC15/FC16 schreiben","Slave IP address":"Slave-IP-Adresse","Listen on all IPs":"Zugriff von allen IPs zulassen","Read interval":"Leseintervall","Slave ID":"Slave-ID"}')},414:function(e){e.exports=JSON.parse('{"Add DB":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c DB","Address":"\u0410\u0434\u0440\u0435\u0441","All entries will be deleted. Are you sure?":"\u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","Are you sure?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","Baud rate":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u0430","CW":"CW","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","Coils":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0444\u043b\u0430\u0433\u043e\u0432","Connection parameters":"\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","Cyclic write":"\u041f\u0438\u0441\u0430\u0442\u044c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435","Data bits":"Data bits","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Delete address":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441","Delete all entries":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b","Description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435","Device ID":"ID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430","Do not align addresses to word":"\u041d\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e 16 \u0431\u0438\u0442","Enable polling of data point":"\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435","Export":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442","Export to CSV":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 CSV","Factor":"\u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c","General":"\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435","Holding Registers":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f","Import":"\u0418\u043c\u043f\u043e\u0440\u0442","Import DB file":"\u0418\u043f\u043c\u043e\u0440\u0442 DB \u0444\u0430\u0439\u043b\u043e\u0432","Import from CSV":"\u0418\u043c\u043f\u043e\u0440\u0442 \u0438\u0437 CSV","Import symbols file":"\u0418\u043f\u043c\u043e\u0440\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432","Input Registers":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432\u0445\u043e\u0434\u0430","Inputs":"\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b","Length":"\u0414\u043b\u0438\u043d\u0430","Load Symbols":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b","Master":"Master","Max read request length (booleans)":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 (booleans)","Max read request length":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 (float)","Multi device IDs":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e ID","Name":"\u0418\u043c\u044f","Offset":"\u0421\u0434\u0432\u0438\u0433","PLC Connection":"PLC \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435","PLC IP Address":"PLC IP \u0430\u0434\u0440\u0435\u0441","PLC Rack":"PLC Rack","PLC Slot":"PLC \u0441\u043b\u043e\u0442","Parity":"Parity","Partner IP Address":"IP \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430","Poll delay":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u043f\u0440\u043e\u0441\u0430","Port":"\u041f\u043e\u0440\u0442","Pulse time":"Pulse time","RTU over TCP":"RTU over TCP","RW":"RW","Read timeout":"\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0447\u0442\u0435\u043d\u0438\u044f","Reconnect time":"Reconnect time","Role":"\u0420\u043e\u043b\u044c","Room":"\u041a\u043e\u043c\u043d\u0430\u0442\u0430","Round Real to":"\u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c real \u0434\u043e","SF":"SF","Say \\"yes\\" for the next minute":"\u0421\u043a\u0430\u0436\u0438\u0442\u0435 \xab\u0434\u0430\xbb \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443","Select port":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u0440\u0442","Serial":"Serial","Slave":"Slave","Start address":"\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serial RTU","Text copied to clipboard. Click to close the window":"\u0422\u0435\u043a\u0441\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430. \u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u043c\u044b\u0448\u043a\u043e\u0439 \u0437\u0434\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e","Toggle RW":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c RW","Toggle WP":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c WP","Toggle poll":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c poll","Type":"\u0422\u0438\u043f","Unit":"\u0415\u0434\u0438\u043d\u0438\u0446\u044b","Update unchanged states":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f","Use aliases as address":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c alias","Use direct addresses by aliases":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u0438 alias","WP":"WP","Wait time":"\u0412\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f","Write access allowed":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e","Write interval":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430\u043f\u0438\u0441\u0438","deviceId":"Slave ID","do not include address in ID":"\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u0432 ID","formula":"formula","ms":"ms","poll":"poll","preserve dots in ID":"\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0432 ID","registers":"\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432","Discrete inputs":"\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b","Binary inputs (read-only)":"\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f)","Binary inputs and outputs":"\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0438 \u0432\u044b\u0445\u043e\u0434\u044b","Input registers (8-64 bit values, read-only)":"\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (8-64-\u0431\u0438\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f)","Input/output registers (8-64 bit values)":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432\u0432\u043e\u0434\u0430 / \u0432\u044b\u0432\u043e\u0434\u0430 (8-64-\u0431\u0438\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f)","Add line":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443","Edit as TSV (Tab separated values)":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a TSV (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0435\u0439)","Edit mode":"\u0420\u0435\u0436\u0438\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","Toggle extended mode":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c","Formula":"\u0424\u043e\u0440\u043c\u0443\u043b\u0430","Change all":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435","Poll":"\u041e\u043f\u0440\u043e\u0441","Delete all":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","Nothing":"\u041d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e","Delete item":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0443\u043d\u043a\u0442","Don\'t show this message in 5 minutes":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 5 \u043c\u0438\u043d\u0443\u0442","Are you sure to delete item with address \\"%s\\"?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \\"%s\\"?","Store this value as scaling factor":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","Write pulses (true \u2192 false edge)":"\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043f\u0438\u0441\u0438 (\u0438\u0441\u0442\u0438\u043d\u0430 \u2192 \u043b\u043e\u0436\u043d\u044b\u0439 \u0444\u0440\u043e\u043d\u0442)","Delete all items":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b","Are you sure to delete all items?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b?","Edit data as TSV":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a TSV","You can copy, paste and edit data as TSV.":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a TSV.","Copy to clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","TSV was copied to clipboard":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","Do not use \\"Write multiple registers\\"":"\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \xabWrite multiple registers\xbb","Use only \\"Write multiple registers\\"":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \xabWrite multiple registers\xbb","Write only with FC5/FC6":"\u0417\u0430\u043f\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 FC5 / FC6","Write only with FC15/FC16":"\u0417\u0430\u043f\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 FC15 / FC16","Slave IP address":"\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441","Listen on all IPs":"\u0421\u043b\u0443\u0448\u0430\u0439\u0442\u0435 \u0432\u0441\u0435 IP","Read interval":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0442\u0435\u043d\u0438\u044f","Slave ID":"ID \u0432\u0435\u0434\u043e\u043c\u043e\u0433\u043e"}')},415:function(e){e.exports=JSON.parse('{"Add DB":"Adicionar DB","Address":"Endere\xe7o","All entries will be deleted. Are you sure?":"Todas as entradas ser\xe3o exclu\xeddas. Voc\xea tem certeza?","Are you sure?":"Voc\xea tem certeza?","Baud rate":"Taxa de transmiss\xe3o de dados","CW":"CW","Cancel":"Cancelar","Close":"Fechar","Coils":"Bobinas","Connection parameters":"Par\xe2metros de conex\xe3o","Cyclic write":"Escrita c\xedclica","Data bits":"Bits de dados","Delete":"Excluir","Delete address":"Excluir endere\xe7o","Delete all entries":"Eliminar todas as entradas","Description":"Descri\xe7\xe3o","Device ID":"ID de dispositivo","Do not align addresses to word":"N\xe3o alinhe endere\xe7os para 16 bits","Enable polling of data point":"Habilitar a vota\xe7\xe3o do ponto de dados","Export":"Exportar","Export to CSV":"Exportar para CSV","Factor":"Fator","General":"Geral","Holding Registers":"Registros de reten\xe7\xe3o","Import":"Importar","Import DB file":"Importar arquivo DB","Import from CSV":"Importa\xe7\xe3o de CSV","Import symbols file":"Arquivo de s\xedmbolos de importa\xe7\xe3o","Input Registers":"Registos de entrada","Inputs":"Entradas discretas","Length":"comprimento","Load Symbols":"Carregar s\xedmbolos","Master":"mestre","Max read request length (booleans)":"Comprimento m\xe1ximo da solicita\xe7\xe3o de leitura (booleans)","Max read request length":"Comprimento m\xe1ximo da solicita\xe7\xe3o de leitura (float)","Multi device IDs":"IDs de v\xe1rios dispositivos","Name":"Nome","Offset":"Offset","PLC Connection":"Conex\xe3o do PLC","PLC IP Address":"Endere\xe7o IP do PLC","PLC Rack":"PLC Rack","PLC Slot":"Slot PLC","Parity":"Paridade","Partner IP Address":"Endere\xe7o IP do parceiro","Poll delay":"Retardo de enquete","Port":"Porta","Pulse time":"Tempo de pulso","RTU over TCP":"RTU sobre TCP","RW":"RW","Read timeout":"Tempo de ler esgotado","Reconnect time":"Reconectar o tempo","Role":"Fun\xe7\xe3o","Room":"Quarto","Round Real to":"Round real to","SF":"SF","Say \\"yes\\" for the next minute":"Diga \\"sim\\" no pr\xf3ximo minuto","Select port":"Selecione a interface serial","Serial":"Serial","Slave":"Escravo","Start address":"Endere\xe7o de in\xedcio","Stop bits":"Parar bits","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Texto copiado para a \xe1rea de transfer\xeancia. Clique para fechar a janela","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Alternar pesquisa","Type":"Tipo","Unit":"Unidade","Update unchanged states":"Atualize estados inalterados","Use aliases as address":"Use aliases","Use direct addresses by aliases":"Use endere\xe7os diretos por alias","WP":"WP","Wait time":"Tempo de espera","Write access allowed":"Acesso de acesso permitido","Write interval":"Intervalo de grava\xe7\xe3o","deviceId":"Slave ID","do not include address in ID":"n\xe3o inclua endere\xe7o no ID","formula":"formula","ms":"ms","poll":"vota\xe7\xe3o","preserve dots in ID":"preservar pontos no ID","registers":"registros","Discrete inputs":"Entradas discretas","Binary inputs (read-only)":"Entradas bin\xe1rias (somente leitura)","Binary inputs and outputs":"Entradas e sa\xeddas bin\xe1rias","Input registers (8-64 bit values, read-only)":"Registros de entrada (valores de 8-64 bits, somente leitura)","Input/output registers (8-64 bit values)":"Registros de entrada / sa\xedda (valores de 8-64 bits)","Add line":"Adicionar linha","Edit as TSV (Tab separated values)":"Editar como TSV (valores separados por tabula\xe7\xe3o)","Edit mode":"Modo de edi\xe7\xe3o","Toggle extended mode":"Alternar modo estendido","Formula":"F\xf3rmula","Change all":"Mude tudo","Poll":"Enquete","Delete all":"Apagar tudo","Nothing":"Nada","Delete item":"Apagar item","Don\'t show this message in 5 minutes":"N\xe3o mostre esta mensagem por 5 minutos","Are you sure to delete item with address \\"%s\\"?":"Tem certeza de que deseja excluir o item com o endere\xe7o \\"%s\\"?","Store this value as scaling factor":"Armazene este valor como fator de escala","Write pulses (true \u2192 false edge)":"Gravar pulsos (verdadeiro \u2192 borda falsa)","Delete all items":"Apagar todos os itens","Are you sure to delete all items?":"Tem certeza de que deseja excluir todos os itens?","Edit data as TSV":"Editar dados como TSV","You can copy, paste and edit data as TSV.":"Voc\xea pode copiar, colar e editar dados como TSV.","Copy to clipboard":"Copiar para \xe1rea de transfer\xeancia","TSV was copied to clipboard":"Os dados foram copiados para a \xe1rea de transfer\xeancia","Do not use \\"Write multiple registers\\"":"N\xe3o use \\"Gravar registros m\xfaltiplos\\"","Use only \\"Write multiple registers\\"":"Use apenas \\"Gravar registros m\xfaltiplos\\"","Write only with FC5/FC6":"Escreva apenas com FC5 / FC6","Write only with FC15/FC16":"Escreva apenas com FC15 / FC16","Slave IP address":"Endere\xe7o IP escravo","Listen on all IPs":"Ou\xe7a em todos os IPs","Read interval":"Intervalo de leitura","Slave ID":"Slave ID"}')},416:function(e){e.exports=JSON.parse('{"Add DB":"Voeg DB toe","Address":"Adres","All entries will be deleted. Are you sure?":"Alle inzendingen worden verwijderd. Weet je het zeker?","Are you sure?":"Weet je het zeker?","Baud rate":"Baudrate","CW":"CW","Cancel":"Annuleer","Close":"Dichtbij","Coils":"coils","Connection parameters":"Verbindingsparameters","Cyclic write":"Cyclisch schrijven","Data bits":"Databits","Delete":"Verwijder","Delete address":"Verwijder adres","Delete all entries":"Verwijder alle vermeldingen","Description":"Beschrijving","Device ID":"Apparaat ID","Do not align addresses to word":"Lijn adressen niet uit met 16 bits","Enable polling of data point":"Polling van gegevenspunt inschakelen","Export":"Exporteren","Export to CSV":"Exporteren naar CSV","Factor":"Factor","General":"Algemeen","Holding Registers":"Registers houden","Import":"Importeren","Import DB file":"DB-bestand importeren","Import from CSV":"Importeren vanuit CSV","Import symbols file":"Symboolbestand importeren","Input Registers":"Invoegregisters","Inputs":"Discrete ingangen","Length":"Lengte","Load Symbols":"Laad symbolen","Master":"Meester","Max read request length (booleans)":"Max. Leesverzoeklengte (booleans)","Max read request length":"Max. Leesverzoeklengte (float)","Multi device IDs":"ID\'s voor meerdere apparaten","Name":"Naam","Offset":"compenseren","PLC Connection":"PLC-verbinding","PLC IP Address":"PLC IP-adres","PLC Rack":"PLC Rack","PLC Slot":"PLC-slot","Parity":"Pariteit","Partner IP Address":"IP-adres van partner","Poll delay":"Poll vertraging","Port":"Haven","Pulse time":"Pulstijd","RTU over TCP":"RTU via TCP","RW":"RW","Read timeout":"Lees time-out","Reconnect time":"Reconnect tijd","Role":"Rol","Room":"Kamer","Round Real to":"Rond echt naar","SF":"SF","Say \\"yes\\" for the next minute":"Zeg \'ja\' voor de volgende minuut","Select port":"Selecteer poort","Serial":"serie-","Slave":"Slaaf","Start address":"Start adres","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Tekst gekopieerd naar klembord. Klik om het venster te sluiten","Toggle RW":"RW omschakelen","Toggle WP":"Wissel WP","Toggle poll":"Poll wisselen","Type":"Type","Unit":"Eenheid","Update unchanged states":"Ongewijzigde staten bijwerken","Use aliases as address":"Gebruik aliassen","Use direct addresses by aliases":"Gebruik directe adressen op aliassen","WP":"WP","Wait time":"Wacht tijd","Write access allowed":"Schrijftoegang toegestaan","Write interval":"Schrijfinterval","deviceId":"Slave ID","do not include address in ID":"adres niet opnemen in ID","formula":"formula","ms":"ms","poll":"poll","preserve dots in ID":"bewaar stippen in ID","registers":"registers","Discrete inputs":"Discrete ingangen","Binary inputs (read-only)":"Binaire ingangen (alleen-lezen)","Binary inputs and outputs":"Binaire in- en uitgangen","Input registers (8-64 bit values, read-only)":"Invoerregisters (8-64 bit-waarden, alleen-lezen)","Input/output registers (8-64 bit values)":"Input/output registers (8-64 bit waarden)","Add line":"Lijn toevoegen","Edit as TSV (Tab separated values)":"Bewerken als TSV (door tabs gescheiden waarden)","Edit mode":"Bewerkingsmodus","Toggle extended mode":"Schakel uitgebreide modus in","Formula":"Formule","Change all":"Verander alles","Poll":"Opiniepeiling","Delete all":"Verwijder alles","Nothing":"Niets","Delete item":"Verwijder item","Don\'t show this message in 5 minutes":"Dit bericht 5 minuten niet weergeven","Are you sure to delete item with address \\"%s\\"?":"Weet u zeker dat u het item met adres \\"%s\\" wilt verwijderen?","Store this value as scaling factor":"Sla deze waarde op als schaalfactor","Write pulses (true \u2192 false edge)":"Schrijfpulsen (true \u2192 valse flank)","Delete all items":"Alle items verwijderen","Are you sure to delete all items?":"Weet je zeker dat je alle items wilt verwijderen?","Edit data as TSV":"Gegevens bewerken als TSV","You can copy, paste and edit data as TSV.":"U kunt gegevens kopi\xebren, plakken en bewerken als TSV.","Copy to clipboard":"Kopieer naar klembord","TSV was copied to clipboard":"Gegevens zijn naar het klembord gekopieerd","Do not use \\"Write multiple registers\\"":"Gebruik \\"Meerdere registers schrijven\\" niet","Use only \\"Write multiple registers\\"":"Gebruik alleen \\"Meerdere registers schrijven\\"","Write only with FC5/FC6":"Schrijf alleen met FC5/FC6","Write only with FC15/FC16":"Schrijf alleen met FC15/FC16","Slave IP address":"Slave IP-adres","Listen on all IPs":"Luister op alle IP\'s","Read interval":"Lees interval","Slave ID":"Slave-ID"}')},417:function(e){e.exports=JSON.parse('{"Add DB":"Ajouter une DB","Address":"Adresse","All entries will be deleted. Are you sure?":"Toutes les entr\xe9es seront supprim\xe9es. \xcates-vous s\xfbr?","Are you sure?":"\xcates-vous s\xfbr?","Baud rate":"D\xe9bit en bauds","CW":"CW","Cancel":"Annuler","Close":"Fermer","Coils":"Bobines","Connection parameters":"Param\xe8tres de connexion","Cyclic write":"\xc9criture cyclique","Data bits":"Bits de donn\xe9es","Delete":"Effacer","Delete address":"Supprimer l\'adresse","Delete all entries":"Supprimer toutes les entr\xe9es","Description":"La description","Device ID":"Reference de l\'appareil","Do not align addresses to word":"Ne pas aligner les adresses sur 16 bits","Enable polling of data point":"Activer l\'interrogation du point de donn\xe9es","Export":"Exportation","Export to CSV":"Exporter au format CSV","Factor":"Facteur","General":"G\xe9n\xe9ral","Holding Registers":"Tenir des registres","Import":"Importer","Import DB file":"Importer un fichier DB","Import from CSV":"Importer \xe0 partir du fichier CSV","Import symbols file":"Importer un fichier de symboles","Input Registers":"Registres d\'entr\xe9e","Inputs":"Entr\xe9es discr\xe8tes","Length":"Longueur","Load Symbols":"Charger des symboles","Master":"Ma\xeetriser","Max read request length (booleans)":"Max longueur de la requ\xeate de lecture (booleans)","Max read request length":"Max longueur de la requ\xeate de lecture (float)","Multi device IDs":"ID multi-appareils","Name":"pr\xe9nom","Offset":"D\xe9calage","PLC Connection":"Connexion PLC","PLC IP Address":"Adresse IP de l\'API","PLC Rack":"Rack PLC","PLC Slot":"Slot PLC","Parity":"Parit\xe9","Partner IP Address":"Adresse IP du partenaire","Poll delay":"D\xe9lai d\'interrogation","Port":"Port","Pulse time":"Temps d\'impulsion","RTU over TCP":"RTU sur TCP","RW":"RW","Read timeout":"Lire le d\xe9lai d\'attente","Reconnect time":"Reconnectez le temps","Role":"R\xf4le","Room":"Chambre","Round Real to":"Rond r\xe9el \xe0","SF":"SF","Say \\"yes\\" for the next minute":"Dites \\"oui\\" pour la minute suivante","Select port":"S\xe9lectionnez un port","Serial":"En s\xe9rie","Slave":"Esclave","Start address":"Adresse de d\xe9part","Stop bits":"Bits d\'arr\xeat","TCP":"TCP","TCP/Serial RTU":"TCP / S\xe9riel RTU","Text copied to clipboard. Click to close the window":"Texte copi\xe9 dans le presse-papier Cliquez pour fermer la fen\xeatre","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Basculer le sondage","Type":"Type","Unit":"Unit\xe9","Update unchanged states":"Mettre \xe0 jour les \xe9tats inchang\xe9s","Use aliases as address":"Utiliser des alias","Use direct addresses by aliases":"Utilisez des adresses directes par alias","WP":"WP","Wait time":"Temps d\'attente","Write access allowed":"Acc\xe8s en \xe9criture autoris\xe9","Write interval":"Intervalle d\'\xe9criture","deviceId":"Slave ID","do not include address in ID":"n\'incluez pas l\'adresse dans l\'ID","formula":"formula","ms":"ms","poll":"sondage","preserve dots in ID":"conserver les points dans l\'ID","registers":"registres","Discrete inputs":"Entr\xe9es discr\xe8tes","Binary inputs (read-only)":"Entr\xe9es binaires (lecture seule)","Binary inputs and outputs":"Entr\xe9es et sorties binaires","Input registers (8-64 bit values, read-only)":"Registres d\'entr\xe9e (valeurs 8-64 bits, lecture seule)","Input/output registers (8-64 bit values)":"Registres d\'entr\xe9e/sortie (valeurs 8-64 bits)","Add line":"Ajouter une ligne","Edit as TSV (Tab separated values)":"Modifier en tant que TSV (valeurs s\xe9par\xe9es par des tabulations)","Edit mode":"Mode \xe9dition","Toggle extended mode":"Basculer en mode \xe9tendu","Formula":"Formule","Change all":"Change tout","Poll":"Sondage","Delete all":"Tout supprimer","Nothing":"Rien","Delete item":"Effacer l\'article","Don\'t show this message in 5 minutes":"Ne pas afficher ce message pendant 5 minutes","Are you sure to delete item with address \\"%s\\"?":"\xcates-vous s\xfbr de supprimer l\'\xe9l\xe9ment avec l\'adresse \xab%s\xbb\xa0?","Store this value as scaling factor":"Stocker cette valeur comme facteur d\'\xe9chelle","Write pulses (true \u2192 false edge)":"\xc9crire des impulsions (vrai \u2192 faux front)","Delete all items":"Supprimer tous les \xe9l\xe9ments","Are you sure to delete all items?":"\xcates-vous s\xfbr de supprimer tous les \xe9l\xe9ments\xa0?","Edit data as TSV":"Modifier les donn\xe9es en tant que TSV","You can copy, paste and edit data as TSV.":"Vous pouvez copier, coller et modifier des donn\xe9es au format TSV.","Copy to clipboard":"Copier dans le presse-papier","TSV was copied to clipboard":"Les donn\xe9es ont \xe9t\xe9 copi\xe9es dans le presse-papiers","Do not use \\"Write multiple registers\\"":"N\'utilisez pas \\"Ecrire plusieurs registres\\"","Use only \\"Write multiple registers\\"":"Utilisez uniquement \\"Ecrire plusieurs registres\\"","Write only with FC5/FC6":"\xc9crire uniquement avec FC5/FC6","Write only with FC15/FC16":"\xc9crire uniquement avec FC15/FC16","Slave IP address":"Adresse IP esclave","Listen on all IPs":"\xc9couter sur toutes les IP","Read interval":"Intervalle de lecture","Slave ID":"ID d\'esclave"}')},418:function(e){e.exports=JSON.parse('{"Add DB":"Aggiungi DB","Address":"Indirizzo","All entries will be deleted. Are you sure?":"Tutte le voci saranno cancellate. Sei sicuro?","Are you sure?":"Sei sicuro?","Baud rate":"Baud rate","CW":"CW","Cancel":"Annulla","Close":"Vicino","Coils":"bobine","Connection parameters":"Parametri di connessione","Cyclic write":"Scrittura ciclica","Data bits":"Bit di dati","Delete":"Elimina","Delete address":"Elimina l\'indirizzo","Delete all entries":"Elimina tutte le voci","Description":"Descrizione","Device ID":"ID del dispositivo","Do not align addresses to word":"Non allineare gli indirizzi a 16 bit","Enable polling of data point":"Abilita il polling del punto dati","Export":"Esportare","Export to CSV":"Esporta in CSV","Factor":"Fattore","General":"Generale","Holding Registers":"Holding Registers","Import":"Importare","Import DB file":"Importa file DB","Import from CSV":"Importa da CSV","Import symbols file":"Importa file simboli","Input Registers":"Registri di input","Inputs":"Ingressi discreti","Length":"Lunghezza","Load Symbols":"Carica simboli","Master":"Maestro","Max read request length (booleans)":"Lunghezza massima richiesta di lettura (booleans)","Max read request length":"Lunghezza massima richiesta di lettura (float)","Multi device IDs":"ID multi dispositivo","Name":"Nome","Offset":"Compensare","PLC Connection":"Connessione PLC","PLC IP Address":"Indirizzo IP del PLC","PLC Rack":"Rack PLC","PLC Slot":"Slot PLC","Parity":"Parit\xe0","Partner IP Address":"Indirizzo IP del partner","Poll delay":"Ritardo del sondaggio","Port":"Porta","Pulse time":"Tempo di impulso","RTU over TCP":"RTU su TCP","RW":"RW","Read timeout":"Leggi il timeout","Reconnect time":"Tempo di riconnessione","Role":"Ruolo","Room":"Camera","Round Real to":"Round reale a","SF":"SF","Say \\"yes\\" for the next minute":"D\xec \\"s\xec\\" per il minuto successivo","Select port":"Seleziona porta","Serial":"Seriale","Slave":"Schiavo","Start address":"Indirizzo iniziale","Stop bits":"Stop bit","TCP":"TCP","TCP/Serial RTU":"RTU TCP / seriale","Text copied to clipboard. Click to close the window":"Testo copiato negli appunti. Clicca per chiudere la finestra","Toggle RW":"Attiva / disattiva RW","Toggle WP":"Attiva / disattiva WP","Toggle poll":"Attiva / disattiva sondaggio","Type":"Genere","Unit":"Unit\xe0","Update unchanged states":"Aggiorna stati invariati","Use aliases as address":"Usa alias","Use direct addresses by aliases":"Usa indirizzi diretti per alias","WP":"WP","Wait time":"Tempo di attesa","Write access allowed":"Accesso in scrittura consentito","Write interval":"Intervallo di scrittura","deviceId":"ID slave","do not include address in ID":"non includere l\'indirizzo nell\'ID","formula":"formula","ms":"ms","poll":"sondaggio","preserve dots in ID":"conserva punti nell\'ID","registers":"registri","Discrete inputs":"Ingressi discreti","Binary inputs (read-only)":"Ingressi binari (sola lettura)","Binary inputs and outputs":"Ingressi e uscite binari","Input registers (8-64 bit values, read-only)":"Registri di ingresso (valori 8-64 bit, sola lettura)","Input/output registers (8-64 bit values)":"Registri di ingresso/uscita (valori da 8 a 64 bit)","Add line":"Aggiungi riga","Edit as TSV (Tab separated values)":"Modifica come TSV (valori separati da tabulazioni)","Edit mode":"Modalit\xe0 Modifica","Toggle extended mode":"Attiva/disattiva modalit\xe0 estesa","Formula":"Formula","Change all":"Cambia tutto","Poll":"Sondaggio","Delete all":"Cancella tutto","Nothing":"Niente","Delete item":"Cancellare l\'oggetto","Don\'t show this message in 5 minutes":"Non mostrare questo messaggio per 5 minuti","Are you sure to delete item with address \\"%s\\"?":"Sei sicuro di eliminare l\'elemento con l\'indirizzo \\"%s\\"?","Store this value as scaling factor":"Memorizza questo valore come fattore di scala","Write pulses (true \u2192 false edge)":"Scrivere impulsi (vero \u2192 falso fronte)","Delete all items":"Elimina tutti gli elementi","Are you sure to delete all items?":"Sei sicuro di eliminare tutti gli elementi?","Edit data as TSV":"Modifica dati come TSV","You can copy, paste and edit data as TSV.":"Puoi copiare, incollare e modificare i dati come TSV.","Copy to clipboard":"Copia negli appunti","TSV was copied to clipboard":"I dati sono stati copiati negli appunti","Do not use \\"Write multiple registers\\"":"Non utilizzare \\"Scrivi pi\xf9 registri\\"","Use only \\"Write multiple registers\\"":"Usa solo \\"Scrivi pi\xf9 registri\\"","Write only with FC5/FC6":"Scrivi solo con FC5/FC6","Write only with FC15/FC16":"Scrivi solo con FC15/FC16","Slave IP address":"Indirizzo IP slave","Listen on all IPs":"Ascolta su tutti gli IP","Read interval":"Intervallo di lettura","Slave ID":"ID schiavo"}')},419:function(e){e.exports=JSON.parse('{"Add DB":"Agregar DB","Address":"Direcci\xf3n","All entries will be deleted. Are you sure?":"Todas las entradas ser\xe1n eliminadas. \xbfEst\xe1s seguro?","Are you sure?":"\xbfEst\xe1s seguro?","Baud rate":"Velocidad de baudios","CW":"CW","Cancel":"Cancelar","Close":"Cerca","Coils":"Bobinas","Connection parameters":"Par\xe1metros de conexi\xf3n","Cyclic write":"Escritura c\xedclica","Data bits":"Bits de datos","Delete":"Borrar","Delete address":"Eliminar direcci\xf3n","Delete all entries":"Eliminar todas las entradas","Description":"Descripci\xf3n","Device ID":"ID del dispositivo","Do not align addresses to word":"No alinee las direcciones a 16 bits","Enable polling of data point":"Habilitar el sondeo del punto de datos","Export":"Exportar","Export to CSV":"Exportar a CSV","Factor":"Factor","General":"General","Holding Registers":"Registros de mantenimiento","Import":"Importar","Import DB file":"Importar archivo DB","Import from CSV":"Importar desde CSV","Import symbols file":"Importar archivo de s\xedmbolos","Input Registers":"Registros de entrada","Inputs":"Entradas discretas","Length":"Longitud","Load Symbols":"Cargar s\xedmbolos","Master":"Dominar","Max read request length (booleans)":"Longitud de solicitud de lectura m\xe1xima (booleans)","Max read request length":"Longitud de solicitud de lectura m\xe1xima (float)","Multi device IDs":"ID de dispositivos m\xfaltiples","Name":"Nombre","Offset":"Compensar","PLC Connection":"Conexi\xf3n de PLC","PLC IP Address":"Direcci\xf3n IP del PLC","PLC Rack":"Estante del PLC","PLC Slot":"Ranura de PLC","Parity":"Paridad","Partner IP Address":"Direcci\xf3n IP del socio","Poll delay":"Retraso en la encuesta","Port":"Puerto","Pulse time":"Tiempo de pulso","RTU over TCP":"RTU sobre TCP","RW":"RW","Read timeout":"Tiempo de espera de lectura","Reconnect time":"Tiempo de reconexi\xf3n","Role":"Papel","Room":"Habitaci\xf3n","Round Real to":"Redondo real para","SF":"SF","Say \\"yes\\" for the next minute":"Di \\"s\xed\\" por el pr\xf3ximo minuto","Select port":"Seleccionar puerto","Serial":"De serie","Slave":"Esclavo","Start address":"Direcci\xf3n de inicio","Stop bits":"Bits de parada","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Texto copiado al portapapeles. Haga clic para cerrar la ventana","Toggle RW":"Alternar RW","Toggle WP":"Alternar WP","Toggle poll":"Alternar encuesta","Type":"Tipo","Unit":"Unidad","Update unchanged states":"Actualizar estados sin cambios","Use aliases as address":"Usa alias","Use direct addresses by aliases":"Use direcciones directas por alias","WP":"WP","Wait time":"Tiempo de espera","Write access allowed":"Acceso de escritura permitido","Write interval":"Intervalo de escritura","deviceId":"Slave ID","do not include address in ID":"no incluya la direcci\xf3n en la identificaci\xf3n","formula":"formula","ms":"ms","poll":"encuesta","preserve dots in ID":"preservar puntos en ID","registers":"registros","Discrete inputs":"Entradas discretas","Binary inputs (read-only)":"Entradas binarias (solo lectura)","Binary inputs and outputs":"Entradas y salidas binarias","Input registers (8-64 bit values, read-only)":"Registros de entrada (valores de 8 a 64 bits, solo lectura)","Input/output registers (8-64 bit values)":"Registros de entrada / salida (valores de 8 a 64 bits)","Add line":"A\xf1adir l\xednea","Edit as TSV (Tab separated values)":"Editar como TSV (valores separados por tabulaciones)","Edit mode":"Modo de edici\xf3n","Toggle extended mode":"Alternar modo extendido","Formula":"F\xf3rmula","Change all":"Cambia todo","Poll":"Encuesta","Delete all":"Eliminar todos","Nothing":"Nada","Delete item":"Eliminar elemento","Don\'t show this message in 5 minutes":"No muestre este mensaje durante 5 minutos","Are you sure to delete item with address \\"%s\\"?":"\xbfEst\xe1 seguro de eliminar el elemento con la direcci\xf3n \\"%s\\"?","Store this value as scaling factor":"Almacene este valor como factor de escala","Write pulses (true \u2192 false edge)":"Escribir pulsos (verdadero \u2192 falso borde)","Delete all items":"Eliminar todos los elementos","Are you sure to delete all items?":"\xbfEst\xe1 seguro de eliminar todos los elementos?","Edit data as TSV":"Editar datos como TSV","You can copy, paste and edit data as TSV.":"Puede copiar, pegar y editar datos como TSV.","Copy to clipboard":"Copiar al portapapeles","TSV was copied to clipboard":"Los datos se copiaron al portapapeles","Do not use \\"Write multiple registers\\"":"No utilice \\"Escribir varios registros\\"","Use only \\"Write multiple registers\\"":"Utilice solo \\"Escribir varios registros\\"","Write only with FC5/FC6":"Escribir solo con FC5 / FC6","Write only with FC15/FC16":"Escribir solo con FC15 / FC16","Slave IP address":"Direcci\xf3n IP esclava","Listen on all IPs":"Escuche en todas las direcciones IP","Read interval":"Intervalo de lectura","Slave ID":"ID de esclavo"}')},420:function(e){e.exports=JSON.parse('{"Add DB":"Dodaj DB","Address":"Adres","All entries will be deleted. Are you sure?":"Wszystkie wpisy zostan\u0105 usuni\u0119te. Jeste\u015b pewny?","Are you sure?":"Jeste\u015b pewny?","Baud rate":"Szybko\u015b\u0107 transmisji","CW":"CW","Cancel":"Anuluj","Close":"Blisko","Coils":"Cewki","Connection parameters":"Parametry po\u0142\u0105czenia","Cyclic write":"Cykliczny zapis","Data bits":"Bity danych","Delete":"Kasowa\u0107","Delete address":"Usu\u0144 adres","Delete all entries":"Usu\u0144 wszystkie wpisy","Description":"Opis","Device ID":"Identyfikator urzadzenia","Do not align addresses to word":"Nie wyr\xf3wnaj adres\xf3w do 16 bit\xf3w","Enable polling of data point":"W\u0142\u0105cz odpytywanie punktu danych","Export":"Eksport","Export to CSV":"Eksportuj do pliku CSV","Factor":"Czynnik","General":"Genera\u0142","Holding Registers":"Prowadzenie rejestr\xf3w","Import":"Import","Import DB file":"Importuj plik DB","Import from CSV":"Importuj z CSV","Import symbols file":"Importuj plik symboli","Input Registers":"Rejestry wej\u015bciowe","Inputs":"Wej\u015bcia dyskretne","Length":"D\u0142ugo\u015b\u0107","Load Symbols":"Za\u0142aduj symbole","Master":"Mistrz","Max read request length (booleans)":"Maksymalna d\u0142ugo\u015b\u0107 \u017c\u0105dania odczytu (booleans)","Max read request length":"Maksymalna d\u0142ugo\u015b\u0107 \u017c\u0105dania odczytu (float)","Multi device IDs":"Identyfikatory wielu urz\u0105dze\u0144","Name":"Imi\u0119","Offset":"Offsetowy","PLC Connection":"Po\u0142\u0105czenie PLC","PLC IP Address":"Adres IP sterownika PLC","PLC Rack":"Rack PLC","PLC Slot":"Gniazdo PLC","Parity":"Parytet","Partner IP Address":"Adres IP partnera","Poll delay":"Op\xf3\u017anienie ankiety","Port":"Port","Pulse time":"Czas impulsu","RTU over TCP":"RTU przez TCP","RW":"RW","Read timeout":"Odczyt limitu czasu","Reconnect time":"Czas ponownego po\u0142\u0105czenia","Role":"Rola","Room":"Pok\xf3j","Round Real to":"Runda prawdziwa do","SF":"SF","Say \\"yes\\" for the next minute":"Powiedz \\"tak\\" przez nast\u0119pn\u0105 minut\u0119","Select port":"Wybierz port","Serial":"Seryjny","Slave":"Niewolnik","Start address":"Adres pocz\u0105tkowy","Stop bits":"Stop bit\xf3w","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Tekst skopiowany do schowka. Kliknij, aby zamkn\u0105\u0107 okno","Toggle RW":"Prze\u0142\u0105cz RW","Toggle WP":"Prze\u0142\u0105cz WP","Toggle poll":"Prze\u0142\u0105cz ankiet\u0119","Type":"Rodzaj","Unit":"Jednostka","Update unchanged states":"Zaktualizuj niezmienione stany","Use aliases as address":"U\u017cyj alias\xf3w","Use direct addresses by aliases":"U\u017cyj bezpo\u015brednich adres\xf3w przez aliasy","WP":"WP","Wait time":"Czas oczekiwania","Write access allowed":"Dost\u0119p do zapisu dozwolony","Write interval":"Interwa\u0142 zapisu","deviceId":"ID Slave","do not include address in ID":"nie podawaj adresu w ID","formula":"formula","ms":"ms","poll":"g\u0142osowanie","preserve dots in ID":"zachowaj kropki w ID","registers":"rejestry","Discrete inputs":"Wej\u015bcia dyskretne","Binary inputs (read-only)":"Wej\u015bcia binarne (tylko do odczytu)","Binary inputs and outputs":"Wej\u015bcia i wyj\u015bcia binarne","Input registers (8-64 bit values, read-only)":"Rejestry wej\u015bciowe (warto\u015bci 8-64 bitowe, tylko do odczytu)","Input/output registers (8-64 bit values)":"Rejestry wej\u015bcia/wyj\u015bcia (warto\u015bci 8-64 bitowe)","Add line":"Dodaj lini\u0119","Edit as TSV (Tab separated values)":"Edytuj jako TSV (warto\u015bci rozdzielone tabulatorami)","Edit mode":"Tryb edycji","Toggle extended mode":"Prze\u0142\u0105cz tryb rozszerzony","Formula":"Formu\u0142a","Change all":"Zmieni\u0107 wszystko","Poll":"G\u0142osowanie","Delete all":"Usu\u0144 wszystko","Nothing":"Nic","Delete item":"Usu\u0144 przedmiot","Don\'t show this message in 5 minutes":"Nie pokazuj tej wiadomo\u015bci przez 5 minut","Are you sure to delete item with address \\"%s\\"?":"Czy na pewno chcesz usun\u0105\u0107 element o adresie \u201e%s\u201d?","Store this value as scaling factor":"Zapisz t\u0119 warto\u015b\u0107 jako wsp\xf3\u0142czynnik skalowania","Write pulses (true \u2192 false edge)":"Zapisuj impulsy (prawda \u2192 fa\u0142szywa kraw\u0119d\u017a)","Delete all items":"Usu\u0144 wszystkie elementy","Are you sure to delete all items?":"Czy na pewno chcesz usun\u0105\u0107 wszystkie elementy?","Edit data as TSV":"Edytuj dane jako TSV","You can copy, paste and edit data as TSV.":"Mo\u017cesz kopiowa\u0107, wkleja\u0107 i edytowa\u0107 dane jako TSV.","Copy to clipboard":"Skopiuj do schowka","TSV was copied to clipboard":"Dane zosta\u0142y skopiowane do schowka","Do not use \\"Write multiple registers\\"":"Nie u\u017cywaj opcji \u201eZapisz wiele rejestr\xf3w\u201d","Use only \\"Write multiple registers\\"":"U\u017cywaj tylko \\"Zapisz wiele rejestr\xf3w\\"","Write only with FC5/FC6":"Zapisuj tylko za pomoc\u0105 FC5/FC6","Write only with FC15/FC16":"Zapis tylko za pomoc\u0105 FC15/FC16","Slave IP address":"Adres IP urz\u0105dzenia podrz\u0119dnego","Listen on all IPs":"S\u0142uchaj na wszystkich adresach IP","Read interval":"Interwa\u0142 odczytu","Slave ID":"Identyfikator niewolnika"}')},421:function(e){e.exports=JSON.parse('{"Add DB":"\u6dfb\u52a0\u6570\u636e\u5e93","Address":"\u5730\u5740","All entries will be deleted. Are you sure?":"\u6240\u6709\u6761\u76ee\u5c06\u88ab\u5220\u9664\u3002\u4f60\u786e\u5b9a\u5417\uff1f","Are you sure?":"\u4f60\u786e\u5b9a\u5417\uff1f","Baud rate":"\u6ce2\u7279\u7387\uff1a","CW":"\u8fde\u7eed\u6ce2","Cancel":"\u53d6\u6d88","Close":"\u5173","Coils":"\u7ebf\u5708","Connection parameters":"\u8fde\u63a5\u53c2\u6570\uff1a","Cyclic write":"\u5faa\u73af\u5199","Data bits":"\u6570\u636e\u4f4d\uff1a","Delete":"\u5220\u9664","Delete address":"\u5220\u9664\u5730\u5740","Delete all entries":"\u5220\u9664\u6240\u6709\u6761\u76ee","Description":"\u63cf\u8ff0","Device ID":"\u8bbe\u5907\u7f16\u53f7\uff1a","Do not align addresses to word":"\u4e0d\u8981\u5c06\u5730\u5740\u5bf9\u9f50\u4e3a16\u4f4d\uff1a","Enable polling of data point":"\u542f\u7528\u6570\u636e\u70b9\u8f6e\u8be2","Export":"\u51fa\u53e3","Export to CSV":"\u5bfc\u51fa\u4e3aCSV","Factor":"\u56e0\u5b50","General":"\u4e00\u822c","Holding Registers":"\u6301\u6709\u767b\u8bb0\u518c","Import":"\u8fdb\u53e3","Import DB file":"\u5bfc\u5165\u6570\u636e\u5e93\u6587\u4ef6\uff1a","Import from CSV":"\u4eceCSV\u5bfc\u5165","Import symbols file":"\u5bfc\u5165\u7b26\u53f7\u6587\u4ef6\uff1a","Input Registers":"\u8f93\u5165\u5bc4\u5b58\u5668","Inputs":"\u79bb\u6563\u8f93\u5165","Length":"\u957f\u5ea6","Load Symbols":"\u52a0\u8f7d\u7b26\u53f7","Master":"\u4e3b","Max read request length (booleans)":"\u6700\u5927\u8bfb\u53d6\u8bf7\u6c42\u957f\u5ea6\uff08\u5e03\u5c14\u503c\uff09","Max read request length":"\u6700\u5927\u8bfb\u53d6\u8bf7\u6c42\u957f\u5ea6\uff08\u6d6e\u52a8\uff09","Multi device IDs":"\u591a\u8bbe\u5907ID\uff1a","Name":"\u540d\u79f0","Offset":"\u504f\u79fb\u91cf","PLC Connection":"PLC\u8fde\u63a5\uff1a","PLC IP Address":"PLC IP\u5730\u5740\uff1a","PLC Rack":"PLC\u673a\u67b6\uff1a","PLC Slot":"PLC\u63d2\u69fd\uff1a","Parity":"\u5e73\u4ef7\uff1a","Partner IP Address":"\u5408\u4f5c\u4f19\u4f34IP\u5730\u5740\uff1a","Poll delay":"\u8f6e\u8be2\u5ef6\u8fdf\uff1a","Port":"\u6e2f\u53e3\uff1a","Pulse time":"\u8109\u51b2\u65f6\u95f4\uff1a","RTU over TCP":"TCP\u4e0a\u7684RTU","RW":"RW","Read timeout":"\u8bfb\u53d6\u8d85\u65f6\uff1a","Reconnect time":"\u91cd\u65b0\u8fde\u63a5\u65f6\u95f4\uff1a","Role":"\u89d2\u8272","Room":"\u623f\u95f4","Round Real to":"\u820d\u5165\u4e3a\uff1a","SF":"SF","Say \\"yes\\" for the next minute":"\u5728\u4e0b\u4e00\u5206\u949f\u8bf4\u201c\u662f\u201d","Select port":"\u9009\u62e9\u7aef\u53e3","Serial":"\u5e8f\u5217\u53f7","Slave":"\u5974\u96b6","Start address":"\u8d77\u59cb\u5730\u5740\uff1a","Stop bits":"\u505c\u6b62\u4f4d\uff1a","TCP":"TCP\u534f\u8bae","TCP/Serial RTU":"TCP /\u4e32\u884cRTU\uff1a","Text copied to clipboard. Click to close the window":"\u6587\u672c\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f\u3002\u70b9\u51fb\u5173\u95ed\u7a97\u53e3","Toggle RW":"\u5207\u6362RW","Toggle WP":"\u5207\u6362WP","Toggle poll":"\u5207\u6362\u6c11\u610f\u8c03\u67e5","Type":"\u7c7b\u578b","Unit":"\u5355\u5143","Update unchanged states":"\u66f4\u65b0\u672a\u66f4\u6539\u72b6\u6001\uff1a","Use aliases as address":"\u4f7f\u7528\u522b\u540d\uff1a","Use direct addresses by aliases":"\u901a\u8fc7\u522b\u540d\u4f7f\u7528\u76f4\u63a5\u5730\u5740\uff1a","WP":"\u53ef\u6e7f\u6027\u7c89\u5242","Wait time":"\u7b49\u5f85\u65f6\u95f4\uff1a","Write access allowed":"\u5141\u8bb8\u5199\u8bbf\u95ee","Write interval":"\u5199\u95f4\u9694\uff1a","deviceId":"\u4ece\u7ad9ID","do not include address in ID":"\u5728ID\u4e2d\u4e0d\u5305\u542b\u5730\u5740\uff1a","formula":"formula","ms":"\u6beb\u79d2","poll":"\u8f6e\u8be2","preserve dots in ID":"\u4fdd\u7559ID\u4e2d\u7684\u70b9\uff1a","registers":"\u5bc4\u5b58\u5668","Discrete inputs":"\u79bb\u6563\u8f93\u5165","Binary inputs (read-only)":"\u4e8c\u8fdb\u5236\u8f93\u5165\uff08\u53ea\u8bfb\uff09","Binary inputs and outputs":"\u4e8c\u8fdb\u5236\u8f93\u5165\u548c\u8f93\u51fa","Input registers (8-64 bit values, read-only)":"\u8f93\u5165\u5bc4\u5b58\u5668\uff088-64 \u4f4d\u503c\uff0c\u53ea\u8bfb\uff09","Input/output registers (8-64 bit values)":"\u8f93\u5165/\u8f93\u51fa\u5bc4\u5b58\u5668\uff088-64 \u4f4d\u503c\uff09","Add line":"\u6dfb\u52a0\u884c","Edit as TSV (Tab separated values)":"\u7f16\u8f91\u4e3a TSV\uff08\u5236\u8868\u7b26\u5206\u9694\u503c\uff09","Edit mode":"\u7f16\u8f91\u6a21\u5f0f","Toggle extended mode":"\u5207\u6362\u6269\u5c55\u6a21\u5f0f","Formula":"\u516c\u5f0f","Change all":"\u5168\u90e8\u66f4\u6539","Poll":"\u8f6e\u8be2","Delete all":"\u5220\u9664\u6240\u6709","Nothing":"\u6ca1\u6709\u4ec0\u4e48","Delete item":"\u5220\u9664\u9879\u76ee","Don\'t show this message in 5 minutes":"5 \u5206\u949f\u5185\u4e0d\u8981\u663e\u793a\u6b64\u6d88\u606f","Are you sure to delete item with address \\"%s\\"?":"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5730\u5740\u4e3a\u201c%s\u201d\u7684\u9879\u76ee\u5417\uff1f","Store this value as scaling factor":"\u5c06\u6b64\u503c\u5b58\u50a8\u4e3a\u6bd4\u4f8b\u56e0\u5b50","Write pulses (true \u2192 false edge)":"\u5199\u8109\u51b2\uff08\u771f\u2192\u5047\u8fb9\u6cbf\uff09","Delete all items":"\u5220\u9664\u6240\u6709\u9879\u76ee","Are you sure to delete all items?":"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6240\u6709\u9879\u76ee\u5417\uff1f","Edit data as TSV":"\u5c06\u6570\u636e\u7f16\u8f91\u4e3a TSV","You can copy, paste and edit data as TSV.":"\u60a8\u53ef\u4ee5\u5c06\u6570\u636e\u590d\u5236\u3001\u7c98\u8d34\u548c\u7f16\u8f91\u4e3a TSV\u3002","Copy to clipboard":"\u590d\u5236\u5230\u526a\u8d34\u677f","TSV was copied to clipboard":"\u6570\u636e\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f","Do not use \\"Write multiple registers\\"":"\u4e0d\u8981\u4f7f\u7528\u201c\u5199\u5165\u591a\u4e2a\u5bc4\u5b58\u5668\u201d","Use only \\"Write multiple registers\\"":"\u4ec5\u4f7f\u7528\u201c\u5199\u5165\u591a\u4e2a\u5bc4\u5b58\u5668\u201d","Write only with FC5/FC6":"\u4ec5\u4f7f\u7528 FC5/FC6 \u5199\u5165","Write only with FC15/FC16":"\u4ec5\u4f7f\u7528 FC15/FC16 \u5199\u5165","Slave IP address":"\u4eceIP\u5730\u5740","Listen on all IPs":"\u4fa6\u542c\u6240\u6709 IP","Read interval":"\u8bfb\u53d6\u95f4\u9694","Slave ID":"\u4ece\u673a ID"}')},423:function(e,t,a){"use strict";a.r(t);var i=a(0),s=a(16),r=a.n(s),n=a(452),o=(a(347),a(174)),l=a(43),d=a(44),c=a(333),u=a(77),p=a(47),m=a(46),g=a(6),v=a(158),h=a(459),b=a(470),f=a(460),y=a(468),C=a(469),S=a(315),I=a.n(S),j=a(222),D=a.n(j),P=a(14),x=a.n(P),w=a(177),T=a(455),R=a(471),O=a(444),k=a(454),W=a(457),A=a(224),E=a(434),F=a(456),z=a(458),L=a(176),B=a(214),N=a(442),U=a(219),V={0:15,1:14,2:13,3:12,4:11,5:10,6:9,7:8,8:7,9:6,10:5,11:4,12:3,13:2,14:1,15:0},M={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15},q={coils:1,disInputs:10001,inputRegs:30001,holdingRegs:40001};var _={address2alias:function(e,t){return parseInt(t,10)+q[e]},alias2address:function(e,t){return parseInt(t,10)-q[e]},nonDirect2direct:function(e,t){return"disInputs"!==e&&"coils"!==e||(t=parseInt(t,10)||0,t=16*Math.floor(t/16)+M[t%16]),t},direct2nonDirect:function(e,t){return"disInputs"===e||"coils"===e?(t=parseInt(t,10)||0,t=16*Math.floor(t/16)+V[t%16]):t}},J=a(321),G=a.n(J),H=a(317),Z=a(318),$=a(7),Y=function(e){Object(p.a)(a,e);var t=Object(m.a)(a);function a(e){var i;return Object(l.a)(this,a),(i=t.call(this,e)).inputDisabled=function(e){return"slave"===e.name&&"tcp"!==i.props.native.params.type||("directAddresses"===e.name&&!i.props.native.params.showAliases||("multiDeviceId"===e.name&&("1"===i.props.native.params.slave||1===i.props.native.params.slave)||(!("doNotUseWriteMultipleRegisters"!==e.name||!i.props.native.params.onlyUseWriteMultipleRegisters)||!("onlyUseWriteMultipleRegisters"!==e.name||!i.props.native.params.doNotUseWriteMultipleRegisters))))},i.inputDisplay=function(e){if(["tcp","tcprtu"].includes(i.props.native.params.type)){if(["comName","baudRate","dataBits","stopBits","parity"].includes(e.name))return!1}else if(["bind","port"].includes(e.name))return!1;return!0},i.changeParam=function(e,t){var a=JSON.parse(JSON.stringify(i.props.native));a.params[e]=t,"slave"===e?"1"!==t&&1!==t||(a.params.multiDeviceId=!1,"serial"!==i.props.native.params.type&&i.readIPs()):"type"===e?("tcp"===t||1!==a.params.slave&&"1"!==a.params.slave||(a.params.slave="0"),"serial"===t&&i.readPorts(),"serial"!==t||"1"!==i.props.native.params.slave&&1!==i.props.native.params.slave||i.readIPs()):"showAliases"===e?["disInputs","inputRegs","holdingRegs","coils"].forEach((function(e){a[e].forEach((function(i){t?(i._address=_.address2alias(e,i._address),a.params.directAddresses&&(i._address=_.nonDirect2direct(e,i._address))):(a.params.directAddresses&&(i._address=_.direct2nonDirect(e,i._address)),i._address=_.alias2address(e,i._address))}))})):"directAddresses"===e&&a.params.showAliases&&["disInputs","coils"].forEach((function(e){a[e].forEach((function(a){a._address=t?_.nonDirect2direct(e,a._address):_.direct2nonDirect(e,a._address)}))})),i.props.changeNative(a)},i.state={ports:null,customPort:!1,ips:null},i}return Object(d.a)(a,[{key:"readPorts",value:function(){var e=this;return this.props.socket.getState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive")).then((function(t){if(t&&t.val)return e.props.socket.sendTo(e.props.adapterName+"."+e.props.instance,"listUart",null).then((function(t){if(t&&t.error)console.error("Cannot read ports: "+t.error);else if(t&&1===t.length&&t[0]&&"Not available"===t[0].path)console.warn("Cannot read ports");else{var a=t.map((function(e){return{value:e.path,title:e.path+(e.manufacturer?" ["+e.manufacturer+"]":"")}})),i=e.props.native.params.comName&&!a.find((function(t){return t.value===e.props.native.params.comName}));e.setState({ports:a,customPort:i})}})).catch((function(e){return console.error("Cannot read ports: "+e)}))})).catch((function(e){return console.error("Cannot read alive: "+e)}))}},{key:"readIPs",value:function(){var e=this;return this.props.socket.getIpAddresses(this.props.common.host).then((function(t){(t=(t=t||[]).map((function(e){return{value:e,title:e}}))).unshift({value:"0.0.0.0",title:"Listen on all IPs"}),t.unshift({value:"127.0.0.1",title:"127.0.0.1 (Localhost)"}),e.setState({ips:t})})).catch((function(e){return console.error("Cannot read IP addresses: "+e)}))}},{key:"componentDidMount",value:function(){"serial"===this.props.native.params.type&&this.readPorts(),"serial"===this.props.native.params.type||"1"!==this.props.native.params.slave&&1!==this.props.native.params.slave||this.readIPs()}},{key:"getInputsBlock",value:function(e,t){var a=this;return Object($.jsx)($.Fragment,{children:Object($.jsxs)(L.a,{className:this.props.classes.optionsContainer,children:[Object($.jsx)(w.a,{variant:"h4",gutterBottom:!0,className:this.props.classes.header,children:x.a.t(t)}),e.map((function(e){return a.inputDisplay(e)?"bind"!==e.name||"serial"===a.props.native.params.type||"1"!==a.props.native.params.slave&&1!==a.props.native.params.slave?"checkbox"===e.type?Object($.jsxs)(A.a,{className:a.props.classes.optionContainer,children:[Object($.jsx)(W.a,{label:x.a.t(e.title),control:Object($.jsx)(R.a,{label:x.a.t(e.title),className:a.props.classes.optionsCheckbox,disabled:a.inputDisabled(e),checked:a.props.native.params[e.name],onChange:function(t){return a.changeParam(e.name,t.target.checked)}})}),e.help?Object($.jsx)(N.a,{className:a.props.classes.helperText,children:x.a.t(e.help)}):null,e.dimension?x.a.t(e.dimension):null]},e.name):"select"===e.type?Object($.jsxs)(B.a,{className:a.props.classes.optionContainer,children:[Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t(e.title)}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:e.options.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]})," ",e.dimension?x.a.t(e.dimension):null]},e.name):"ports"===e.type?Object($.jsxs)(B.a,{className:a.props.classes.optionContainer,children:[a.state.ports&&!a.state.customPort?Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t(e.title)}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:a.state.ports.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]}):Object($.jsx)(T.a,{type:e.type,label:x.a.t(e.title),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}}),a.state.ports?Object($.jsx)(U.a,{onClick:function(){return a.setState({customPort:!a.state.customPort})},children:Object($.jsx)(G.a,{})}):null]},e.name):Object($.jsx)(B.a,{className:a.props.classes.optionContainer,children:Object($.jsx)(T.a,{type:e.type,label:x.a.t(e.title),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}})},e.name):Object($.jsx)(B.a,{className:a.props.classes.optionContainer,children:a.state.ips?Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t("Slave IP address")}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:a.state.ips.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]}):Object($.jsx)(T.a,{type:e.type,label:x.a.t("Slave IP address"),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}})},e.name):null}))]})})}},{key:"render",value:function(){return Object($.jsx)("form",{className:this.props.classes.tab,children:Object($.jsxs)(z.a,{container:!0,spacing:2,children:[Object($.jsx)(z.a,{item:!0,xs:12,md:6,className:this.props.classes.optionsGrid,children:this.getInputsBlock(H,"Connection parameters")}),Object($.jsx)(z.a,{item:!0,xs:12,md:6,className:this.props.classes.optionsGrid,children:this.getInputsBlock(Z,"General")})]})})}}]),a}(i.Component),K=Object(g.a)((function(e){return{optionsSelect:{width:280},optionsTextfield:{width:280},optionContainer:{display:"flex",alignItems:"start",paddingTop:4,paddingBottom:4},helperText:{marginTop:-8,marginLeft:32,marginBottom:10},optionsContainer:{width:"calc(100% - ".concat(e.spacing(4),"px)"),padding:e.spacing(2),display:"inline-block",textAlign:"left"},optionsGrid:{textAlign:"center",padding:e.spacing(2)},header:{fontSize:24}}}))(Y),Q=a(5),X=a.n(Q),ee=a(172),te=a(70),ae=a(60),ie=a(461),se=a(464),re=a(462),ne=a(465),oe=a(463),le=a(472),de=a(467),ce=a(82),ue=a.n(ce),pe=a(330),me=a.n(pe),ge=a(331),ve=a.n(ge),he=a(63),be=a.n(he),fe=a(322),ye=a.n(fe),Ce=a(323),Se=a.n(Ce),Ie=a(325),je=a.n(Ie),De=a(226),Pe=a(327),xe=a.n(Pe),we=a(328),Te=a.n(we),Re=a(296),Oe=a(297),ke=a(298),We=a(299),Ae=a(300),Ee=a(295),Fe=a(103),ze=a.n(Fe),Le=a(223),Be=a.n(Le),Ne=a(329),Ue=a.n(Ne),Ve=Object(g.a)((function(e){return{tsvEditor:{width:"100%",height:400},tsvEditorTextarea:{fontFamily:"monospace"}}}))((function(e){var t=Object(i.useState)(""),a=Object(ae.a)(t,2),s=a[0],r=a[1];Object(i.useEffect)((function(){var t=[];t.push(e.fields.map((function(e){return e.name}))),e.data.forEach((function(a){return t.push(e.fields.map((function(e){return void 0!==a[e.name]&&null!==a[e.name]?a[e.name].toString():""})))})),r(Object(De.json2tsv)(t))}),[e.open]);var n=Object(v.b)().enqueueSnackbar;if(!e.open)return null;return Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,maxWidth:"lg",fullWidth:!0,children:[Object($.jsx)(Ae.a,{children:x.a.t("Edit data as TSV")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t("You can copy, paste and edit data as TSV.")}),Object($.jsx)("div",{children:Object($.jsx)(xe.a,{onChange:function(e){return r(e)},height:"400px",showPrintMargin:!1,value:s,className:e.classes.tsvEditor,width:"100%",setOptions:{firstLineNumber:0},mode:null})})]}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"outlined",color:"primary",onClick:function(){Te()(s),n(x.a.t("TSV was copied to clipboard"))},startIcon:Object($.jsx)(Ue.a,{}),children:x.a.t("Copy to clipboard")}),Object($.jsx)(Ee.a,{variant:"contained",color:"primary",onClick:function(){var t=Object(De.tsv2json)(s.endsWith("\n")?s:s+"\n"),a=t.shift(),i=!0,r=[];for(var o in e.fields)e.fields[o].name!==a[o]&&(r.push(Object($.jsxs)($.Fragment,{children:["No field ",Object($.jsx)("i",{children:e.fields[o].name})," in position ",Object($.jsx)("i",{children:parseInt(o)+1}),"!"]})),i=!1);t=t.map((function(t,a){var s={};for(var n in e.fields)"select"!==e.fields[n].type||e.fields[n].options.map((function(e){return e.value})).includes(t[n])||(r.push(Object($.jsxs)($.Fragment,{children:["Value ",Object($.jsx)("i",{children:t[n]})," is wrong for field ",Object($.jsx)("i",{children:e.fields[n].name})," in position ",Object($.jsx)("i",{children:parseInt(a)+1}),"!"]})),i=!1),"checkbox"===e.fields[n].type&&(t[n]="true"===t[n]),s[e.fields[n].name]=t[n];return s})),i?(e.save(t),e.onClose()):n(Object($.jsx)("div",{children:r.map((function(e,t){return Object($.jsx)("div",{children:e},t)}))}),{variant:"error"})},startIcon:Object($.jsx)(Be.a,{}),children:x.a.t("Import")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Close")})]})]})})),Me=function(e){return e.open?Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,children:[Object($.jsx)(Ae.a,{children:x.a.t("Delete all items")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t("Are you sure to delete all items?")}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"contained",color:"secondary",startIcon:Object($.jsx)(ue.a,{}),onClick:function(){e.action(),e.onClose()},children:x.a.t("Delete all items")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Cancel")})]})]})]}):null},qe=function(e){var t=Object(i.useState)(!1),a=Object(ae.a)(t,2),s=a[0],r=a[1];return Object(i.useEffect)((function(){r(!1)}),[e.open]),e.open?Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,children:[Object($.jsx)(Ae.a,{children:x.a.t("Delete item")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t('Are you sure to delete item with address "%s"?',e.item._address)}),Object($.jsx)(We.a,{children:Object($.jsx)(W.a,{label:x.a.t("Don't show this message in 5 minutes"),control:Object($.jsx)(R.a,{checked:s,onChange:function(e){return r(e.target.checked)}})})}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"contained",color:"secondary",startIcon:Object($.jsx)(ue.a,{}),onClick:function(){e.action(s),e.onClose()},children:x.a.t("Delete")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Cancel")})]})]})]}):null},_e=function(e){var t,a=e.sortedItem,s=e.field,r=e.editMode,n=e.setEditMode,o=Object(i.useRef)(),l=a.item;if("checkbox"===s.type)t=Object($.jsx)(de.a,{title:x.a.t(s.title),children:Object($.jsx)(R.a,{inputRef:o,className:e.classes.tableCheckbox,checked:!!l[s.name],disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t.target.checked)}})});else if("rooms"===s.type)t=r?Object($.jsx)(je.a,{list:e.rooms,allowNone:!0,value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],dense:!0,themeType:e.themeType,inputProps:{ref:o,className:e.classes.tableSelect},disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t)},className:e.classes.tableSelectContainer}):Object($.jsx)(Se.a,{list:e.rooms,value:l[s.name],themeType:e.themeType});else if("select"===s.type)if(r)t=Object($.jsx)(O.a,{value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],inputProps:{ref:o,className:e.classes.tableSelect},disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t.target.value)},className:e.classes.tableSelectContainer,children:s.options.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title?e.title:Object($.jsx)("i",{children:x.a.t("Nothing")})},e.value)}))});else{var d=s.options.find((function(e){return e.value===l[s.name]}));t=d?d.title:""}else t=r?Object($.jsx)(T.a,{value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],className:e.classes.tableTextFieldContainer,inputProps:{ref:o,className:e.classes.tableTextField},type:s.type,onChange:function(t){return e.changeParam(a.$index,s.name,t.target.value)},disabled:e.getDisable(a.$index,s.name)}):l[s.name]?l[s.name]:null;return Object($.jsx)(oe.a,{className:be.a.clsx(e.classes.tableCell,!r&&e.classes.nonEditMode),onClick:function(e){n(!0),window.localStorage.setItem("Modbus.editMode","true"),window.setTimeout((function(){return o.current&&o.current.focus()}),100)},children:t})},Je=Object(g.a)((function(e){return{tableHeader:{whiteSpace:"nowrap",fontWeight:"bold",fontSize:"80%",padding:"0px 8px"},tableHeaderExtended:{color:"dark"===e.palette.type?e.palette.primary.light:e.palette.primary.dark},tableCell:{whiteSpace:"nowrap",fontSize:"80%",padding:"0px 8px"},tableContainer:{overflow:"auto",maxHeight:"calc(100vh - 180px)"},tableTextField:{fontSize:"80%"},tableSelect:{fontSize:"80%"},tableTextFieldContainer:{width:"100%"},tableSelectContainer:{width:"100%"},nonEditMode:{cursor:"pointer"}}}))((function(e){var t=Object(i.useState)(!1),a=Object(ae.a)(t,2),s=a[0],r=a[1],n=Object(i.useState)(parseInt(window.localStorage.getItem("Modbus.editMode"),10)||0),l=Object(ae.a)(n,2),d=l[0],c=l[1],u=Object(i.useState)("true"===window.localStorage.getItem("Modbus.extendedMode")),p=Object(ae.a)(u,2),m=p[0],g=p[1],v=Object(i.useState)({open:!1,action:null}),h=Object(ae.a)(v,2),b=h[0],f=h[1],y=Object(i.useState)({open:!1,item:null,action:null}),C=Object(ae.a)(y,2),S=C[0],I=C[1],j=e.getSortedData(e.data,e.orderBy,e.order);return Object($.jsxs)("div",{children:[Object($.jsxs)("div",{children:[Object($.jsx)(de.a,{title:x.a.t("Add line"),children:Object($.jsx)(U.a,{onClick:function(t){e.addItem()},children:Object($.jsx)(me.a,{})})}),Object($.jsx)(de.a,{title:x.a.t("Edit as TSV (Tab separated values)"),children:Object($.jsx)(U.a,{onClick:function(){return r(!0)},children:Object($.jsx)(ve.a,{})})}),Object($.jsx)(de.a,{title:x.a.t("Toggle extended mode"),children:Object($.jsx)(U.a,{color:m?"primary":"inherit",onClick:function(){window.localStorage.setItem("Modbus.extendedMode",m?"false":"true"),g(!m)},children:Object($.jsx)(ye.a,{})})})]}),Object($.jsx)("div",{className:e.classes.tableContainer,children:Object($.jsxs)(ie.a,{size:"small",stickyHeader:!0,padding:"none",children:[Object($.jsx)(se.a,{children:Object($.jsxs)(ne.a,{children:[e.fields.filter((function(t){return(m||!t.expert)&&(!e.formulaDisabled||!t.formulaDisabled)})).map((function(t){var a=!1,i=!1,s=!1,r=!1;for(var n in e.data)if(e.data[n][t.name]?(a=!0,s=!0):(a=!1,r=!0),s&&r){i=!0,a=!1;break}return Object($.jsxs)(oe.a,{style:{width:"checkbox"===t.type?20:t.width},className:be.a.clsx(e.classes.tableHeader,t.expert&&e.classes.tableHeaderExtended),title:t.tooltip?x.a.t(t.tooltip):null,children:["checkbox"===t.type?Object($.jsx)(de.a,{title:x.a.t("Change all"),children:Object($.jsx)(R.a,{indeterminate:i,checked:a,onChange:function(a){var i=JSON.parse(JSON.stringify(e.data));i.forEach((function(e){return e[t.name]=a.target.checked})),e.changeData(i)}})}):null,t.sorted?Object($.jsx)(le.a,{active:t.name===e.orderBy,direction:e.order,onClick:function(a){var i=e.orderBy===t.name&&"asc"===e.order;e.onChangeOrder(t.name,i?"desc":"asc")},children:x.a.t(t.title)}):x.a.t(t.title)]},t.name)})),Object($.jsx)(oe.a,{children:Object($.jsx)(de.a,{title:x.a.t("Delete all"),children:Object($.jsx)("div",{children:Object($.jsx)(U.a,{size:"small",onClick:function(t){return f({open:!0,action:function(){return e.changeData([])}})},disabled:!e.data.length,children:Object($.jsx)(ue.a,{})})})})})]})}),Object($.jsx)(re.a,{children:j.map((function(t){return Object($.jsxs)(ne.a,{hover:!0,children:[e.fields.filter((function(t){return(m||!t.expert)&&(!e.formulaDisabled||!t.formulaDisabled)})).map((function(a){return Object($.jsx)(_e,Object(o.a)({themeType:e.themeType,sortedItem:t,field:a,editMode:d===t.$index,rooms:e.rooms,setEditMode:function(){return c(t.$index)}},e),a.name)})),Object($.jsx)(oe.a,{children:Object($.jsx)(de.a,{title:x.a.t("Delete"),children:Object($.jsx)("div",{children:Object($.jsx)(U.a,{size:"small",onClick:function(a){var i=window.sessionStorage.getItem("disableDeleteDialogs");i&&new Date-new Date(i)<3e5?e.deleteItem(t.$index):I({open:!0,action:function(a){a&&window.sessionStorage.setItem("disableDeleteDialogs",(new Date).toISOString()),e.deleteItem(t.$index)},item:t.item})},children:Object($.jsx)(ue.a,{})})})})})]},t.$index)}))})]})}),s?Object($.jsx)(Ve,{open:!0,save:e.changeData,onClose:function(){return r(!1)},data:e.data,fields:e.fields}):null,Object($.jsx)(Me,{open:b.open,action:b.action,onClose:function(){return f({open:!1,action:null})}}),Object($.jsx)(qe,{open:S.open,action:S.action,onClose:function(){return I({open:!1,action:null,item:null})},item:S.item})]})})),Ge=function(e){Object(p.a)(a,e);var t=Object(m.a)(a);function a(e){var i;return Object(l.a)(this,a),(i=t.call(this,e)).changeParam=function(e,t,a){var s=JSON.parse(JSON.stringify(i.props.native[i.nativeField]));s[e][t]=a,"_address"===t&&(s[e].address=i.addressToCanonical(a)),i.props.onChange(i.nativeField,s)},i.addItem=function(){var e=JSON.parse(JSON.stringify(i.props.native[i.nativeField])),t={};i.getFields().forEach((function(e){return t[e.name]=""})),e.push(t),i.props.onChange(i.nativeField,e)},i.deleteItem=function(e){var t=JSON.parse(JSON.stringify(i.props.native[i.nativeField]));t.splice(e,1),i.props.onChange(i.nativeField,t)},i.changeData=function(e){i.props.onChange(i.nativeField,e)},i.getDisable=function(e,t){return!1},i.getSortedData=function(e,t,a){e=e||i.props.native[i.nativeField],t=t||i.state.orderBy,a=a||i.state.order;var s=[];e.forEach((function(e,t){s[t]={item:e,$index:t}}));var r=i.fields.find((function(e){return e.name===t}));return s.sort((function(e,i){var s,n;return"deviceId"===t?(s=parseInt(e.item.deviceId,10)<<16|parseInt(e.item._address,10),n=parseInt(i.item.deviceId,10)<<16|parseInt(i.item._address,10)):"$index"===t?(s=e[t],n=i[t]):r&&"number"===r.type?(s=parseInt(e.item[t],10),n=parseInt(i.item[t],10)):(s=e.item[t],n=i.item[t]),("asc"===a?s>n:s=a._address&&e.item._address+parseInt(e.item.len||1,10)=a._address&&e.item._address+parseInt(e.item.len||1,10)i?1:0}))}var it=function(e){Object(p.a)(i,e);var t=Object(m.a)(i);function i(e){var s;Object(l.a)(this,i);var r=Object(o.a)({},e);return r.encryptedFields=["pass"],r.translations={en:a(412),de:a(413),ru:a(414),pt:a(415),nl:a(416),fr:a(417),it:a(418),es:a(419),pl:a(420),"zh-cn":a(421)},(s=t.call(this,e,r)).state.moreLoaded=!1,s.state.rooms=null,s}return Object(d.a)(i,[{key:"onPrepareSave",value:function(e){return e.disInputs&&at(e.disInputs),e.coils&&at(e.coils),e.inputRegs&&at(e.inputRegs),e.holdingRegs&&at(e.holdingRegs),e}},{key:"onConnectionReady",value:function(){var e=this;Object(c.a)(Object(u.a)(i.prototype),"onConnectionReady",this).call(this),this.socket.getEnums("rooms").then((function(t){return e.setState({moreLoaded:!0,rooms:t})}))}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e?tt.findIndex((function(t){return t.name===e})):0}},{key:"render",value:function(){var e=this;return this.state.loaded&&this.state.moreLoaded?Object($.jsx)(n.a,{theme:this.state.theme,children:Object($.jsx)(v.a,{children:Object($.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object($.jsx)(h.a,{position:"static",children:Object($.jsx)(b.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(tt[a].name,a)},variant:"scrollable",scrollButtons:"auto",children:tt.map((function(e){return Object($.jsx)(f.a,{label:e.icon?Object($.jsxs)($.Fragment,{children:[e.icon,x.a.t(e.title)]}):x.a.t(e.title),"data-name":e.name,title:e.tooltip?x.a.t(e.tooltip):void 0},e.name)}))})}),Object($.jsx)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,children:tt.map((function(t,a){var i=t.component;if(e.state.selectedTab){if(e.state.selectedTab!==t.name)return null}else if(0!==a)return null;return Object($.jsx)(i,{formulaDisabled:"1"===e.state.native.params.slave||1===e.state.native.params.slave,common:e.common,socket:e.socket,native:e.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},onLoad:function(t){return e.onLoadConfig(t)},instance:e.instance,adapterName:e.adapterName,changed:e.state.changed,onChange:function(t,a,i){return e.updateNativeValue(t,a,i)},changeNative:function(t){return e.setState({native:t,changed:e.getIsChanged(t)})},rooms:e.state.rooms},t.name)}))}),this.renderError(),this.renderSaveCloseButtons()]})})}):Object($.jsx)(n.a,{theme:this.state.theme,children:Object($.jsx)(D.a,{theme:this.state.themeType})})}}]),i}(I.a),st=Object(g.a)((function(e){return{root:{},tabContent:{padding:10,height:"calc(100% - 64px - 48px - 20px)",overflow:"auto"},tabContentIFrame:{padding:10,height:"calc(100% - 64px - 48px - 20px - 38px)",overflow:"auto"},tab:{width:"100%",minHeight:"100%"}}}))(it);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var rt=a(332),nt=a(221),ot=a.n(nt);window.adapterName="modbus";var lt=be.a.getThemeName();console.log("iobroker.".concat(window.adapterName,"@").concat(rt.a,' using theme "').concat(lt,'"')),function e(){return r.a.render(Object($.jsx)(n.a,{theme:ot()(lt),children:Object($.jsx)(st,{onThemeChange:function(t){lt=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))},70:function(e){e.exports=JSON.parse('[{"value":"","title":""},{"value":"value","title":"value"},{"value":"level","title":"level"},{"value":"state","title":"state"},{"value":"switch","title":"switch"},{"value":"value.temperature","title":"value.temperature"},{"value":"value.humidity","title":"value.humidity"},{"value":"value.brightness","title":"value.brightness"},{"value":"value.uv","title":"value.uv"},{"value":"value.pressure","title":"value.pressure"},{"value":"value.battery","title":"value.battery"},{"value":"value.valve","title":"value.valve"},{"value":"value.time","title":"value.time"},{"value":"value.interval","title":"value.interval"},{"value":"value.window","title":"value.window"},{"value":"button","title":"button"},{"value":"indicator","title":"indicator"},{"value":"level.dimmer","title":"level.dimmer"},{"value":"level.valve","title":"level.valve"},{"value":"level.blind","title":"level.blind"},{"value":"level.temperature","title":"level.temperature"},{"value":"level.interval","title":"level.interval"},{"value":"value.power.consumption","title":"value.power.consumption"}]')}},[[423,1,2]]]);
-//# sourceMappingURL=main.8ffc33a5.chunk.js.map
\ No newline at end of file
+(this["webpackJsonpmodebus-admin"]=this["webpackJsonpmodebus-admin"]||[]).push([[0],{172:function(e){e.exports=JSON.parse('[{"value":"","title":""},{"value":"uint16be","title":"Unsigned 16 bit (Big Endian)"},{"value":"uint16le","title":"Unsigned 16 bit (Little Endian)"},{"value":"int16be","title":"Signed 16 bit (Big Endian)"},{"value":"int16le","title":"Signed 16 bit (Little Endian)"},{"value":"uint32be","title":"Unsigned 32 bit (Big Endian)"},{"value":"uint32le","title":"Unsigned 32 bit (Little Endian)"},{"value":"uint32sw","title":"Unsigned 32 bit (Big Endian Word Swap)"},{"value":"uint32sb","title":"Unsigned 32 bit (Big Endian Byte Swap)"},{"value":"int32be","title":"Signed 32 bit (Big Endian)"},{"value":"int32le","title":"Signed 32 bit (Little Endian)"},{"value":"int32sw","title":"Signed 32 bit (Big Endian Word Swap)"},{"value":"int32sb","title":"Signed 32 bit (Big Endian Byte Swap)"},{"value":"uint64be","title":"Unsigned 64 bit (Big Endian)"},{"value":"uint64le","title":"Unsigned 64 bit (Little Endian)"},{"value":"uint8be","title":"Unsigned 8 bit (Big Endian)"},{"value":"uint8le","title":"Unsigned 8 bit (Little Endian)"},{"value":"int8be","title":"Signed 8 bit (Big Endian)"},{"value":"int8le","title":"Signed 8 bit (Little Endian)"},{"value":"floatbe","title":"Float (Big Endian)"},{"value":"floatle","title":"Float (Little Endian)"},{"value":"floatsw","title":"Float (Big Endian Word Swap)"},{"value":"floatsb","title":"Float (Big Endian Byte Swap)"},{"value":"doublebe","title":"Double (Big Endian)"},{"value":"doublele","title":"Double (Little Endian)"},{"value":"string","title":"String (Zero-end)"},{"value":"stringle","title":"String (Little Endian, Zero-end)"}]')},317:function(e){e.exports=JSON.parse('[{"name":"type","type":"select","title":"TCP/Serial RTU","options":[{"value":"tcp","title":"TCP"},{"value":"serial","title":"Serial"},{"value":"tcprtu","title":"RTU over TCP"}]},{"name":"comName","type":"ports","title":"Port"},{"name":"baudRate","type":"select","title":"Baud rate","options":[{"value":"110","title":"110"},{"value":"150","title":"150"},{"value":"300","title":"300"},{"value":"600","title":"600"},{"value":"1200","title":"1200"},{"value":"2400","title":"2400"},{"value":"4800","title":"4800"},{"value":"9600","title":"9600"},{"value":"19200","title":"19200"},{"value":"38400","title":"38400"},{"value":"56000","title":"56000"},{"value":"57600","title":"57600"},{"value":"115200","title":"115200"}]},{"name":"dataBits","type":"select","title":"Data bits","options":[{"value":"8","title":"8"},{"value":"7","title":"7"},{"value":"6","title":"6"},{"value":"5","title":"5"}]},{"name":"stopBits","type":"select","title":"Stop bits","options":[{"value":"1","title":"1"},{"value":"2","title":"2"}]},{"name":"parity","type":"select","title":"Parity","options":[{"value":"none","title":"none"},{"value":"even","title":"even"},{"value":"mark","title":"mark"},{"value":"odd","title":"odd"},{"value":"space","title":"space"}]},{"name":"bind","type":"text","title":"Partner IP Address"},{"name":"port","type":"number","title":"Port"},{"name":"deviceId","type":"text","title":"Device ID"},{"name":"multiDeviceId","type":"checkbox","title":"Multi device IDs"},{"name":"slave","type":"select","title":"Type","options":[{"value":"0","title":"Master"},{"value":"1","title":"Slave"}]}]')},318:function(e){e.exports=JSON.parse('[{"name":"showAliases","type":"checkbox","title":"Use aliases as address"},{"name":"directAddresses","type":"checkbox","title":"Use direct addresses by aliases"},{"name":"doNotRoundAddressToWord","type":"checkbox","title":"Do not align addresses to word"},{"name":"doNotUseWriteMultipleRegisters","type":"checkbox","title":"Do not use \\"Write multiple registers\\"","help":"Write only with FC5/FC6"},{"name":"onlyUseWriteMultipleRegisters","type":"checkbox","title":"Use only \\"Write multiple registers\\"","help":"Write only with FC15/FC16"},{"name":"round","type":"number","title":"Round Real to"},{"name":"poll","type":"number","title":"Poll delay","dimension":"ms"},{"name":"recon","type":"number","title":"Reconnect time","dimension":"ms"},{"name":"timeout","type":"number","title":"Read timeout","dimension":"ms"},{"name":"pulsetime","type":"number","title":"Pulse time","dimension":"ms"},{"name":"waitTime","type":"number","title":"Wait time","dimension":"ms"},{"name":"maxBlock","type":"number","title":"Max read request length","dimension":"registers"},{"name":"maxBoolBlock","type":"number","title":"Max read request length (booleans)","dimension":"registers"},{"name":"readInterval","type":"number","title":"Read interval","dimension":"ms"},{"name":"writeInterval","type":"number","title":"Write interval","dimension":"ms"},{"name":"alwaysUpdate","type":"checkbox","title":"Update unchanged states"},{"name":"doNotIncludeAdrInId","type":"checkbox","title":"do not include address in ID"},{"name":"preserveDotsInId","type":"checkbox","title":"preserve dots in ID"}]')},332:function(e){e.exports=JSON.parse('{"a":"4.0.3"}')},347:function(e,t,a){},412:function(e){e.exports=JSON.parse('{"Add DB":"Add DB","Address":"Address","All entries will be deleted. Are you sure?":"All entries will be deleted. Are you sure?","Are you sure?":"Are you sure?","Baud rate":"Baud rate","CW":"CW","Cancel":"Cancel","Close":"Close","Coils":"Coils","Connection parameters":"Connection parameters","Cyclic write":"Cyclic write","Data bits":"Data bits","Delete":"Delete","Delete address":"Delete address","Delete all entries":"Delete all entries","Description":"Description","Device ID":"Device ID","Do not align addresses to word":"Do not align addresses to 16 bits","Enable polling of data point":"Poll this data point periodically","Export":"Export","Export to CSV":"Export to CSV","Factor":"Factor","General":"General","Holding Registers":"Holding Registers","Import":"Import","Import DB file":"Import DB file","Import from CSV":"Import from CSV","Import symbols file":"Import symbols file","Input Registers":"Input Registers","Inputs":"Discrete Inputs","Length":"Length","Load Symbols":"Load symbols","Master":"Master","Max read request length (booleans)":"Max read request length (booleans)","Max read request length":"Max read request length (float)","Multi device IDs":"Multiple device IDs","Name":"Name","Offset":"Offset","PLC Connection":"PLC Connection","PLC IP Address":"PLC IP Address","PLC Rack":"PLC Rack","PLC Slot":"PLC Slot","Parity":"Parity","Partner IP Address":"Partner IP Address","Poll delay":"Data polling interval","Port":"Port","Pulse time":"Pulse time","RTU over TCP":"RTU over TCP","RW":"RW","Read timeout":"Read timeout","Reconnect time":"Reconnect delay","Role":"Role","Room":"Room","Round Real to":"Round real to","SF":"SF","Say \\"yes\\" for the next minute":"\\"Yes\\" for the next minute","Select port":"Select serial port","Serial":"Serial","Slave":"Slave","Start address":"Start address","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serial RTU","Text copied to clipboard. Click to close the window":"Text copied to clipboard. Click to close the window.","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Toggle poll","Type":"Type","Unit":"Unit","Update unchanged states":"Update unchanged states","Use aliases as address":"Use aliases","Use direct addresses by aliases":"Use direct addresses (when aliases)","WP":"WP","Wait time":"Wait time","Write access allowed":"Write access allowed","Write interval":"Write interval","deviceId":"Slave ID","do not include address in ID":"Do not include address in ID","formula":"Formula","ms":"ms","poll":"Poll","preserve dots in ID":"Preserve dots in ID","registers":"registers","Discrete inputs":"Discrete inputs","Binary inputs (read-only)":"Binary inputs (read-only)","Binary inputs and outputs":"Binary inputs and outputs","Input registers (8-64 bit values, read-only)":"Input registers (8-64 bit values, read-only)","Input/output registers (8-64 bit values)":"Input/output registers (8-64 bit values)","Add line":"Add line","Edit as TSV (Tab separated values)":"Edit as TSV (Tab separated values)","Edit mode":"Edit mode","Toggle extended mode":"Toggle extended mode","Formula":"Formula","Change all":"Change all","Poll":"Poll","Delete all":"Delete all","Nothing":"Nothing","Delete item":"Delete item","Don\'t show this message in 5 minutes":"Don\'t show this message for 5 minutes","Are you sure to delete item with address \\"%s\\"?":"Are you sure to delete item with address \\"%s\\"?","Store this value as scaling factor":"Store this value as scaling factor","Write pulses (true \u2192 false edge)":"Write pulses (true \u2192 false edge)","Delete all items":"Delete all items","Are you sure to delete all items?":"Are you sure to delete all items?","Edit data as TSV":"Edit data as TSV","You can copy, paste and edit data as TSV.":"You can copy, paste and edit data as TSV.","Copy to clipboard":"Copy to clipboard","TSV was copied to clipboard":"Data was copied to clipboard","Do not use \\"Write multiple registers\\"":"Do not use \\"Write multiple registers\\"","Use only \\"Write multiple registers\\"":"Use only \\"Write multiple registers\\"","Write only with FC5/FC6":"Write only with FC5/FC6","Write only with FC15/FC16":"Write only with FC15/FC16","Slave IP address":"Slave IP address","Listen on all IPs":"Listen on all IPs","Read interval":"Read interval","Slave ID":"Slave ID"}')},413:function(e){e.exports=JSON.parse('{"Add DB":"DB hinzuf\xfcgen","Address":"Adresse","All entries will be deleted. Are you sure?":"Sollen wirklich alle Eintr\xe4ge gel\xf6scht werden?","Are you sure?":"Wirklich sicher?","Baud rate":"Baud rate","CW":"CW","Cancel":"Abbrechen","Close":"Schlie\xdfen","Coils":"Diskrete Ausg\xe4nge","Connection parameters":"Verbindungsparameter","Cyclic write":"Zyklisch schreiben","Data bits":"Data Bits","Delete":"L\xf6schen","Delete address":"Adresse l\xf6schen","Delete all entries":"Alle Eintr\xe4ge l\xf6schen","Description":"Beschreibung","Device ID":"Ger\xe4te ID","Do not align addresses to word":"Die Adressen nicht auf 16 Bits ausrichten","Enable polling of data point":"Datenpunkt zyklisch abfragen","Export":"Export","Export to CSV":"Als CSV exportieren","Factor":"Faktor","General":"Allgemein","Holding Registers":"Holding-register","Import":"Import","Import DB file":"DB-Datei importieren","Import from CSV":"Import aus CSV","Import symbols file":"Symboldatei Importieren","Input Registers":"Eingangsregister","Inputs":"Diskrete Eing\xe4nge","Length":"L\xe4nge","Load Symbols":"Symbole laden","Master":"Master","Max read request length (booleans)":"Max Leseanforderungsl\xe4nge (Booleans)","Max read request length":"Max Leseanforderungsl\xe4nge (Float)","Multi device IDs":"Mehrere Ger\xe4te-IDs","Name":"Name","Offset":"Offset","PLC Connection":"SPS Verbindung","PLC IP Address":"SPS IP Adresse","PLC Rack":"SPS Rack","PLC Slot":"SPS Slot","Parity":"Parit\xe4t","Partner IP Address":"Partner IP-Adresse","Poll delay":"Datenabfrageintervall","Port":"Port","Pulse time":"Impluszeit","RTU over TCP":"RTU \xfcber TCP","RW":"RW","Read timeout":"Wartezeit Lesend","Reconnect time":"Wartezeit bis zum erneuten verbinden ","Role":"Rolle","Room":"Raum","Round Real to":"Zahlen runden auf","SF":"SF","Say \\"yes\\" for the next minute":"\\"Ja\\" f\xfcr die n\xe4chste Minute","Select port":"Serielle Schnittstelle ausw\xe4hlen","Serial":"Seriell","Slave":"Slave","Start address":"Start-Adresse","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serielle RTU","Text copied to clipboard. Click to close the window":"Der Text wurde in die Zwischenablage kopiert. Klicken um das Fenster zu schlie\xdfen.","Toggle RW":"RW umschalten","Toggle WP":"WP umschalten","Toggle poll":"Poll umschalten","Type":"Typ","Unit":"Einheit","Update unchanged states":"Unver\xe4nderte Zust\xe4nde aktualisieren","Use aliases as address":"Aliases benutzen","Use direct addresses by aliases":"Direkte Adressen benutzen (bei Aliases)","WP":"WP","Wait time":"Wartezeit","Write access allowed":"Schreiben erlaubt","Write interval":"Schreibintervall","deviceId":"Slave-ID","do not include address in ID":"Adresse nicht in ID aufnehmen","formula":"Formel","ms":"ms","poll":"Poll","preserve dots in ID":"Punkte in IDs erhalten","registers":"Register","Discrete inputs":"Diskrete Eing\xe4nge","Binary inputs (read-only)":"Bin\xe4re Eing\xe4nge (nur lesen)","Binary inputs and outputs":"Bin\xe4re Ein- und Ausg\xe4nge","Input registers (8-64 bit values, read-only)":"Eingangsregister (8-64 Bit Werte, schreibgesch\xfctzt)","Input/output registers (8-64 bit values)":"Eingabe-/Ausgaberegister (8-64 Bit Werte)","Add line":"Zeile hinzuf\xfcgen","Edit as TSV (Tab separated values)":"Als TSV bearbeiten (Tabulatorgetrennte Werte)","Edit mode":"Bearbeitungsmodus","Toggle extended mode":"Erweiterten Modus umschalten","Formula":"Formel","Change all":"\xc4ndere Alles","Poll":"Abfrage","Delete all":"Alles l\xf6schen","Nothing":"Nichts","Delete item":"Item l\xf6schen","Don\'t show this message in 5 minutes":"Diese Nachricht 5 Minuten lang nicht anzeigen","Are you sure to delete item with address \\"%s\\"?":"Das Element mit der Adresse \\"%s\\" wirklich l\xf6schen?","Store this value as scaling factor":"Diesen Wert als Skalierungsfaktor speichern","Write pulses (true \u2192 false edge)":"Schreibimpulse (wahr \u2192 falsche Flanke)","Delete all items":"Alle Elemente l\xf6schen","Are you sure to delete all items?":"Alle Elemente l\xf6schen?","Edit data as TSV":"Daten als TSV bearbeiten","You can copy, paste and edit data as TSV.":"Man kann die Daten als TSV kopieren, einf\xfcgen und bearbeiten.","Copy to clipboard":"In die Zwischenablage kopieren","TSV was copied to clipboard":"Daten wurden in die Zwischenablage kopiert","Do not use \\"Write multiple registers\\"":"\\"Mehrere Register schreiben\\" nicht verwenden","Use only \\"Write multiple registers\\"":"Nur \\"Write multiple registers\\" verwenden","Write only with FC5/FC6":"Nur mit FC5/FC6 schreiben ","Write only with FC15/FC16":"Nur mit FC15/FC16 schreiben","Slave IP address":"Slave-IP-Adresse","Listen on all IPs":"Zugriff von allen IPs zulassen","Read interval":"Leseintervall","Slave ID":"Slave-ID"}')},414:function(e){e.exports=JSON.parse('{"Add DB":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c DB","Address":"\u0410\u0434\u0440\u0435\u0441","All entries will be deleted. Are you sure?":"\u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","Are you sure?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","Baud rate":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u0430","CW":"CW","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","Coils":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0444\u043b\u0430\u0433\u043e\u0432","Connection parameters":"\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","Cyclic write":"\u041f\u0438\u0441\u0430\u0442\u044c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435","Data bits":"Data bits","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Delete address":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441","Delete all entries":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b","Description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435","Device ID":"ID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430","Do not align addresses to word":"\u041d\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e 16 \u0431\u0438\u0442","Enable polling of data point":"\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u043e\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0446\u0438\u043a\u043b\u0435","Export":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442","Export to CSV":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 CSV","Factor":"\u041c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c","General":"\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435","Holding Registers":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f","Import":"\u0418\u043c\u043f\u043e\u0440\u0442","Import DB file":"\u0418\u043f\u043c\u043e\u0440\u0442 DB \u0444\u0430\u0439\u043b\u043e\u0432","Import from CSV":"\u0418\u043c\u043f\u043e\u0440\u0442 \u0438\u0437 CSV","Import symbols file":"\u0418\u043f\u043c\u043e\u0440\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432","Input Registers":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432\u0445\u043e\u0434\u0430","Inputs":"\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b","Length":"\u0414\u043b\u0438\u043d\u0430","Load Symbols":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b","Master":"Master","Max read request length (booleans)":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 (booleans)","Max read request length":"\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 (float)","Multi device IDs":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e ID","Name":"\u0418\u043c\u044f","Offset":"\u0421\u0434\u0432\u0438\u0433","PLC Connection":"PLC \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435","PLC IP Address":"PLC IP \u0430\u0434\u0440\u0435\u0441","PLC Rack":"PLC Rack","PLC Slot":"PLC \u0441\u043b\u043e\u0442","Parity":"Parity","Partner IP Address":"IP \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0430","Poll delay":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u043f\u0440\u043e\u0441\u0430","Port":"\u041f\u043e\u0440\u0442","Pulse time":"Pulse time","RTU over TCP":"RTU over TCP","RW":"RW","Read timeout":"\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0447\u0442\u0435\u043d\u0438\u044f","Reconnect time":"Reconnect time","Role":"\u0420\u043e\u043b\u044c","Room":"\u041a\u043e\u043c\u043d\u0430\u0442\u0430","Round Real to":"\u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c real \u0434\u043e","SF":"SF","Say \\"yes\\" for the next minute":"\u0421\u043a\u0430\u0436\u0438\u0442\u0435 \xab\u0434\u0430\xbb \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443","Select port":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u0440\u0442","Serial":"Serial","Slave":"Slave","Start address":"\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP/Serial RTU","Text copied to clipboard. Click to close the window":"\u0422\u0435\u043a\u0441\u0442 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430. \u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u043c\u044b\u0448\u043a\u043e\u0439 \u0437\u0434\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e","Toggle RW":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c RW","Toggle WP":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c WP","Toggle poll":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c poll","Type":"\u0422\u0438\u043f","Unit":"\u0415\u0434\u0438\u043d\u0438\u0446\u044b","Update unchanged states":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f","Use aliases as address":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c alias","Use direct addresses by aliases":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0440\u0438 alias","WP":"WP","Wait time":"\u0412\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f","Write access allowed":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e","Write interval":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0437\u0430\u043f\u0438\u0441\u0438","deviceId":"Slave ID","do not include address in ID":"\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u0432 ID","formula":"formula","ms":"ms","poll":"poll","preserve dots in ID":"\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0432 ID","registers":"\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432","Discrete inputs":"\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b","Binary inputs (read-only)":"\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f)","Binary inputs and outputs":"\u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u044b \u0438 \u0432\u044b\u0445\u043e\u0434\u044b","Input registers (8-64 bit values, read-only)":"\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b (8-64-\u0431\u0438\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f)","Input/output registers (8-64 bit values)":"\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432\u0432\u043e\u0434\u0430 / \u0432\u044b\u0432\u043e\u0434\u0430 (8-64-\u0431\u0438\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f)","Add line":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443","Edit as TSV (Tab separated values)":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a TSV (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0435\u0439)","Edit mode":"\u0420\u0435\u0436\u0438\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","Toggle extended mode":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c","Formula":"\u0424\u043e\u0440\u043c\u0443\u043b\u0430","Change all":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435","Poll":"\u041e\u043f\u0440\u043e\u0441","Delete all":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","Nothing":"\u041d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043a\u043e\u0433\u043e","Delete item":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0443\u043d\u043a\u0442","Don\'t show this message in 5 minutes":"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 5 \u043c\u0438\u043d\u0443\u0442","Are you sure to delete item with address \\"%s\\"?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \\"%s\\"?","Store this value as scaling factor":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","Write pulses (true \u2192 false edge)":"\u0418\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0437\u0430\u043f\u0438\u0441\u0438 (\u0438\u0441\u0442\u0438\u043d\u0430 \u2192 \u043b\u043e\u0436\u043d\u044b\u0439 \u0444\u0440\u043e\u043d\u0442)","Delete all items":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b","Are you sure to delete all items?":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b?","Edit data as TSV":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a TSV","You can copy, paste and edit data as TSV.":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043a TSV.","Copy to clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","TSV was copied to clipboard":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","Do not use \\"Write multiple registers\\"":"\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \xabWrite multiple registers\xbb","Use only \\"Write multiple registers\\"":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \xabWrite multiple registers\xbb","Write only with FC5/FC6":"\u0417\u0430\u043f\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 FC5 / FC6","Write only with FC15/FC16":"\u0417\u0430\u043f\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 FC15 / FC16","Slave IP address":"\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441","Listen on all IPs":"\u0421\u043b\u0443\u0448\u0430\u0439\u0442\u0435 \u0432\u0441\u0435 IP","Read interval":"\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0447\u0442\u0435\u043d\u0438\u044f","Slave ID":"ID \u0432\u0435\u0434\u043e\u043c\u043e\u0433\u043e"}')},415:function(e){e.exports=JSON.parse('{"Add DB":"Adicionar DB","Address":"Endere\xe7o","All entries will be deleted. Are you sure?":"Todas as entradas ser\xe3o exclu\xeddas. Voc\xea tem certeza?","Are you sure?":"Voc\xea tem certeza?","Baud rate":"Taxa de transmiss\xe3o de dados","CW":"CW","Cancel":"Cancelar","Close":"Fechar","Coils":"Bobinas","Connection parameters":"Par\xe2metros de conex\xe3o","Cyclic write":"Escrita c\xedclica","Data bits":"Bits de dados","Delete":"Excluir","Delete address":"Excluir endere\xe7o","Delete all entries":"Eliminar todas as entradas","Description":"Descri\xe7\xe3o","Device ID":"ID de dispositivo","Do not align addresses to word":"N\xe3o alinhe endere\xe7os para 16 bits","Enable polling of data point":"Habilitar a vota\xe7\xe3o do ponto de dados","Export":"Exportar","Export to CSV":"Exportar para CSV","Factor":"Fator","General":"Geral","Holding Registers":"Registros de reten\xe7\xe3o","Import":"Importar","Import DB file":"Importar arquivo DB","Import from CSV":"Importa\xe7\xe3o de CSV","Import symbols file":"Arquivo de s\xedmbolos de importa\xe7\xe3o","Input Registers":"Registos de entrada","Inputs":"Entradas discretas","Length":"comprimento","Load Symbols":"Carregar s\xedmbolos","Master":"mestre","Max read request length (booleans)":"Comprimento m\xe1ximo da solicita\xe7\xe3o de leitura (booleans)","Max read request length":"Comprimento m\xe1ximo da solicita\xe7\xe3o de leitura (float)","Multi device IDs":"IDs de v\xe1rios dispositivos","Name":"Nome","Offset":"Offset","PLC Connection":"Conex\xe3o do PLC","PLC IP Address":"Endere\xe7o IP do PLC","PLC Rack":"PLC Rack","PLC Slot":"Slot PLC","Parity":"Paridade","Partner IP Address":"Endere\xe7o IP do parceiro","Poll delay":"Retardo de enquete","Port":"Porta","Pulse time":"Tempo de pulso","RTU over TCP":"RTU sobre TCP","RW":"RW","Read timeout":"Tempo de ler esgotado","Reconnect time":"Reconectar o tempo","Role":"Fun\xe7\xe3o","Room":"Quarto","Round Real to":"Round real to","SF":"SF","Say \\"yes\\" for the next minute":"Diga \\"sim\\" no pr\xf3ximo minuto","Select port":"Selecione a interface serial","Serial":"Serial","Slave":"Escravo","Start address":"Endere\xe7o de in\xedcio","Stop bits":"Parar bits","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Texto copiado para a \xe1rea de transfer\xeancia. Clique para fechar a janela","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Alternar pesquisa","Type":"Tipo","Unit":"Unidade","Update unchanged states":"Atualize estados inalterados","Use aliases as address":"Use aliases","Use direct addresses by aliases":"Use endere\xe7os diretos por alias","WP":"WP","Wait time":"Tempo de espera","Write access allowed":"Acesso de acesso permitido","Write interval":"Intervalo de grava\xe7\xe3o","deviceId":"Slave ID","do not include address in ID":"n\xe3o inclua endere\xe7o no ID","formula":"formula","ms":"ms","poll":"vota\xe7\xe3o","preserve dots in ID":"preservar pontos no ID","registers":"registros","Discrete inputs":"Entradas discretas","Binary inputs (read-only)":"Entradas bin\xe1rias (somente leitura)","Binary inputs and outputs":"Entradas e sa\xeddas bin\xe1rias","Input registers (8-64 bit values, read-only)":"Registros de entrada (valores de 8-64 bits, somente leitura)","Input/output registers (8-64 bit values)":"Registros de entrada / sa\xedda (valores de 8-64 bits)","Add line":"Adicionar linha","Edit as TSV (Tab separated values)":"Editar como TSV (valores separados por tabula\xe7\xe3o)","Edit mode":"Modo de edi\xe7\xe3o","Toggle extended mode":"Alternar modo estendido","Formula":"F\xf3rmula","Change all":"Mude tudo","Poll":"Enquete","Delete all":"Apagar tudo","Nothing":"Nada","Delete item":"Apagar item","Don\'t show this message in 5 minutes":"N\xe3o mostre esta mensagem por 5 minutos","Are you sure to delete item with address \\"%s\\"?":"Tem certeza de que deseja excluir o item com o endere\xe7o \\"%s\\"?","Store this value as scaling factor":"Armazene este valor como fator de escala","Write pulses (true \u2192 false edge)":"Gravar pulsos (verdadeiro \u2192 borda falsa)","Delete all items":"Apagar todos os itens","Are you sure to delete all items?":"Tem certeza de que deseja excluir todos os itens?","Edit data as TSV":"Editar dados como TSV","You can copy, paste and edit data as TSV.":"Voc\xea pode copiar, colar e editar dados como TSV.","Copy to clipboard":"Copiar para \xe1rea de transfer\xeancia","TSV was copied to clipboard":"Os dados foram copiados para a \xe1rea de transfer\xeancia","Do not use \\"Write multiple registers\\"":"N\xe3o use \\"Gravar registros m\xfaltiplos\\"","Use only \\"Write multiple registers\\"":"Use apenas \\"Gravar registros m\xfaltiplos\\"","Write only with FC5/FC6":"Escreva apenas com FC5 / FC6","Write only with FC15/FC16":"Escreva apenas com FC15 / FC16","Slave IP address":"Endere\xe7o IP escravo","Listen on all IPs":"Ou\xe7a em todos os IPs","Read interval":"Intervalo de leitura","Slave ID":"Slave ID"}')},416:function(e){e.exports=JSON.parse('{"Add DB":"Voeg DB toe","Address":"Adres","All entries will be deleted. Are you sure?":"Alle inzendingen worden verwijderd. Weet je het zeker?","Are you sure?":"Weet je het zeker?","Baud rate":"Baudrate","CW":"CW","Cancel":"Annuleer","Close":"Dichtbij","Coils":"coils","Connection parameters":"Verbindingsparameters","Cyclic write":"Cyclisch schrijven","Data bits":"Databits","Delete":"Verwijder","Delete address":"Verwijder adres","Delete all entries":"Verwijder alle vermeldingen","Description":"Beschrijving","Device ID":"Apparaat ID","Do not align addresses to word":"Lijn adressen niet uit met 16 bits","Enable polling of data point":"Polling van gegevenspunt inschakelen","Export":"Exporteren","Export to CSV":"Exporteren naar CSV","Factor":"Factor","General":"Algemeen","Holding Registers":"Registers houden","Import":"Importeren","Import DB file":"DB-bestand importeren","Import from CSV":"Importeren vanuit CSV","Import symbols file":"Symboolbestand importeren","Input Registers":"Invoegregisters","Inputs":"Discrete ingangen","Length":"Lengte","Load Symbols":"Laad symbolen","Master":"Meester","Max read request length (booleans)":"Max. Leesverzoeklengte (booleans)","Max read request length":"Max. Leesverzoeklengte (float)","Multi device IDs":"ID\'s voor meerdere apparaten","Name":"Naam","Offset":"compenseren","PLC Connection":"PLC-verbinding","PLC IP Address":"PLC IP-adres","PLC Rack":"PLC Rack","PLC Slot":"PLC-slot","Parity":"Pariteit","Partner IP Address":"IP-adres van partner","Poll delay":"Poll vertraging","Port":"Haven","Pulse time":"Pulstijd","RTU over TCP":"RTU via TCP","RW":"RW","Read timeout":"Lees time-out","Reconnect time":"Reconnect tijd","Role":"Rol","Room":"Kamer","Round Real to":"Rond echt naar","SF":"SF","Say \\"yes\\" for the next minute":"Zeg \'ja\' voor de volgende minuut","Select port":"Selecteer poort","Serial":"serie-","Slave":"Slaaf","Start address":"Start adres","Stop bits":"Stop bits","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Tekst gekopieerd naar klembord. Klik om het venster te sluiten","Toggle RW":"RW omschakelen","Toggle WP":"Wissel WP","Toggle poll":"Poll wisselen","Type":"Type","Unit":"Eenheid","Update unchanged states":"Ongewijzigde staten bijwerken","Use aliases as address":"Gebruik aliassen","Use direct addresses by aliases":"Gebruik directe adressen op aliassen","WP":"WP","Wait time":"Wacht tijd","Write access allowed":"Schrijftoegang toegestaan","Write interval":"Schrijfinterval","deviceId":"Slave ID","do not include address in ID":"adres niet opnemen in ID","formula":"formula","ms":"ms","poll":"poll","preserve dots in ID":"bewaar stippen in ID","registers":"registers","Discrete inputs":"Discrete ingangen","Binary inputs (read-only)":"Binaire ingangen (alleen-lezen)","Binary inputs and outputs":"Binaire in- en uitgangen","Input registers (8-64 bit values, read-only)":"Invoerregisters (8-64 bit-waarden, alleen-lezen)","Input/output registers (8-64 bit values)":"Input/output registers (8-64 bit waarden)","Add line":"Lijn toevoegen","Edit as TSV (Tab separated values)":"Bewerken als TSV (door tabs gescheiden waarden)","Edit mode":"Bewerkingsmodus","Toggle extended mode":"Schakel uitgebreide modus in","Formula":"Formule","Change all":"Verander alles","Poll":"Opiniepeiling","Delete all":"Verwijder alles","Nothing":"Niets","Delete item":"Verwijder item","Don\'t show this message in 5 minutes":"Dit bericht 5 minuten niet weergeven","Are you sure to delete item with address \\"%s\\"?":"Weet u zeker dat u het item met adres \\"%s\\" wilt verwijderen?","Store this value as scaling factor":"Sla deze waarde op als schaalfactor","Write pulses (true \u2192 false edge)":"Schrijfpulsen (true \u2192 valse flank)","Delete all items":"Alle items verwijderen","Are you sure to delete all items?":"Weet je zeker dat je alle items wilt verwijderen?","Edit data as TSV":"Gegevens bewerken als TSV","You can copy, paste and edit data as TSV.":"U kunt gegevens kopi\xebren, plakken en bewerken als TSV.","Copy to clipboard":"Kopieer naar klembord","TSV was copied to clipboard":"Gegevens zijn naar het klembord gekopieerd","Do not use \\"Write multiple registers\\"":"Gebruik \\"Meerdere registers schrijven\\" niet","Use only \\"Write multiple registers\\"":"Gebruik alleen \\"Meerdere registers schrijven\\"","Write only with FC5/FC6":"Schrijf alleen met FC5/FC6","Write only with FC15/FC16":"Schrijf alleen met FC15/FC16","Slave IP address":"Slave IP-adres","Listen on all IPs":"Luister op alle IP\'s","Read interval":"Lees interval","Slave ID":"Slave-ID"}')},417:function(e){e.exports=JSON.parse('{"Add DB":"Ajouter une DB","Address":"Adresse","All entries will be deleted. Are you sure?":"Toutes les entr\xe9es seront supprim\xe9es. \xcates-vous s\xfbr?","Are you sure?":"\xcates-vous s\xfbr?","Baud rate":"D\xe9bit en bauds","CW":"CW","Cancel":"Annuler","Close":"Fermer","Coils":"Bobines","Connection parameters":"Param\xe8tres de connexion","Cyclic write":"\xc9criture cyclique","Data bits":"Bits de donn\xe9es","Delete":"Effacer","Delete address":"Supprimer l\'adresse","Delete all entries":"Supprimer toutes les entr\xe9es","Description":"La description","Device ID":"Reference de l\'appareil","Do not align addresses to word":"Ne pas aligner les adresses sur 16 bits","Enable polling of data point":"Activer l\'interrogation du point de donn\xe9es","Export":"Exportation","Export to CSV":"Exporter au format CSV","Factor":"Facteur","General":"G\xe9n\xe9ral","Holding Registers":"Tenir des registres","Import":"Importer","Import DB file":"Importer un fichier DB","Import from CSV":"Importer \xe0 partir du fichier CSV","Import symbols file":"Importer un fichier de symboles","Input Registers":"Registres d\'entr\xe9e","Inputs":"Entr\xe9es discr\xe8tes","Length":"Longueur","Load Symbols":"Charger des symboles","Master":"Ma\xeetriser","Max read request length (booleans)":"Max longueur de la requ\xeate de lecture (booleans)","Max read request length":"Max longueur de la requ\xeate de lecture (float)","Multi device IDs":"ID multi-appareils","Name":"pr\xe9nom","Offset":"D\xe9calage","PLC Connection":"Connexion PLC","PLC IP Address":"Adresse IP de l\'API","PLC Rack":"Rack PLC","PLC Slot":"Slot PLC","Parity":"Parit\xe9","Partner IP Address":"Adresse IP du partenaire","Poll delay":"D\xe9lai d\'interrogation","Port":"Port","Pulse time":"Temps d\'impulsion","RTU over TCP":"RTU sur TCP","RW":"RW","Read timeout":"Lire le d\xe9lai d\'attente","Reconnect time":"Reconnectez le temps","Role":"R\xf4le","Room":"Chambre","Round Real to":"Rond r\xe9el \xe0","SF":"SF","Say \\"yes\\" for the next minute":"Dites \\"oui\\" pour la minute suivante","Select port":"S\xe9lectionnez un port","Serial":"En s\xe9rie","Slave":"Esclave","Start address":"Adresse de d\xe9part","Stop bits":"Bits d\'arr\xeat","TCP":"TCP","TCP/Serial RTU":"TCP / S\xe9riel RTU","Text copied to clipboard. Click to close the window":"Texte copi\xe9 dans le presse-papier Cliquez pour fermer la fen\xeatre","Toggle RW":"Toggle RW","Toggle WP":"Toggle WP","Toggle poll":"Basculer le sondage","Type":"Type","Unit":"Unit\xe9","Update unchanged states":"Mettre \xe0 jour les \xe9tats inchang\xe9s","Use aliases as address":"Utiliser des alias","Use direct addresses by aliases":"Utilisez des adresses directes par alias","WP":"WP","Wait time":"Temps d\'attente","Write access allowed":"Acc\xe8s en \xe9criture autoris\xe9","Write interval":"Intervalle d\'\xe9criture","deviceId":"Slave ID","do not include address in ID":"n\'incluez pas l\'adresse dans l\'ID","formula":"formula","ms":"ms","poll":"sondage","preserve dots in ID":"conserver les points dans l\'ID","registers":"registres","Discrete inputs":"Entr\xe9es discr\xe8tes","Binary inputs (read-only)":"Entr\xe9es binaires (lecture seule)","Binary inputs and outputs":"Entr\xe9es et sorties binaires","Input registers (8-64 bit values, read-only)":"Registres d\'entr\xe9e (valeurs 8-64 bits, lecture seule)","Input/output registers (8-64 bit values)":"Registres d\'entr\xe9e/sortie (valeurs 8-64 bits)","Add line":"Ajouter une ligne","Edit as TSV (Tab separated values)":"Modifier en tant que TSV (valeurs s\xe9par\xe9es par des tabulations)","Edit mode":"Mode \xe9dition","Toggle extended mode":"Basculer en mode \xe9tendu","Formula":"Formule","Change all":"Change tout","Poll":"Sondage","Delete all":"Tout supprimer","Nothing":"Rien","Delete item":"Effacer l\'article","Don\'t show this message in 5 minutes":"Ne pas afficher ce message pendant 5 minutes","Are you sure to delete item with address \\"%s\\"?":"\xcates-vous s\xfbr de supprimer l\'\xe9l\xe9ment avec l\'adresse \xab%s\xbb\xa0?","Store this value as scaling factor":"Stocker cette valeur comme facteur d\'\xe9chelle","Write pulses (true \u2192 false edge)":"\xc9crire des impulsions (vrai \u2192 faux front)","Delete all items":"Supprimer tous les \xe9l\xe9ments","Are you sure to delete all items?":"\xcates-vous s\xfbr de supprimer tous les \xe9l\xe9ments\xa0?","Edit data as TSV":"Modifier les donn\xe9es en tant que TSV","You can copy, paste and edit data as TSV.":"Vous pouvez copier, coller et modifier des donn\xe9es au format TSV.","Copy to clipboard":"Copier dans le presse-papier","TSV was copied to clipboard":"Les donn\xe9es ont \xe9t\xe9 copi\xe9es dans le presse-papiers","Do not use \\"Write multiple registers\\"":"N\'utilisez pas \\"Ecrire plusieurs registres\\"","Use only \\"Write multiple registers\\"":"Utilisez uniquement \\"Ecrire plusieurs registres\\"","Write only with FC5/FC6":"\xc9crire uniquement avec FC5/FC6","Write only with FC15/FC16":"\xc9crire uniquement avec FC15/FC16","Slave IP address":"Adresse IP esclave","Listen on all IPs":"\xc9couter sur toutes les IP","Read interval":"Intervalle de lecture","Slave ID":"ID d\'esclave"}')},418:function(e){e.exports=JSON.parse('{"Add DB":"Aggiungi DB","Address":"Indirizzo","All entries will be deleted. Are you sure?":"Tutte le voci saranno cancellate. Sei sicuro?","Are you sure?":"Sei sicuro?","Baud rate":"Baud rate","CW":"CW","Cancel":"Annulla","Close":"Vicino","Coils":"bobine","Connection parameters":"Parametri di connessione","Cyclic write":"Scrittura ciclica","Data bits":"Bit di dati","Delete":"Elimina","Delete address":"Elimina l\'indirizzo","Delete all entries":"Elimina tutte le voci","Description":"Descrizione","Device ID":"ID del dispositivo","Do not align addresses to word":"Non allineare gli indirizzi a 16 bit","Enable polling of data point":"Abilita il polling del punto dati","Export":"Esportare","Export to CSV":"Esporta in CSV","Factor":"Fattore","General":"Generale","Holding Registers":"Holding Registers","Import":"Importare","Import DB file":"Importa file DB","Import from CSV":"Importa da CSV","Import symbols file":"Importa file simboli","Input Registers":"Registri di input","Inputs":"Ingressi discreti","Length":"Lunghezza","Load Symbols":"Carica simboli","Master":"Maestro","Max read request length (booleans)":"Lunghezza massima richiesta di lettura (booleans)","Max read request length":"Lunghezza massima richiesta di lettura (float)","Multi device IDs":"ID multi dispositivo","Name":"Nome","Offset":"Compensare","PLC Connection":"Connessione PLC","PLC IP Address":"Indirizzo IP del PLC","PLC Rack":"Rack PLC","PLC Slot":"Slot PLC","Parity":"Parit\xe0","Partner IP Address":"Indirizzo IP del partner","Poll delay":"Ritardo del sondaggio","Port":"Porta","Pulse time":"Tempo di impulso","RTU over TCP":"RTU su TCP","RW":"RW","Read timeout":"Leggi il timeout","Reconnect time":"Tempo di riconnessione","Role":"Ruolo","Room":"Camera","Round Real to":"Round reale a","SF":"SF","Say \\"yes\\" for the next minute":"D\xec \\"s\xec\\" per il minuto successivo","Select port":"Seleziona porta","Serial":"Seriale","Slave":"Schiavo","Start address":"Indirizzo iniziale","Stop bits":"Stop bit","TCP":"TCP","TCP/Serial RTU":"RTU TCP / seriale","Text copied to clipboard. Click to close the window":"Testo copiato negli appunti. Clicca per chiudere la finestra","Toggle RW":"Attiva / disattiva RW","Toggle WP":"Attiva / disattiva WP","Toggle poll":"Attiva / disattiva sondaggio","Type":"Genere","Unit":"Unit\xe0","Update unchanged states":"Aggiorna stati invariati","Use aliases as address":"Usa alias","Use direct addresses by aliases":"Usa indirizzi diretti per alias","WP":"WP","Wait time":"Tempo di attesa","Write access allowed":"Accesso in scrittura consentito","Write interval":"Intervallo di scrittura","deviceId":"ID slave","do not include address in ID":"non includere l\'indirizzo nell\'ID","formula":"formula","ms":"ms","poll":"sondaggio","preserve dots in ID":"conserva punti nell\'ID","registers":"registri","Discrete inputs":"Ingressi discreti","Binary inputs (read-only)":"Ingressi binari (sola lettura)","Binary inputs and outputs":"Ingressi e uscite binari","Input registers (8-64 bit values, read-only)":"Registri di ingresso (valori 8-64 bit, sola lettura)","Input/output registers (8-64 bit values)":"Registri di ingresso/uscita (valori da 8 a 64 bit)","Add line":"Aggiungi riga","Edit as TSV (Tab separated values)":"Modifica come TSV (valori separati da tabulazioni)","Edit mode":"Modalit\xe0 Modifica","Toggle extended mode":"Attiva/disattiva modalit\xe0 estesa","Formula":"Formula","Change all":"Cambia tutto","Poll":"Sondaggio","Delete all":"Cancella tutto","Nothing":"Niente","Delete item":"Cancellare l\'oggetto","Don\'t show this message in 5 minutes":"Non mostrare questo messaggio per 5 minuti","Are you sure to delete item with address \\"%s\\"?":"Sei sicuro di eliminare l\'elemento con l\'indirizzo \\"%s\\"?","Store this value as scaling factor":"Memorizza questo valore come fattore di scala","Write pulses (true \u2192 false edge)":"Scrivere impulsi (vero \u2192 falso fronte)","Delete all items":"Elimina tutti gli elementi","Are you sure to delete all items?":"Sei sicuro di eliminare tutti gli elementi?","Edit data as TSV":"Modifica dati come TSV","You can copy, paste and edit data as TSV.":"Puoi copiare, incollare e modificare i dati come TSV.","Copy to clipboard":"Copia negli appunti","TSV was copied to clipboard":"I dati sono stati copiati negli appunti","Do not use \\"Write multiple registers\\"":"Non utilizzare \\"Scrivi pi\xf9 registri\\"","Use only \\"Write multiple registers\\"":"Usa solo \\"Scrivi pi\xf9 registri\\"","Write only with FC5/FC6":"Scrivi solo con FC5/FC6","Write only with FC15/FC16":"Scrivi solo con FC15/FC16","Slave IP address":"Indirizzo IP slave","Listen on all IPs":"Ascolta su tutti gli IP","Read interval":"Intervallo di lettura","Slave ID":"ID schiavo"}')},419:function(e){e.exports=JSON.parse('{"Add DB":"Agregar DB","Address":"Direcci\xf3n","All entries will be deleted. Are you sure?":"Todas las entradas ser\xe1n eliminadas. \xbfEst\xe1s seguro?","Are you sure?":"\xbfEst\xe1s seguro?","Baud rate":"Velocidad de baudios","CW":"CW","Cancel":"Cancelar","Close":"Cerca","Coils":"Bobinas","Connection parameters":"Par\xe1metros de conexi\xf3n","Cyclic write":"Escritura c\xedclica","Data bits":"Bits de datos","Delete":"Borrar","Delete address":"Eliminar direcci\xf3n","Delete all entries":"Eliminar todas las entradas","Description":"Descripci\xf3n","Device ID":"ID del dispositivo","Do not align addresses to word":"No alinee las direcciones a 16 bits","Enable polling of data point":"Habilitar el sondeo del punto de datos","Export":"Exportar","Export to CSV":"Exportar a CSV","Factor":"Factor","General":"General","Holding Registers":"Registros de mantenimiento","Import":"Importar","Import DB file":"Importar archivo DB","Import from CSV":"Importar desde CSV","Import symbols file":"Importar archivo de s\xedmbolos","Input Registers":"Registros de entrada","Inputs":"Entradas discretas","Length":"Longitud","Load Symbols":"Cargar s\xedmbolos","Master":"Dominar","Max read request length (booleans)":"Longitud de solicitud de lectura m\xe1xima (booleans)","Max read request length":"Longitud de solicitud de lectura m\xe1xima (float)","Multi device IDs":"ID de dispositivos m\xfaltiples","Name":"Nombre","Offset":"Compensar","PLC Connection":"Conexi\xf3n de PLC","PLC IP Address":"Direcci\xf3n IP del PLC","PLC Rack":"Estante del PLC","PLC Slot":"Ranura de PLC","Parity":"Paridad","Partner IP Address":"Direcci\xf3n IP del socio","Poll delay":"Retraso en la encuesta","Port":"Puerto","Pulse time":"Tiempo de pulso","RTU over TCP":"RTU sobre TCP","RW":"RW","Read timeout":"Tiempo de espera de lectura","Reconnect time":"Tiempo de reconexi\xf3n","Role":"Papel","Room":"Habitaci\xf3n","Round Real to":"Redondo real para","SF":"SF","Say \\"yes\\" for the next minute":"Di \\"s\xed\\" por el pr\xf3ximo minuto","Select port":"Seleccionar puerto","Serial":"De serie","Slave":"Esclavo","Start address":"Direcci\xf3n de inicio","Stop bits":"Bits de parada","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Texto copiado al portapapeles. Haga clic para cerrar la ventana","Toggle RW":"Alternar RW","Toggle WP":"Alternar WP","Toggle poll":"Alternar encuesta","Type":"Tipo","Unit":"Unidad","Update unchanged states":"Actualizar estados sin cambios","Use aliases as address":"Usa alias","Use direct addresses by aliases":"Use direcciones directas por alias","WP":"WP","Wait time":"Tiempo de espera","Write access allowed":"Acceso de escritura permitido","Write interval":"Intervalo de escritura","deviceId":"Slave ID","do not include address in ID":"no incluya la direcci\xf3n en la identificaci\xf3n","formula":"formula","ms":"ms","poll":"encuesta","preserve dots in ID":"preservar puntos en ID","registers":"registros","Discrete inputs":"Entradas discretas","Binary inputs (read-only)":"Entradas binarias (solo lectura)","Binary inputs and outputs":"Entradas y salidas binarias","Input registers (8-64 bit values, read-only)":"Registros de entrada (valores de 8 a 64 bits, solo lectura)","Input/output registers (8-64 bit values)":"Registros de entrada / salida (valores de 8 a 64 bits)","Add line":"A\xf1adir l\xednea","Edit as TSV (Tab separated values)":"Editar como TSV (valores separados por tabulaciones)","Edit mode":"Modo de edici\xf3n","Toggle extended mode":"Alternar modo extendido","Formula":"F\xf3rmula","Change all":"Cambia todo","Poll":"Encuesta","Delete all":"Eliminar todos","Nothing":"Nada","Delete item":"Eliminar elemento","Don\'t show this message in 5 minutes":"No muestre este mensaje durante 5 minutos","Are you sure to delete item with address \\"%s\\"?":"\xbfEst\xe1 seguro de eliminar el elemento con la direcci\xf3n \\"%s\\"?","Store this value as scaling factor":"Almacene este valor como factor de escala","Write pulses (true \u2192 false edge)":"Escribir pulsos (verdadero \u2192 falso borde)","Delete all items":"Eliminar todos los elementos","Are you sure to delete all items?":"\xbfEst\xe1 seguro de eliminar todos los elementos?","Edit data as TSV":"Editar datos como TSV","You can copy, paste and edit data as TSV.":"Puede copiar, pegar y editar datos como TSV.","Copy to clipboard":"Copiar al portapapeles","TSV was copied to clipboard":"Los datos se copiaron al portapapeles","Do not use \\"Write multiple registers\\"":"No utilice \\"Escribir varios registros\\"","Use only \\"Write multiple registers\\"":"Utilice solo \\"Escribir varios registros\\"","Write only with FC5/FC6":"Escribir solo con FC5 / FC6","Write only with FC15/FC16":"Escribir solo con FC15 / FC16","Slave IP address":"Direcci\xf3n IP esclava","Listen on all IPs":"Escuche en todas las direcciones IP","Read interval":"Intervalo de lectura","Slave ID":"ID de esclavo"}')},420:function(e){e.exports=JSON.parse('{"Add DB":"Dodaj DB","Address":"Adres","All entries will be deleted. Are you sure?":"Wszystkie wpisy zostan\u0105 usuni\u0119te. Jeste\u015b pewny?","Are you sure?":"Jeste\u015b pewny?","Baud rate":"Szybko\u015b\u0107 transmisji","CW":"CW","Cancel":"Anuluj","Close":"Blisko","Coils":"Cewki","Connection parameters":"Parametry po\u0142\u0105czenia","Cyclic write":"Cykliczny zapis","Data bits":"Bity danych","Delete":"Kasowa\u0107","Delete address":"Usu\u0144 adres","Delete all entries":"Usu\u0144 wszystkie wpisy","Description":"Opis","Device ID":"Identyfikator urzadzenia","Do not align addresses to word":"Nie wyr\xf3wnaj adres\xf3w do 16 bit\xf3w","Enable polling of data point":"W\u0142\u0105cz odpytywanie punktu danych","Export":"Eksport","Export to CSV":"Eksportuj do pliku CSV","Factor":"Czynnik","General":"Genera\u0142","Holding Registers":"Prowadzenie rejestr\xf3w","Import":"Import","Import DB file":"Importuj plik DB","Import from CSV":"Importuj z CSV","Import symbols file":"Importuj plik symboli","Input Registers":"Rejestry wej\u015bciowe","Inputs":"Wej\u015bcia dyskretne","Length":"D\u0142ugo\u015b\u0107","Load Symbols":"Za\u0142aduj symbole","Master":"Mistrz","Max read request length (booleans)":"Maksymalna d\u0142ugo\u015b\u0107 \u017c\u0105dania odczytu (booleans)","Max read request length":"Maksymalna d\u0142ugo\u015b\u0107 \u017c\u0105dania odczytu (float)","Multi device IDs":"Identyfikatory wielu urz\u0105dze\u0144","Name":"Imi\u0119","Offset":"Offsetowy","PLC Connection":"Po\u0142\u0105czenie PLC","PLC IP Address":"Adres IP sterownika PLC","PLC Rack":"Rack PLC","PLC Slot":"Gniazdo PLC","Parity":"Parytet","Partner IP Address":"Adres IP partnera","Poll delay":"Op\xf3\u017anienie ankiety","Port":"Port","Pulse time":"Czas impulsu","RTU over TCP":"RTU przez TCP","RW":"RW","Read timeout":"Odczyt limitu czasu","Reconnect time":"Czas ponownego po\u0142\u0105czenia","Role":"Rola","Room":"Pok\xf3j","Round Real to":"Runda prawdziwa do","SF":"SF","Say \\"yes\\" for the next minute":"Powiedz \\"tak\\" przez nast\u0119pn\u0105 minut\u0119","Select port":"Wybierz port","Serial":"Seryjny","Slave":"Niewolnik","Start address":"Adres pocz\u0105tkowy","Stop bits":"Stop bit\xf3w","TCP":"TCP","TCP/Serial RTU":"TCP / Serial RTU","Text copied to clipboard. Click to close the window":"Tekst skopiowany do schowka. Kliknij, aby zamkn\u0105\u0107 okno","Toggle RW":"Prze\u0142\u0105cz RW","Toggle WP":"Prze\u0142\u0105cz WP","Toggle poll":"Prze\u0142\u0105cz ankiet\u0119","Type":"Rodzaj","Unit":"Jednostka","Update unchanged states":"Zaktualizuj niezmienione stany","Use aliases as address":"U\u017cyj alias\xf3w","Use direct addresses by aliases":"U\u017cyj bezpo\u015brednich adres\xf3w przez aliasy","WP":"WP","Wait time":"Czas oczekiwania","Write access allowed":"Dost\u0119p do zapisu dozwolony","Write interval":"Interwa\u0142 zapisu","deviceId":"ID Slave","do not include address in ID":"nie podawaj adresu w ID","formula":"formula","ms":"ms","poll":"g\u0142osowanie","preserve dots in ID":"zachowaj kropki w ID","registers":"rejestry","Discrete inputs":"Wej\u015bcia dyskretne","Binary inputs (read-only)":"Wej\u015bcia binarne (tylko do odczytu)","Binary inputs and outputs":"Wej\u015bcia i wyj\u015bcia binarne","Input registers (8-64 bit values, read-only)":"Rejestry wej\u015bciowe (warto\u015bci 8-64 bitowe, tylko do odczytu)","Input/output registers (8-64 bit values)":"Rejestry wej\u015bcia/wyj\u015bcia (warto\u015bci 8-64 bitowe)","Add line":"Dodaj lini\u0119","Edit as TSV (Tab separated values)":"Edytuj jako TSV (warto\u015bci rozdzielone tabulatorami)","Edit mode":"Tryb edycji","Toggle extended mode":"Prze\u0142\u0105cz tryb rozszerzony","Formula":"Formu\u0142a","Change all":"Zmieni\u0107 wszystko","Poll":"G\u0142osowanie","Delete all":"Usu\u0144 wszystko","Nothing":"Nic","Delete item":"Usu\u0144 przedmiot","Don\'t show this message in 5 minutes":"Nie pokazuj tej wiadomo\u015bci przez 5 minut","Are you sure to delete item with address \\"%s\\"?":"Czy na pewno chcesz usun\u0105\u0107 element o adresie \u201e%s\u201d?","Store this value as scaling factor":"Zapisz t\u0119 warto\u015b\u0107 jako wsp\xf3\u0142czynnik skalowania","Write pulses (true \u2192 false edge)":"Zapisuj impulsy (prawda \u2192 fa\u0142szywa kraw\u0119d\u017a)","Delete all items":"Usu\u0144 wszystkie elementy","Are you sure to delete all items?":"Czy na pewno chcesz usun\u0105\u0107 wszystkie elementy?","Edit data as TSV":"Edytuj dane jako TSV","You can copy, paste and edit data as TSV.":"Mo\u017cesz kopiowa\u0107, wkleja\u0107 i edytowa\u0107 dane jako TSV.","Copy to clipboard":"Skopiuj do schowka","TSV was copied to clipboard":"Dane zosta\u0142y skopiowane do schowka","Do not use \\"Write multiple registers\\"":"Nie u\u017cywaj opcji \u201eZapisz wiele rejestr\xf3w\u201d","Use only \\"Write multiple registers\\"":"U\u017cywaj tylko \\"Zapisz wiele rejestr\xf3w\\"","Write only with FC5/FC6":"Zapisuj tylko za pomoc\u0105 FC5/FC6","Write only with FC15/FC16":"Zapis tylko za pomoc\u0105 FC15/FC16","Slave IP address":"Adres IP urz\u0105dzenia podrz\u0119dnego","Listen on all IPs":"S\u0142uchaj na wszystkich adresach IP","Read interval":"Interwa\u0142 odczytu","Slave ID":"Identyfikator niewolnika"}')},421:function(e){e.exports=JSON.parse('{"Add DB":"\u6dfb\u52a0\u6570\u636e\u5e93","Address":"\u5730\u5740","All entries will be deleted. Are you sure?":"\u6240\u6709\u6761\u76ee\u5c06\u88ab\u5220\u9664\u3002\u4f60\u786e\u5b9a\u5417\uff1f","Are you sure?":"\u4f60\u786e\u5b9a\u5417\uff1f","Baud rate":"\u6ce2\u7279\u7387\uff1a","CW":"\u8fde\u7eed\u6ce2","Cancel":"\u53d6\u6d88","Close":"\u5173","Coils":"\u7ebf\u5708","Connection parameters":"\u8fde\u63a5\u53c2\u6570\uff1a","Cyclic write":"\u5faa\u73af\u5199","Data bits":"\u6570\u636e\u4f4d\uff1a","Delete":"\u5220\u9664","Delete address":"\u5220\u9664\u5730\u5740","Delete all entries":"\u5220\u9664\u6240\u6709\u6761\u76ee","Description":"\u63cf\u8ff0","Device ID":"\u8bbe\u5907\u7f16\u53f7\uff1a","Do not align addresses to word":"\u4e0d\u8981\u5c06\u5730\u5740\u5bf9\u9f50\u4e3a16\u4f4d\uff1a","Enable polling of data point":"\u542f\u7528\u6570\u636e\u70b9\u8f6e\u8be2","Export":"\u51fa\u53e3","Export to CSV":"\u5bfc\u51fa\u4e3aCSV","Factor":"\u56e0\u5b50","General":"\u4e00\u822c","Holding Registers":"\u6301\u6709\u767b\u8bb0\u518c","Import":"\u8fdb\u53e3","Import DB file":"\u5bfc\u5165\u6570\u636e\u5e93\u6587\u4ef6\uff1a","Import from CSV":"\u4eceCSV\u5bfc\u5165","Import symbols file":"\u5bfc\u5165\u7b26\u53f7\u6587\u4ef6\uff1a","Input Registers":"\u8f93\u5165\u5bc4\u5b58\u5668","Inputs":"\u79bb\u6563\u8f93\u5165","Length":"\u957f\u5ea6","Load Symbols":"\u52a0\u8f7d\u7b26\u53f7","Master":"\u4e3b","Max read request length (booleans)":"\u6700\u5927\u8bfb\u53d6\u8bf7\u6c42\u957f\u5ea6\uff08\u5e03\u5c14\u503c\uff09","Max read request length":"\u6700\u5927\u8bfb\u53d6\u8bf7\u6c42\u957f\u5ea6\uff08\u6d6e\u52a8\uff09","Multi device IDs":"\u591a\u8bbe\u5907ID\uff1a","Name":"\u540d\u79f0","Offset":"\u504f\u79fb\u91cf","PLC Connection":"PLC\u8fde\u63a5\uff1a","PLC IP Address":"PLC IP\u5730\u5740\uff1a","PLC Rack":"PLC\u673a\u67b6\uff1a","PLC Slot":"PLC\u63d2\u69fd\uff1a","Parity":"\u5e73\u4ef7\uff1a","Partner IP Address":"\u5408\u4f5c\u4f19\u4f34IP\u5730\u5740\uff1a","Poll delay":"\u8f6e\u8be2\u5ef6\u8fdf\uff1a","Port":"\u6e2f\u53e3\uff1a","Pulse time":"\u8109\u51b2\u65f6\u95f4\uff1a","RTU over TCP":"TCP\u4e0a\u7684RTU","RW":"RW","Read timeout":"\u8bfb\u53d6\u8d85\u65f6\uff1a","Reconnect time":"\u91cd\u65b0\u8fde\u63a5\u65f6\u95f4\uff1a","Role":"\u89d2\u8272","Room":"\u623f\u95f4","Round Real to":"\u820d\u5165\u4e3a\uff1a","SF":"SF","Say \\"yes\\" for the next minute":"\u5728\u4e0b\u4e00\u5206\u949f\u8bf4\u201c\u662f\u201d","Select port":"\u9009\u62e9\u7aef\u53e3","Serial":"\u5e8f\u5217\u53f7","Slave":"\u5974\u96b6","Start address":"\u8d77\u59cb\u5730\u5740\uff1a","Stop bits":"\u505c\u6b62\u4f4d\uff1a","TCP":"TCP\u534f\u8bae","TCP/Serial RTU":"TCP /\u4e32\u884cRTU\uff1a","Text copied to clipboard. Click to close the window":"\u6587\u672c\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f\u3002\u70b9\u51fb\u5173\u95ed\u7a97\u53e3","Toggle RW":"\u5207\u6362RW","Toggle WP":"\u5207\u6362WP","Toggle poll":"\u5207\u6362\u6c11\u610f\u8c03\u67e5","Type":"\u7c7b\u578b","Unit":"\u5355\u5143","Update unchanged states":"\u66f4\u65b0\u672a\u66f4\u6539\u72b6\u6001\uff1a","Use aliases as address":"\u4f7f\u7528\u522b\u540d\uff1a","Use direct addresses by aliases":"\u901a\u8fc7\u522b\u540d\u4f7f\u7528\u76f4\u63a5\u5730\u5740\uff1a","WP":"\u53ef\u6e7f\u6027\u7c89\u5242","Wait time":"\u7b49\u5f85\u65f6\u95f4\uff1a","Write access allowed":"\u5141\u8bb8\u5199\u8bbf\u95ee","Write interval":"\u5199\u95f4\u9694\uff1a","deviceId":"\u4ece\u7ad9ID","do not include address in ID":"\u5728ID\u4e2d\u4e0d\u5305\u542b\u5730\u5740\uff1a","formula":"formula","ms":"\u6beb\u79d2","poll":"\u8f6e\u8be2","preserve dots in ID":"\u4fdd\u7559ID\u4e2d\u7684\u70b9\uff1a","registers":"\u5bc4\u5b58\u5668","Discrete inputs":"\u79bb\u6563\u8f93\u5165","Binary inputs (read-only)":"\u4e8c\u8fdb\u5236\u8f93\u5165\uff08\u53ea\u8bfb\uff09","Binary inputs and outputs":"\u4e8c\u8fdb\u5236\u8f93\u5165\u548c\u8f93\u51fa","Input registers (8-64 bit values, read-only)":"\u8f93\u5165\u5bc4\u5b58\u5668\uff088-64 \u4f4d\u503c\uff0c\u53ea\u8bfb\uff09","Input/output registers (8-64 bit values)":"\u8f93\u5165/\u8f93\u51fa\u5bc4\u5b58\u5668\uff088-64 \u4f4d\u503c\uff09","Add line":"\u6dfb\u52a0\u884c","Edit as TSV (Tab separated values)":"\u7f16\u8f91\u4e3a TSV\uff08\u5236\u8868\u7b26\u5206\u9694\u503c\uff09","Edit mode":"\u7f16\u8f91\u6a21\u5f0f","Toggle extended mode":"\u5207\u6362\u6269\u5c55\u6a21\u5f0f","Formula":"\u516c\u5f0f","Change all":"\u5168\u90e8\u66f4\u6539","Poll":"\u8f6e\u8be2","Delete all":"\u5220\u9664\u6240\u6709","Nothing":"\u6ca1\u6709\u4ec0\u4e48","Delete item":"\u5220\u9664\u9879\u76ee","Don\'t show this message in 5 minutes":"5 \u5206\u949f\u5185\u4e0d\u8981\u663e\u793a\u6b64\u6d88\u606f","Are you sure to delete item with address \\"%s\\"?":"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5730\u5740\u4e3a\u201c%s\u201d\u7684\u9879\u76ee\u5417\uff1f","Store this value as scaling factor":"\u5c06\u6b64\u503c\u5b58\u50a8\u4e3a\u6bd4\u4f8b\u56e0\u5b50","Write pulses (true \u2192 false edge)":"\u5199\u8109\u51b2\uff08\u771f\u2192\u5047\u8fb9\u6cbf\uff09","Delete all items":"\u5220\u9664\u6240\u6709\u9879\u76ee","Are you sure to delete all items?":"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6240\u6709\u9879\u76ee\u5417\uff1f","Edit data as TSV":"\u5c06\u6570\u636e\u7f16\u8f91\u4e3a TSV","You can copy, paste and edit data as TSV.":"\u60a8\u53ef\u4ee5\u5c06\u6570\u636e\u590d\u5236\u3001\u7c98\u8d34\u548c\u7f16\u8f91\u4e3a TSV\u3002","Copy to clipboard":"\u590d\u5236\u5230\u526a\u8d34\u677f","TSV was copied to clipboard":"\u6570\u636e\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f","Do not use \\"Write multiple registers\\"":"\u4e0d\u8981\u4f7f\u7528\u201c\u5199\u5165\u591a\u4e2a\u5bc4\u5b58\u5668\u201d","Use only \\"Write multiple registers\\"":"\u4ec5\u4f7f\u7528\u201c\u5199\u5165\u591a\u4e2a\u5bc4\u5b58\u5668\u201d","Write only with FC5/FC6":"\u4ec5\u4f7f\u7528 FC5/FC6 \u5199\u5165","Write only with FC15/FC16":"\u4ec5\u4f7f\u7528 FC15/FC16 \u5199\u5165","Slave IP address":"\u4eceIP\u5730\u5740","Listen on all IPs":"\u4fa6\u542c\u6240\u6709 IP","Read interval":"\u8bfb\u53d6\u95f4\u9694","Slave ID":"\u4ece\u673a ID"}')},423:function(e,t,a){"use strict";a.r(t);var i=a(0),s=a(16),r=a.n(s),n=a(452),o=(a(347),a(174)),l=a(43),d=a(44),c=a(333),u=a(77),p=a(47),m=a(46),g=a(6),v=a(158),h=a(459),b=a(470),f=a(460),y=a(468),C=a(469),S=a(315),I=a.n(S),j=a(222),D=a.n(j),P=a(14),x=a.n(P),w=a(177),T=a(455),R=a(471),O=a(444),k=a(454),W=a(457),A=a(224),E=a(434),F=a(456),z=a(458),L=a(176),B=a(214),N=a(442),U=a(219),V={0:15,1:14,2:13,3:12,4:11,5:10,6:9,7:8,8:7,9:6,10:5,11:4,12:3,13:2,14:1,15:0},M={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15},q={coils:1,disInputs:10001,inputRegs:30001,holdingRegs:40001};var _={address2alias:function(e,t){return parseInt(t,10)+q[e]},alias2address:function(e,t){return parseInt(t,10)-q[e]},nonDirect2direct:function(e,t){return"disInputs"!==e&&"coils"!==e||(t=parseInt(t,10)||0,t=16*Math.floor(t/16)+M[t%16]),t},direct2nonDirect:function(e,t){return"disInputs"===e||"coils"===e?(t=parseInt(t,10)||0,t=16*Math.floor(t/16)+V[t%16]):t}},J=a(321),G=a.n(J),H=a(317),Z=a(318),$=a(7),Y=function(e){Object(p.a)(a,e);var t=Object(m.a)(a);function a(e){var i;return Object(l.a)(this,a),(i=t.call(this,e)).inputDisabled=function(e){return"slave"===e.name&&"tcp"!==i.props.native.params.type||("directAddresses"===e.name&&!i.props.native.params.showAliases||("multiDeviceId"===e.name&&("1"===i.props.native.params.slave||1===i.props.native.params.slave)||(!("doNotUseWriteMultipleRegisters"!==e.name||!i.props.native.params.onlyUseWriteMultipleRegisters)||!("onlyUseWriteMultipleRegisters"!==e.name||!i.props.native.params.doNotUseWriteMultipleRegisters))))},i.inputDisplay=function(e){if(["tcp","tcprtu"].includes(i.props.native.params.type)){if(["comName","baudRate","dataBits","stopBits","parity"].includes(e.name))return!1}else if(["bind","port"].includes(e.name))return!1;return!0},i.changeParam=function(e,t){var a=JSON.parse(JSON.stringify(i.props.native));a.params[e]=t,"slave"===e?"1"!==t&&1!==t||(a.params.multiDeviceId=!1,"serial"!==i.props.native.params.type&&i.readIPs()):"type"===e?("tcp"===t||1!==a.params.slave&&"1"!==a.params.slave||(a.params.slave="0"),"serial"===t&&i.readPorts(),"serial"!==t||"1"!==i.props.native.params.slave&&1!==i.props.native.params.slave||i.readIPs()):"showAliases"===e?["disInputs","inputRegs","holdingRegs","coils"].forEach((function(e){a[e].forEach((function(i){t?(i._address=_.address2alias(e,i._address),a.params.directAddresses&&(i._address=_.nonDirect2direct(e,i._address))):(a.params.directAddresses&&(i._address=_.direct2nonDirect(e,i._address)),i._address=_.alias2address(e,i._address))}))})):"directAddresses"===e&&a.params.showAliases&&["disInputs","coils"].forEach((function(e){a[e].forEach((function(a){a._address=t?_.nonDirect2direct(e,a._address):_.direct2nonDirect(e,a._address)}))})),i.props.changeNative(a)},i.state={ports:null,customPort:!1,ips:null},i}return Object(d.a)(a,[{key:"readPorts",value:function(){var e=this;return this.props.socket.getState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive")).then((function(t){if(t&&t.val)return e.props.socket.sendTo(e.props.adapterName+"."+e.props.instance,"listUart",null).then((function(t){if(t&&t.error)console.error("Cannot read ports: "+t.error);else if(t&&1===t.length&&t[0]&&"Not available"===t[0].path)console.warn("Cannot read ports");else{var a=t.map((function(e){return{value:e.path,title:e.path+(e.manufacturer?" ["+e.manufacturer+"]":"")}})),i=e.props.native.params.comName&&!a.find((function(t){return t.value===e.props.native.params.comName}));e.setState({ports:a,customPort:i})}})).catch((function(e){return console.error("Cannot read ports: "+e)}))})).catch((function(e){return console.error("Cannot read alive: "+e)}))}},{key:"readIPs",value:function(){var e=this;return this.props.socket.getIpAddresses(this.props.common.host).then((function(t){(t=(t=t||[]).map((function(e){return{value:e,title:e}}))).unshift({value:"0.0.0.0",title:"Listen on all IPs"}),t.unshift({value:"127.0.0.1",title:"127.0.0.1 (Localhost)"}),e.setState({ips:t})})).catch((function(e){return console.error("Cannot read IP addresses: "+e)}))}},{key:"componentDidMount",value:function(){"serial"===this.props.native.params.type&&this.readPorts(),"serial"===this.props.native.params.type||"1"!==this.props.native.params.slave&&1!==this.props.native.params.slave||this.readIPs()}},{key:"getInputsBlock",value:function(e,t){var a=this;return Object($.jsx)($.Fragment,{children:Object($.jsxs)(L.a,{className:this.props.classes.optionsContainer,children:[Object($.jsx)(w.a,{variant:"h4",gutterBottom:!0,className:this.props.classes.header,children:x.a.t(t)}),e.map((function(e){return a.inputDisplay(e)?"bind"!==e.name||"serial"===a.props.native.params.type||"1"!==a.props.native.params.slave&&1!==a.props.native.params.slave?"checkbox"===e.type?Object($.jsxs)(A.a,{className:a.props.classes.optionContainer,children:[Object($.jsx)(W.a,{label:x.a.t(e.title),control:Object($.jsx)(R.a,{label:x.a.t(e.title),className:a.props.classes.optionsCheckbox,disabled:a.inputDisabled(e),checked:a.props.native.params[e.name],onChange:function(t){return a.changeParam(e.name,t.target.checked)}})}),e.help?Object($.jsx)(N.a,{className:a.props.classes.helperText,children:x.a.t(e.help)}):null,e.dimension?x.a.t(e.dimension):null]},e.name):"select"===e.type?Object($.jsxs)(B.a,{className:a.props.classes.optionContainer,children:[Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t(e.title)}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:e.options.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]})," ",e.dimension?x.a.t(e.dimension):null]},e.name):"ports"===e.type?Object($.jsxs)(B.a,{className:a.props.classes.optionContainer,children:[a.state.ports&&!a.state.customPort?Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t(e.title)}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:a.state.ports.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]}):Object($.jsx)(T.a,{type:e.type,label:x.a.t(e.title),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}}),a.state.ports?Object($.jsx)(U.a,{onClick:function(){return a.setState({customPort:!a.state.customPort})},children:Object($.jsx)(G.a,{})}):null]},e.name):Object($.jsx)(B.a,{className:a.props.classes.optionContainer,children:Object($.jsx)(T.a,{type:e.type,label:x.a.t(e.title),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}})},e.name):Object($.jsx)(B.a,{className:a.props.classes.optionContainer,children:a.state.ips?Object($.jsxs)(A.a,{children:[Object($.jsx)(E.a,{children:x.a.t("Slave IP address")}),Object($.jsx)(O.a,{className:a.props.classes.optionsSelect,disabled:a.inputDisabled(e),value:a.props.native.params[e.name]||"",onChange:function(t){return a.changeParam(e.name,t.target.value)},children:a.state.ips.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title},e.value)}))})]}):Object($.jsx)(T.a,{type:e.type,label:x.a.t("Slave IP address"),className:a.props.classes.optionsTextfield,disabled:a.inputDisabled(e),helperText:e.help?x.a.t(e.help):"",value:a.props.native.params[e.name],InputProps:{endAdornment:e.dimension?Object($.jsx)(F.a,{position:"end",children:x.a.t(e.dimension)}):null},onChange:function(t){return a.changeParam(e.name,t.target.value)}})},e.name):null}))]})})}},{key:"render",value:function(){return Object($.jsx)("form",{className:this.props.classes.tab,children:Object($.jsxs)(z.a,{container:!0,spacing:2,children:[Object($.jsx)(z.a,{item:!0,xs:12,md:6,className:this.props.classes.optionsGrid,children:this.getInputsBlock(H,"Connection parameters")}),Object($.jsx)(z.a,{item:!0,xs:12,md:6,className:this.props.classes.optionsGrid,children:this.getInputsBlock(Z,"General")})]})})}}]),a}(i.Component),K=Object(g.a)((function(e){return{optionsSelect:{width:280},optionsTextfield:{width:280},optionContainer:{display:"flex",alignItems:"start",paddingTop:4,paddingBottom:4},helperText:{marginTop:-8,marginLeft:32,marginBottom:10},optionsContainer:{width:"calc(100% - ".concat(e.spacing(4),"px)"),padding:e.spacing(2),display:"inline-block",textAlign:"left"},optionsGrid:{textAlign:"center",padding:e.spacing(2)},header:{fontSize:24}}}))(Y),Q=a(5),X=a.n(Q),ee=a(172),te=a(70),ae=a(60),ie=a(461),se=a(464),re=a(462),ne=a(465),oe=a(463),le=a(472),de=a(467),ce=a(82),ue=a.n(ce),pe=a(330),me=a.n(pe),ge=a(331),ve=a.n(ge),he=a(63),be=a.n(he),fe=a(322),ye=a.n(fe),Ce=a(323),Se=a.n(Ce),Ie=a(325),je=a.n(Ie),De=a(226),Pe=a(327),xe=a.n(Pe),we=a(328),Te=a.n(we),Re=a(296),Oe=a(297),ke=a(298),We=a(299),Ae=a(300),Ee=a(295),Fe=a(103),ze=a.n(Fe),Le=a(223),Be=a.n(Le),Ne=a(329),Ue=a.n(Ne),Ve=Object(g.a)((function(e){return{tsvEditor:{width:"100%",height:400},tsvEditorTextarea:{fontFamily:"monospace"}}}))((function(e){var t=Object(i.useState)(""),a=Object(ae.a)(t,2),s=a[0],r=a[1];Object(i.useEffect)((function(){var t=[];t.push(e.fields.map((function(e){return e.name}))),e.data.forEach((function(a){return t.push(e.fields.map((function(e){return void 0!==a[e.name]&&null!==a[e.name]?a[e.name].toString():""})))})),r(Object(De.json2tsv)(t))}),[e.open]);var n=Object(v.b)().enqueueSnackbar;if(!e.open)return null;return Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,maxWidth:"lg",fullWidth:!0,children:[Object($.jsx)(Ae.a,{children:x.a.t("Edit data as TSV")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t("You can copy, paste and edit data as TSV.")}),Object($.jsx)("div",{children:Object($.jsx)(xe.a,{onChange:function(e){return r(e)},height:"400px",showPrintMargin:!1,value:s,className:e.classes.tsvEditor,width:"100%",setOptions:{firstLineNumber:0},mode:null})})]}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"outlined",color:"primary",onClick:function(){Te()(s),n(x.a.t("TSV was copied to clipboard"))},startIcon:Object($.jsx)(Ue.a,{}),children:x.a.t("Copy to clipboard")}),Object($.jsx)(Ee.a,{variant:"contained",color:"primary",onClick:function(){var t=Object(De.tsv2json)(s.endsWith("\n")?s:s+"\n"),a=t.shift(),i=!0,r=[];for(var o in e.fields)e.fields[o].name!==a[o]&&(r.push(Object($.jsxs)($.Fragment,{children:["No field ",Object($.jsx)("i",{children:e.fields[o].name})," in position ",Object($.jsx)("i",{children:parseInt(o)+1}),"!"]})),i=!1);t=t.map((function(t,a){var s={};for(var n in e.fields)"select"!==e.fields[n].type||e.fields[n].options.map((function(e){return e.value})).includes(t[n])||(r.push(Object($.jsxs)($.Fragment,{children:["Value ",Object($.jsx)("i",{children:t[n]})," is wrong for field ",Object($.jsx)("i",{children:e.fields[n].name})," in position ",Object($.jsx)("i",{children:parseInt(a)+1}),"!"]})),i=!1),"checkbox"===e.fields[n].type&&(t[n]="true"===t[n]),s[e.fields[n].name]=t[n];return s})),i?(e.save(t),e.onClose()):n(Object($.jsx)("div",{children:r.map((function(e,t){return Object($.jsx)("div",{children:e},t)}))}),{variant:"error"})},startIcon:Object($.jsx)(Be.a,{}),children:x.a.t("Import")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Close")})]})]})})),Me=function(e){return e.open?Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,children:[Object($.jsx)(Ae.a,{children:x.a.t("Delete all items")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t("Are you sure to delete all items?")}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"contained",color:"secondary",startIcon:Object($.jsx)(ue.a,{}),onClick:function(){e.action(),e.onClose()},children:x.a.t("Delete all items")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Cancel")})]})]})]}):null},qe=function(e){var t=Object(i.useState)(!1),a=Object(ae.a)(t,2),s=a[0],r=a[1];return Object(i.useEffect)((function(){r(!1)}),[e.open]),e.open?Object($.jsxs)(Re.a,{open:e.open,onClose:e.onClose,children:[Object($.jsx)(Ae.a,{children:x.a.t("Delete item")}),Object($.jsxs)(ke.a,{children:[Object($.jsx)(We.a,{children:x.a.t('Are you sure to delete item with address "%s"?',e.item._address)}),Object($.jsx)(We.a,{children:Object($.jsx)(W.a,{label:x.a.t("Don't show this message in 5 minutes"),control:Object($.jsx)(R.a,{checked:s,onChange:function(e){return r(e.target.checked)}})})}),Object($.jsxs)(Oe.a,{children:[Object($.jsx)(Ee.a,{variant:"contained",color:"secondary",startIcon:Object($.jsx)(ue.a,{}),onClick:function(){e.action(s),e.onClose()},children:x.a.t("Delete")}),Object($.jsx)(Ee.a,{variant:"contained",onClick:e.onClose,startIcon:Object($.jsx)(ze.a,{}),children:x.a.t("Cancel")})]})]})]}):null},_e=function(e){var t,a=e.sortedItem,s=e.field,r=e.editMode,n=e.setEditMode,o=Object(i.useRef)(),l=a.item;if("checkbox"===s.type)t=Object($.jsx)(de.a,{title:x.a.t(s.title),children:Object($.jsx)(R.a,{inputRef:o,className:e.classes.tableCheckbox,checked:!!l[s.name],disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t.target.checked)}})});else if("rooms"===s.type)t=r?Object($.jsx)(je.a,{list:e.rooms,allowNone:!0,value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],dense:!0,themeType:e.themeType,inputProps:{ref:o,className:e.classes.tableSelect},disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t)},className:e.classes.tableSelectContainer}):Object($.jsx)(Se.a,{list:e.rooms,value:l[s.name],themeType:e.themeType});else if("select"===s.type)if(r)t=Object($.jsx)(O.a,{value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],inputProps:{ref:o,className:e.classes.tableSelect},disabled:e.getDisable(a.$index,s.name),onChange:function(t){return e.changeParam(a.$index,s.name,t.target.value)},className:e.classes.tableSelectContainer,children:s.options.map((function(e){return Object($.jsx)(k.a,{value:e.value,children:e.title?e.title:Object($.jsx)("i",{children:x.a.t("Nothing")})},e.value)}))});else{var d=s.options.find((function(e){return e.value===l[s.name]}));t=d?d.title:""}else t=r?Object($.jsx)(T.a,{value:void 0===l[s.name]||null===l[s.name]?"":l[s.name],className:e.classes.tableTextFieldContainer,inputProps:{ref:o,className:e.classes.tableTextField},type:s.type,onChange:function(t){return e.changeParam(a.$index,s.name,t.target.value)},disabled:e.getDisable(a.$index,s.name)}):l[s.name]?l[s.name]:null;return Object($.jsx)(oe.a,{className:be.a.clsx(e.classes.tableCell,!r&&e.classes.nonEditMode),onClick:function(e){n(!0),window.localStorage.setItem("Modbus.editMode","true"),window.setTimeout((function(){return o.current&&o.current.focus()}),100)},children:t})},Je=Object(g.a)((function(e){return{tableHeader:{whiteSpace:"nowrap",fontWeight:"bold",fontSize:"80%",padding:"0px 8px"},tableHeaderExtended:{color:"dark"===e.palette.type?e.palette.primary.light:e.palette.primary.dark},tableCell:{whiteSpace:"nowrap",fontSize:"80%",padding:"0px 8px"},tableContainer:{overflow:"auto",maxHeight:"calc(100vh - 180px)"},tableTextField:{fontSize:"80%"},tableSelect:{fontSize:"80%"},tableTextFieldContainer:{width:"100%"},tableSelectContainer:{width:"100%"},nonEditMode:{cursor:"pointer"}}}))((function(e){var t=Object(i.useState)(!1),a=Object(ae.a)(t,2),s=a[0],r=a[1],n=Object(i.useState)(parseInt(window.localStorage.getItem("Modbus.editMode"),10)||0),l=Object(ae.a)(n,2),d=l[0],c=l[1],u=Object(i.useState)("true"===window.localStorage.getItem("Modbus.extendedMode")),p=Object(ae.a)(u,2),m=p[0],g=p[1],v=Object(i.useState)({open:!1,action:null}),h=Object(ae.a)(v,2),b=h[0],f=h[1],y=Object(i.useState)({open:!1,item:null,action:null}),C=Object(ae.a)(y,2),S=C[0],I=C[1],j=e.getSortedData(e.data,e.orderBy,e.order);return Object($.jsxs)("div",{children:[Object($.jsxs)("div",{children:[Object($.jsx)(de.a,{title:x.a.t("Add line"),children:Object($.jsx)(U.a,{onClick:function(t){e.addItem()},children:Object($.jsx)(me.a,{})})}),Object($.jsx)(de.a,{title:x.a.t("Edit as TSV (Tab separated values)"),children:Object($.jsx)(U.a,{onClick:function(){return r(!0)},children:Object($.jsx)(ve.a,{})})}),Object($.jsx)(de.a,{title:x.a.t("Toggle extended mode"),children:Object($.jsx)(U.a,{color:m?"primary":"inherit",onClick:function(){window.localStorage.setItem("Modbus.extendedMode",m?"false":"true"),g(!m)},children:Object($.jsx)(ye.a,{})})})]}),Object($.jsx)("div",{className:e.classes.tableContainer,children:Object($.jsxs)(ie.a,{size:"small",stickyHeader:!0,padding:"none",children:[Object($.jsx)(se.a,{children:Object($.jsxs)(ne.a,{children:[e.fields.filter((function(t){return(m||!t.expert)&&(!e.formulaDisabled||!t.formulaDisabled)})).map((function(t){var a=!1,i=!1,s=!1,r=!1;for(var n in e.data)if(e.data[n][t.name]?(a=!0,s=!0):(a=!1,r=!0),s&&r){i=!0,a=!1;break}return Object($.jsxs)(oe.a,{style:{width:"checkbox"===t.type?20:t.width},className:be.a.clsx(e.classes.tableHeader,t.expert&&e.classes.tableHeaderExtended),title:t.tooltip?x.a.t(t.tooltip):null,children:["checkbox"===t.type?Object($.jsx)(de.a,{title:x.a.t("Change all"),children:Object($.jsx)(R.a,{indeterminate:i,checked:a,onChange:function(a){var i=JSON.parse(JSON.stringify(e.data));i.forEach((function(e){return e[t.name]=a.target.checked})),e.changeData(i)}})}):null,t.sorted?Object($.jsx)(le.a,{active:t.name===e.orderBy,direction:e.order,onClick:function(a){var i=e.orderBy===t.name&&"asc"===e.order;e.onChangeOrder(t.name,i?"desc":"asc")},children:x.a.t(t.title)}):x.a.t(t.title)]},t.name)})),Object($.jsx)(oe.a,{children:Object($.jsx)(de.a,{title:x.a.t("Delete all"),children:Object($.jsx)("div",{children:Object($.jsx)(U.a,{size:"small",onClick:function(t){return f({open:!0,action:function(){return e.changeData([])}})},disabled:!e.data.length,children:Object($.jsx)(ue.a,{})})})})})]})}),Object($.jsx)(re.a,{children:j.map((function(t){return Object($.jsxs)(ne.a,{hover:!0,children:[e.fields.filter((function(t){return(m||!t.expert)&&(!e.formulaDisabled||!t.formulaDisabled)})).map((function(a){return Object($.jsx)(_e,Object(o.a)({themeType:e.themeType,sortedItem:t,field:a,editMode:d===t.$index,rooms:e.rooms,setEditMode:function(){return c(t.$index)}},e),a.name)})),Object($.jsx)(oe.a,{children:Object($.jsx)(de.a,{title:x.a.t("Delete"),children:Object($.jsx)("div",{children:Object($.jsx)(U.a,{size:"small",onClick:function(a){var i=window.sessionStorage.getItem("disableDeleteDialogs");i&&new Date-new Date(i)<3e5?e.deleteItem(t.$index):I({open:!0,action:function(a){a&&window.sessionStorage.setItem("disableDeleteDialogs",(new Date).toISOString()),e.deleteItem(t.$index)},item:t.item})},children:Object($.jsx)(ue.a,{})})})})})]},t.$index)}))})]})}),s?Object($.jsx)(Ve,{open:!0,save:e.changeData,onClose:function(){return r(!1)},data:e.data,fields:e.fields}):null,Object($.jsx)(Me,{open:b.open,action:b.action,onClose:function(){return f({open:!1,action:null})}}),Object($.jsx)(qe,{open:S.open,action:S.action,onClose:function(){return I({open:!1,action:null,item:null})},item:S.item})]})})),Ge=function(e){Object(p.a)(a,e);var t=Object(m.a)(a);function a(e){var i;return Object(l.a)(this,a),(i=t.call(this,e)).changeParam=function(e,t,a){var s=JSON.parse(JSON.stringify(i.props.native[i.nativeField]));s[e][t]=a,"_address"===t&&(s[e].address=i.addressToCanonical(a)),i.props.onChange(i.nativeField,s)},i.addItem=function(){var e=JSON.parse(JSON.stringify(i.props.native[i.nativeField])),t={};i.getFields().forEach((function(e){return t[e.name]=""})),e.push(t),i.props.onChange(i.nativeField,e)},i.deleteItem=function(e){var t=JSON.parse(JSON.stringify(i.props.native[i.nativeField]));t.splice(e,1),i.props.onChange(i.nativeField,t)},i.changeData=function(e){i.props.onChange(i.nativeField,e)},i.getDisable=function(e,t){return!1},i.getSortedData=function(e,t,a){e=e||i.props.native[i.nativeField],t=t||i.state.orderBy,a=a||i.state.order;var s=[];e.forEach((function(e,t){s[t]={item:e,$index:t}}));var r=i.fields.find((function(e){return e.name===t}));return s.sort((function(e,i){var s,n;return"deviceId"===t?(s=parseInt(e.item.deviceId,10)<<16|parseInt(e.item._address,10),n=parseInt(i.item.deviceId,10)<<16|parseInt(i.item._address,10)):"$index"===t?(s=e[t],n=i[t]):r&&"number"===r.type?(s=parseInt(e.item[t],10),n=parseInt(i.item[t],10)):(s=e.item[t],n=i.item[t]),("asc"===a?s>n:s=a._address&&e.item._address+parseInt(e.item.len||1,10)=a._address&&e.item._address+parseInt(e.item.len||1,10)i?1:0}))}var it=function(e){Object(p.a)(i,e);var t=Object(m.a)(i);function i(e){var s;Object(l.a)(this,i);var r=Object(o.a)({},e);return r.encryptedFields=["pass"],r.translations={en:a(412),de:a(413),ru:a(414),pt:a(415),nl:a(416),fr:a(417),it:a(418),es:a(419),pl:a(420),"zh-cn":a(421)},(s=t.call(this,e,r)).state.moreLoaded=!1,s.state.rooms=null,s}return Object(d.a)(i,[{key:"onPrepareSave",value:function(e){return e.disInputs&&at(e.disInputs),e.coils&&at(e.coils),e.inputRegs&&at(e.inputRegs),e.holdingRegs&&at(e.holdingRegs),e}},{key:"onConnectionReady",value:function(){var e=this;Object(c.a)(Object(u.a)(i.prototype),"onConnectionReady",this).call(this),this.socket.getEnums("rooms").then((function(t){return e.setState({moreLoaded:!0,rooms:t})}))}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e?tt.findIndex((function(t){return t.name===e})):0}},{key:"render",value:function(){var e=this;return this.state.loaded&&this.state.moreLoaded?Object($.jsx)(n.a,{theme:this.state.theme,children:Object($.jsx)(v.a,{children:Object($.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object($.jsx)(h.a,{position:"static",children:Object($.jsx)(b.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(tt[a].name,a)},variant:"scrollable",scrollButtons:"auto",children:tt.map((function(e){return Object($.jsx)(f.a,{label:e.icon?Object($.jsxs)($.Fragment,{children:[e.icon,x.a.t(e.title)]}):x.a.t(e.title),"data-name":e.name,title:e.tooltip?x.a.t(e.tooltip):void 0},e.name)}))})}),Object($.jsx)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,children:tt.map((function(t,a){var i=t.component;if(e.state.selectedTab){if(e.state.selectedTab!==t.name)return null}else if(0!==a)return null;return Object($.jsx)(i,{formulaDisabled:"1"===e.state.native.params.slave||1===e.state.native.params.slave,common:e.common,socket:e.socket,native:e.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},onLoad:function(t){return e.onLoadConfig(t)},instance:e.instance,adapterName:e.adapterName,changed:e.state.changed,onChange:function(t,a,i){return e.updateNativeValue(t,a,i)},changeNative:function(t){return e.setState({native:t,changed:e.getIsChanged(t)})},rooms:e.state.rooms},t.name)}))}),this.renderError(),this.renderSaveCloseButtons()]})})}):Object($.jsx)(n.a,{theme:this.state.theme,children:Object($.jsx)(D.a,{theme:this.state.themeType})})}}]),i}(I.a),st=Object(g.a)((function(e){return{root:{},tabContent:{padding:10,height:"calc(100% - 64px - 48px - 20px)",overflow:"auto"},tabContentIFrame:{padding:10,height:"calc(100% - 64px - 48px - 20px - 38px)",overflow:"auto"},tab:{width:"100%",minHeight:"100%"}}}))(it);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var rt=a(332),nt=a(221),ot=a.n(nt);window.adapterName="modbus";var lt=be.a.getThemeName();console.log("iobroker.".concat(window.adapterName,"@").concat(rt.a,' using theme "').concat(lt,'"')),function e(){return r.a.render(Object($.jsx)(n.a,{theme:ot()(lt),children:Object($.jsx)(st,{onThemeChange:function(t){lt=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))},70:function(e){e.exports=JSON.parse('[{"value":"","title":""},{"value":"value","title":"value"},{"value":"level","title":"level"},{"value":"state","title":"state"},{"value":"switch","title":"switch"},{"value":"value.temperature","title":"value.temperature"},{"value":"value.humidity","title":"value.humidity"},{"value":"value.brightness","title":"value.brightness"},{"value":"value.uv","title":"value.uv"},{"value":"value.pressure","title":"value.pressure"},{"value":"value.battery","title":"value.battery"},{"value":"value.valve","title":"value.valve"},{"value":"value.time","title":"value.time"},{"value":"value.interval","title":"value.interval"},{"value":"value.window","title":"value.window"},{"value":"button","title":"button"},{"value":"indicator","title":"indicator"},{"value":"level.dimmer","title":"level.dimmer"},{"value":"level.valve","title":"level.valve"},{"value":"level.blind","title":"level.blind"},{"value":"level.temperature","title":"level.temperature"},{"value":"level.interval","title":"level.interval"},{"value":"value.power.consumption","title":"value.power.consumption"}]')}},[[423,1,2]]]);
+//# sourceMappingURL=main.1f40a2d2.chunk.js.map
\ No newline at end of file
diff --git a/admin/static/js/main.8ffc33a5.chunk.js.map b/admin/static/js/main.1f40a2d2.chunk.js.map
similarity index 99%
rename from admin/static/js/main.8ffc33a5.chunk.js.map
rename to admin/static/js/main.1f40a2d2.chunk.js.map
index 39dfb9d9..9e58f558 100644
--- a/admin/static/js/main.8ffc33a5.chunk.js.map
+++ b/admin/static/js/main.1f40a2d2.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["Components/Utils.js","Tabs/Options.js","Components/TsvDialog.js","Components/DeleteAllDialog.js","Components/DeleteDialog.js","Components/RegisterTable.js","Tabs/BaseRegisters.js","Tabs/InputRegisters.js","Tabs/HoldingRegisters.js","Tabs/DiscreteInputs.js","Tabs/Coils.js","App.js","serviceWorker.js","index.js"],"names":["_rmap","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","_dmap","offsets","coils","disInputs","inputRegs","holdingRegs","Utils","address2alias","regType","address","parseInt","alias2address","alias","nonDirect2direct","Math","floor","direct2nonDirect","Options","props","inputDisabled","input","name","native","params","type","showAliases","slave","onlyUseWriteMultipleRegisters","doNotUseWriteMultipleRegisters","inputDisplay","includes","changeParam","value","JSON","parse","stringify","multiDeviceId","readIPs","readPorts","forEach","nativeParam","item","_address","directAddresses","changeNative","state","ports","customPort","ips","this","socket","getState","adapterName","instance","then","val","sendTo","list","error","console","length","path","warn","map","title","manufacturer","comName","find","setState","catch","e","getIpAddresses","common","host","ip","unshift","inputs","Paper","className","classes","optionsContainer","Typography","variant","gutterBottom","header","I18n","t","FormControl","optionContainer","FormControlLabel","label","control","Checkbox","optionsCheckbox","disabled","checked","onChange","target","help","FormHelperText","helperText","dimension","Box","InputLabel","Select","optionsSelect","options","option","MenuItem","TextField","optionsTextfield","InputProps","endAdornment","InputAdornment","position","IconButton","onClick","tab","Grid","container","spacing","xs","md","optionsGrid","getInputsBlock","connectionInputs","generalInputs","Component","withStyles","theme","width","display","alignItems","paddingTop","paddingBottom","marginTop","marginLeft","marginBottom","padding","textAlign","fontSize","tsvEditor","height","tsvEditorTextarea","fontFamily","useState","tsv","setTsv","useEffect","tsvResult","push","fields","field","data","undefined","toString","json2tsv","open","enqueueSnackbar","useSnackbar","Dialog","onClose","maxWidth","fullWidth","DialogTitle","DialogContent","DialogContentText","showPrintMargin","setOptions","firstLineNumber","mode","DialogActions","Button","color","copy","startIcon","tsv2json","endsWith","shift","success","errors","index","itemValues","itemIndex","save","DeleteAllDialog","action","DeleteDialog","disableWarnings","setDisableWarnings","DataCell","result","sortedItem","editMode","setEditMode","ref","useRef","Tooltip","inputRef","tableCheckbox","getDisable","$index","rooms","allowNone","dense","themeType","inputProps","tableSelect","tableSelectContainer","tableTextFieldContainer","tableTextField","TableCell","clsx","tableCell","nonEditMode","window","localStorage","setItem","setTimeout","current","focus","tableHeader","whiteSpace","fontWeight","tableHeaderExtended","palette","primary","light","dark","tableContainer","overflow","maxHeight","cursor","tsvDialogOpen","setTsvDialogOpen","getItem","extendedMode","setExtendedMode","deleteAllDialog","setDeleteAllDialog","deleteDialog","setDeleteDialog","sortedData","getSortedData","orderBy","order","addItem","Table","size","stickyHeader","TableHead","TableRow","filter","expert","formulaDisabled","isChecked","indeterminate","trueFound","falseFound","k","style","tooltip","newData","changeData","sorted","TableSortLabel","active","direction","isAsc","onChangeOrder","TableBody","hover","lastTime","sessionStorage","Date","deleteItem","disableDialogs","toISOString","BaseRegisters","nativeField","addressToCanonical","newItem","getFields","splice","sort","sortedItem1","sortedItem2","sort1","sort2","deviceId","showExtendedModeSwitch","isShowExtendedModeSwitch","InputRegisters","lastItem","len","factor","offset","formula","role","cw","isScale","types","roles","propTypes","PropTypes","object","isRequired","number","string","onError","func","onLoad","changed","bool","HoldingRegisters","poll","wp","DiscreteInputs","Coils","tabs","component","TabOptions","TabDiscreteInputs","icon","marginRight","TabCoils","TabInputRegisters","TabHoldingRegisters","item1","item2","App","extendedProps","encryptedFields","translations","require","moreLoaded","getEnums","selectedTab","findIndex","loaded","background","default","text","AppBar","Tabs","getSelectedTab","selectTab","scrollButtons","Tab","data-name","isIFrame","tabContentIFrame","tabContent","TabComponent","errorText","onLoadConfig","attr","cb","updateNativeValue","getIsChanged","renderError","renderSaveCloseButtons","GenericApp","root","minHeight","Boolean","location","hostname","match","themeName","getThemeName","log","version","build","ReactDOM","render","onThemeChange","_theme","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.8ffc33a5.chunk.js","sourcesContent":["const _rmap = {\r\n 0: 15,\r\n 1: 14,\r\n 2: 13,\r\n 3: 12,\r\n 4: 11,\r\n 5: 10,\r\n 6: 9,\r\n 7: 8,\r\n 8: 7,\r\n 9: 6,\r\n 10: 5,\r\n 11: 4,\r\n 12: 3,\r\n 13: 2,\r\n 14: 1,\r\n 15: 0\r\n};\r\nconst _dmap = {\r\n 0: 0,\r\n 1: 1,\r\n 2: 2,\r\n 3: 3,\r\n 4: 4,\r\n 5: 5,\r\n 6: 6,\r\n 7: 7,\r\n 8: 8,\r\n 9: 9,\r\n 10: 10,\r\n 11: 11,\r\n 12: 12,\r\n 13: 13,\r\n 14: 14,\r\n 15: 15\r\n};\r\n\r\nconst offsets = {\r\n coils: 1,\r\n disInputs: 10001,\r\n inputRegs: 30001,\r\n holdingRegs: 40001,\r\n};\r\n\r\nfunction address2alias(regType, address) {\r\n return parseInt(address, 10) + offsets[regType];\r\n}\r\n\r\nfunction alias2address(regType, alias) {\r\n return parseInt(alias, 10) - offsets[regType];\r\n}\r\n\r\nfunction nonDirect2direct(regType, address) {\r\n if (regType === 'disInputs' || regType === 'coils') {\r\n address = parseInt(address, 10) || 0;\r\n address = Math.floor(address / 16) * 16 + _dmap[address % 16];\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction direct2nonDirect(regType, address) {\r\n if (regType === 'disInputs' || regType === 'coils') {\r\n address = parseInt(address, 10) || 0;\r\n address = Math.floor(address / 16) * 16 + _rmap[address % 16];\r\n return address;\r\n } else {\r\n return address;\r\n }\r\n}\r\n\r\nconst Utils = {\r\n address2alias,\r\n alias2address,\r\n nonDirect2direct,\r\n direct2nonDirect\r\n};\r\n\r\nexport default Utils;","import {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Box from '@material-ui/core/Box';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport Utils from '../Components/Utils';\r\n\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\n\r\nimport connectionInputs from '../data/optionsConnection';\r\nimport generalInputs from '../data/optionsGeneral';\r\n\r\nconst styles = theme => ({\r\n optionsSelect: {\r\n width: 280\r\n },\r\n optionsTextfield: {\r\n width: 280\r\n },\r\n optionContainer: {\r\n display: 'flex',\r\n alignItems: 'start',\r\n paddingTop: 4,\r\n paddingBottom: 4\r\n },\r\n helperText: {\r\n marginTop: -8,\r\n marginLeft: 32,\r\n marginBottom: 10\r\n },\r\n optionsContainer: {\r\n width: `calc(100% - ${theme.spacing(4)}px)`,\r\n padding: theme.spacing(2),\r\n display: 'inline-block',\r\n textAlign: 'left'\r\n },\r\n optionsGrid: {\r\n textAlign: 'center',\r\n padding: theme.spacing(2),\r\n },\r\n header: {\r\n fontSize: 24,\r\n }\r\n});\r\n\r\nclass Options extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ports: null,\r\n customPort: false,\r\n ips: null,\r\n };\r\n }\r\n\r\n readPorts() {\r\n return this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\r\n .then(state => {\r\n if (state && state.val) {\r\n return this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'listUart', null)\r\n .then(list => {\r\n if (list && list.error) {\r\n console.error('Cannot read ports: ' + list.error);\r\n } else\r\n if (list && list.length === 1 && list[0] && list[0].path === 'Not available') {\r\n console.warn('Cannot read ports');\r\n } else {\r\n const ports = list.map(item => ({value: item.path, title: item.path + (item.manufacturer ? ' [' + item.manufacturer + ']' : '')}));\r\n const customPort = this.props.native.params.comName && !ports.find(item => item.value === this.props.native.params.comName);\r\n\r\n this.setState({ports, customPort});\r\n }\r\n })\r\n .catch(e => console.error('Cannot read ports: ' + e));\r\n }\r\n })\r\n .catch(e => console.error('Cannot read alive: ' + e));\r\n }\r\n\r\n readIPs() {\r\n return this.props.socket.getIpAddresses(this.props.common.host)\r\n .then(ips => {\r\n ips = ips || [];\r\n ips = ips.map(ip => ({value: ip, title: ip}));\r\n ips.unshift({value: '0.0.0.0', title: 'Listen on all IPs'});\r\n ips.unshift({value: '127.0.0.1', title: '127.0.0.1 (Localhost)'});\r\n this.setState({ips});\r\n })\r\n .catch(e => console.error('Cannot read IP addresses: ' + e));\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.native.params.type === 'serial') {\r\n this.readPorts();\r\n }\r\n if (this.props.native.params.type !== 'serial' && (this.props.native.params.slave === '1' || this.props.native.params.slave === 1)) {\r\n this.readIPs();\r\n }\r\n }\r\n\r\n inputDisabled = input => {\r\n if (input.name === 'slave' && this.props.native.params.type !== 'tcp') {\r\n return true;\r\n } else\r\n if (input.name === 'directAddresses' && !this.props.native.params.showAliases) {\r\n return true;\r\n } else\r\n if (input.name === 'multiDeviceId' && (this.props.native.params.slave === '1' || this.props.native.params.slave === 1)) {\r\n return true;\r\n } else\r\n if (input.name === 'doNotUseWriteMultipleRegisters' && this.props.native.params.onlyUseWriteMultipleRegisters) {\r\n return true;\r\n } else\r\n if (input.name === 'onlyUseWriteMultipleRegisters' && this.props.native.params.doNotUseWriteMultipleRegisters) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n inputDisplay = input => {\r\n if (['tcp', 'tcprtu'].includes(this.props.native.params.type)) {\r\n if (['comName', 'baudRate', 'dataBits', 'stopBits', 'parity'].includes(input.name)) {\r\n return false;\r\n }\r\n } else {\r\n if (['bind', 'port'].includes(input.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n getInputsBlock(inputs, title) {\r\n return <>\r\n {I18n.t(title)}\r\n {inputs.map(input => {\r\n if (!this.inputDisplay(input)) {\r\n return null;\r\n } else if (input.name === 'bind' && this.props.native.params.type !== 'serial' && (this.props.native.params.slave === '1' || this.props.native.params.slave === 1)) {\r\n return \r\n {this.state.ips ?\r\n \r\n {I18n.t('Slave IP address')}\r\n \r\n \r\n :\r\n {I18n.t(input.dimension)} : null}}\r\n onChange={e => this.changeParam(input.name, e.target.value)}\r\n />}\r\n ;\r\n }\r\n if (input.type === 'checkbox') {\r\n return \r\n this.changeParam(input.name, e.target.checked)}\r\n />}\r\n />\r\n {input.help ? {I18n.t(input.help)} : null}\r\n {input.dimension ? I18n.t(input.dimension) : null}\r\n ;\r\n } else if (input.type === 'select') {\r\n return \r\n \r\n {I18n.t(input.title)}\r\n \r\n {input.dimension ? I18n.t(input.dimension) : null}\r\n ;\r\n } else if (input.type === 'ports') {\r\n return \r\n {this.state.ports && !this.state.customPort ?\r\n \r\n {I18n.t(input.title)}\r\n \r\n \r\n :\r\n {I18n.t(input.dimension)} : null}}\r\n onChange={e => this.changeParam(input.name, e.target.value)}\r\n />}\r\n {this.state.ports ? this.setState({customPort: !this.state.customPort})}> : null}\r\n ;\r\n } else {\r\n return \r\n {I18n.t(input.dimension)} : null}}\r\n onChange={e => this.changeParam(input.name, e.target.value)}\r\n />\r\n ;\r\n }\r\n })\r\n }\r\n >\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n\r\n changeParam = (name, value) => {\r\n let native = JSON.parse(JSON.stringify(this.props.native));\r\n native.params[name] = value;\r\n if (name === 'slave') {\r\n if (value === '1' || value === 1) {\r\n native.params.multiDeviceId = false;\r\n if (this.props.native.params.type !== 'serial') {\r\n this.readIPs();\r\n }\r\n }\r\n } else\r\n if (name === 'type') {\r\n if (value !== 'tcp' && (native.params.slave === 1 || native.params.slave === '1')) {\r\n native.params.slave = '0';\r\n }\r\n\r\n if (value === 'serial') {\r\n this.readPorts();\r\n }\r\n if (value === 'serial' && (this.props.native.params.slave === '1' || this.props.native.params.slave === 1)) {\r\n this.readIPs();\r\n }\r\n } else\r\n if (name === 'showAliases') {\r\n ['disInputs', 'inputRegs', 'holdingRegs', 'coils'].forEach(nativeParam => {\r\n native[nativeParam].forEach(item => {\r\n if (value) {\r\n item._address = Utils.address2alias(nativeParam, item._address);\r\n if (native.params.directAddresses) {\r\n item._address = Utils.nonDirect2direct(nativeParam, item._address);\r\n }\r\n } else {\r\n if (native.params.directAddresses) {\r\n item._address = Utils.direct2nonDirect(nativeParam, item._address);\r\n }\r\n item._address = Utils.alias2address(nativeParam, item._address);\r\n }\r\n });\r\n });\r\n } else\r\n if (name === 'directAddresses' && native.params.showAliases) {\r\n ['disInputs', 'coils'].forEach(nativeParam => {\r\n native[nativeParam].forEach(item => {\r\n if (value) {\r\n item._address = Utils.nonDirect2direct(nativeParam, item._address);\r\n } else {\r\n item._address = Utils.direct2nonDirect(nativeParam, item._address);\r\n }\r\n });\r\n });\r\n }\r\n this.props.changeNative(native);\r\n }\r\n}\r\n\r\nOptions.propTypes = {\r\n common: PropTypes.object.isRequired,\r\n native: PropTypes.object.isRequired,\r\n instance: PropTypes.number.isRequired,\r\n adapterName: PropTypes.string.isRequired,\r\n onError: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n onChange: PropTypes.func,\r\n changed: PropTypes.bool,\r\n socket: PropTypes.object.isRequired,\r\n rooms: PropTypes.object,\r\n};\r\n\r\nexport default withStyles(styles)(Options);\r\n","import { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\nimport { tsv2json, json2tsv } from 'tsv-json';\r\nimport { useSnackbar } from 'notistack';\r\nimport AceEditor from 'react-ace';\r\nimport copy from 'copy-to-clipboard';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\r\n\r\nconst styles = theme => ({\r\n tsvEditor: {\r\n width: '100%',\r\n height: 400\r\n },\r\n tsvEditorTextarea: {\r\n fontFamily: 'monospace'\r\n }\r\n});\r\n\r\nconst TsvDialog = props => {\r\n const [tsv, setTsv] = useState('');\r\n\r\n useEffect(() => {\r\n let tsvResult = [];\r\n tsvResult.push(props.fields.map(field => field.name));\r\n props.data.forEach(item =>\r\n tsvResult.push(props.fields.map(field => item[field.name] !== undefined && item[field.name] !== null ? item[field.name].toString() : ''))\r\n );\r\n setTsv(json2tsv(tsvResult));\r\n }, [props.open]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n if (!props.open) {\r\n return null;\r\n }\r\n\r\n const saveTsv = () => {\r\n let data = tsv2json(tsv.endsWith('\\n') ? tsv : tsv + '\\n');\r\n let fields = data.shift();\r\n let success = true;\r\n let errors = [];\r\n for (let index in props.fields) {\r\n if (props.fields[index].name !== fields[index]) {\r\n errors.push(<>No field {props.fields[index].name} in position {parseInt(index) + 1}!>);\r\n success = false;\r\n }\r\n }\r\n\r\n data = data.map((itemValues, itemIndex) => {\r\n let item = {};\r\n for (let index in props.fields) {\r\n if (props.fields[index].type === 'select' && !props.fields[index].options.map(option => option.value).includes(itemValues[index])) {\r\n errors.push(<>Value {itemValues[index]} is wrong for field {props.fields[index].name} in position {parseInt(itemIndex) + 1}!>);\r\n success = false;\r\n }\r\n if (props.fields[index].type === 'checkbox') {\r\n itemValues[index] = itemValues[index] === 'true';\r\n }\r\n item[props.fields[index].name] = itemValues[index];\r\n }\r\n return item;\r\n });\r\n\r\n if (!success) {\r\n enqueueSnackbar(
{errors.map((error, index) =>
{error}
)}
, { variant: 'error' });\r\n return;\r\n }\r\n props.save(data);\r\n props.onClose();\r\n };\r\n\r\n return \r\n};\r\n\r\nTsvDialog.propTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n classes: PropTypes.object,\r\n save: PropTypes.func,\r\n fields: PropTypes.array,\r\n data: PropTypes.array\r\n};\r\n\r\nexport default withStyles(styles)(TsvDialog);","import PropTypes from 'prop-types';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\n\r\nconst DeleteAllDialog = (props) => {\r\n return props.open ? : null;\r\n}\r\n\r\nDeleteAllDialog.propTypes = {\r\n open: PropTypes.bool,\r\n action: PropTypes.func,\r\n onClose: PropTypes.func,\r\n classes: PropTypes.object,\r\n}\r\n\r\nexport default DeleteAllDialog;","import { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\n\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\n\r\nconst DeleteDialog = (props) => {\r\n const [disableWarnings, setDisableWarnings] = useState(false);\r\n useEffect(() => {\r\n setDisableWarnings(false);\r\n }, [props.open]);\r\n\r\n return props.open ? : null;\r\n}\r\n\r\nDeleteDialog.propTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n classes: PropTypes.object,\r\n action: PropTypes.func,\r\n item: PropTypes.object,\r\n}\r\n\r\nexport default DeleteDialog;","import { useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\nimport Table from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ImportExport from '@material-ui/icons/ImportExport';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\nimport Utils from '@iobroker/adapter-react/Components/Utils';\r\n\r\nimport ExpertIcon from '@iobroker/adapter-react/icons/IconExpert';\r\nimport TextWithIcon from '@iobroker/adapter-react/Components/TextWithIcon';\r\nimport SelectWithIcon from '@iobroker/adapter-react/Components/SelectWithIcon';\r\n\r\nimport TsvDialog from './TsvDialog';\r\nimport DeleteAllDialog from './DeleteAllDialog';\r\nimport DeleteDialog from './DeleteDialog';\r\n\r\nconst styles = theme => ({\r\n tableHeader: {\r\n whiteSpace: 'nowrap',\r\n fontWeight: 'bold',\r\n fontSize: '80%',\r\n padding: '0px 8px'\r\n },\r\n tableHeaderExtended: {\r\n color: theme.palette.type === 'dark' ? theme.palette.primary.light : theme.palette.primary.dark\r\n },\r\n tableCell: {\r\n whiteSpace: 'nowrap',\r\n fontSize: '80%',\r\n padding: '0px 8px'\r\n },\r\n tableContainer: {\r\n overflow: 'auto',\r\n maxHeight: 'calc(100vh - 180px)'\r\n },\r\n tableTextField: {\r\n fontSize: '80%'\r\n },\r\n tableSelect: {\r\n fontSize: '80%'\r\n },\r\n tableTextFieldContainer: {\r\n width: '100%'\r\n },\r\n tableSelectContainer: {\r\n width: '100%'\r\n },\r\n nonEditMode: {\r\n cursor: 'pointer'\r\n }\r\n});\r\n\r\nconst DataCell = props => {\r\n const sortedItem = props.sortedItem;\r\n const field = props.field;\r\n const editMode = props.editMode;\r\n const setEditMode = props.setEditMode;\r\n\r\n const ref = useRef();\r\n\r\n let item = sortedItem.item;\r\n let result;\r\n if (field.type === 'checkbox') {\r\n result = \r\n props.changeParam(sortedItem.$index, field.name, e.target.checked)}\r\n />\r\n ;\r\n } else if (field.type === 'rooms') {\r\n if (!editMode) {\r\n result = ;\r\n } else {\r\n result = props.changeParam(sortedItem.$index, field.name, value)}\r\n className={props.classes.tableSelectContainer}\r\n />;\r\n }\r\n } else if (field.type === 'select') {\r\n if (!editMode) {\r\n let option = field.options.find(option => option.value === item[field.name]);\r\n result = option ? option.title : '';\r\n } else {\r\n result = ;\r\n }\r\n } else {\r\n if (!editMode) {\r\n result = item[field.name] ? item[field.name] : null;\r\n } else {\r\n result = props.changeParam(sortedItem.$index, field.name, e.target.value)}\r\n disabled={props.getDisable(sortedItem.$index, field.name)}\r\n />;\r\n }\r\n }\r\n\r\n return {\r\n setEditMode(true);\r\n window.localStorage.setItem('Modbus.editMode', 'true');\r\n window.setTimeout(() => ref.current && ref.current.focus(), 100);\r\n }}\r\n >\r\n {result}\r\n ;\r\n}\r\n\r\nconst RegisterTable = props => {\r\n const [tsvDialogOpen, setTsvDialogOpen] = useState(false);\r\n const [editMode, setEditMode] = useState(parseInt(window.localStorage.getItem('Modbus.editMode'), 10) || 0);\r\n const [extendedMode, setExtendedMode] = useState(window.localStorage.getItem('Modbus.extendedMode') === 'true');\r\n const [deleteAllDialog, setDeleteAllDialog] = useState({\r\n open: false,\r\n action: null,\r\n });\r\n const [deleteDialog, setDeleteDialog] = useState({\r\n open: false,\r\n item: null,\r\n action: null,\r\n });\r\n\r\n let sortedData = props.getSortedData(props.data, props.orderBy, props.order);\r\n\r\n return