Commit Graph
100 Commits
Author SHA1 Message Date
akira 8999e71d2e Bugfix with shared process image in cycle loop
Shared outputs was written after reading the process image for current cycle. So the values for the outputs was one cycle in the past.
2021-09-22 16:25:12 +02:00
akira 9c7c679abc Bugfix on handle default values of type byte (frm="*s") in export_file 2021-09-09 12:31:21 +02:00
akira 8607f25b37 Bugfix for offset check in piCtory file 2021-08-22 17:10:31 +02:00
akira 0edfb4ef85 Check device offsets in piCtory file and ignore IOs with wrong offsets
The modbus 150 Device has a memory gap and piCtory does not calculate the right offset of the following device - We will warn the user.
2021-07-28 07:38:34 +02:00
akira 498d200e41 The replace_io file can handle default values of type byte (frm="*s") now. 2021-07-28 07:37:20 +02:00
akira a05770e4f8 Added MIO memory value mappings 2021-05-01 08:12:45 +02:00
akira 17666edb85 Merge pull request #12 from nbuchwitz/feature/product-type
introduce ProductType enum
2021-05-01 07:56:56 +02:00
akira ae8dcf7866 Next release 2021-04-18 09:14:58 +02:00
akira 89a447abb9 Bugfix: Calculate correct lengths despite IO gaps in incorrect piCtory file 2021-04-14 09:09:10 +02:00
akira 687c7ab91a Flat: Switch and Relais as real io of core class, added MEMs to pictory.py 2021-02-12 19:43:11 +01:00
akira d35b09e209 Next release 2021-01-31 19:35:29 +01:00
akira 6608bd965c Sync write of outputs with autorefresh/cycle or .writeprocimg, if shared_procimg=True
If shared_procimg=True, ModIO wrote the new set values directly to the process
image without cycle sync mechanisms. As a result, the IOs could change status
several times within the cycleloop, which is wrong.
2021-01-31 13:31:05 +01:00
akira 57c56ce207 Corrected misleading message 2021-01-17 10:21:33 +01:00
akira 2904c7b187 Next release 2021-01-14 19:08:28 +01:00
akira 38b655ad29 Merge branch 'develop' 2021-01-14 19:02:59 +01:00
akira cc9b4521e9 Only write export flag to replace_io_file, if the value was set during runtime 2021-01-13 10:36:36 +01:00
akira dc731afafd Parameter shared_procimg can be set per device
The shared_procimg Parameter is still a global parameter, but can now be set
per device as well with .shared_procimg(...) of all devices.
2020-12-16 18:46:45 +01:00
akira 6beb05577e Add blocking parameter to .cycleloop
If you want to use a cycleloop function and your own tasks, you can set
blocking=False in .cycleloop(...) call. Same as .mainloop(...) call.
2020-12-14 19:50:48 +01:00
akira 4ac1283c5b Bugfix: Set A1 - A5 LED did not work with shared_procimg=True 2020-12-14 19:41:56 +01:00
akira 79164bd41b Add support for RevPi Flat 2020-10-10 14:14:57 +02:00
akira beb7a36cc7 Set values in process image AND buffer with shared_procimg=True 2020-09-30 16:04:29 +02:00
akira 9460c4f106 Cycleloop does not raise Exception, run_plc accept debug flag.
User has to use maxioerrors = n, if the program should crash on process
image errors.
If the ProcimgWriter helper is running but get no new data for 2500 ms,
the cycleloop will print just a warning. Cycle function is paused for
that time. Most interesting for RevPi NET classes.
2020-09-09 09:47:55 +02:00
akira 6f5415a567 Add piCtory value mappings for RevPi Compact memories in pictory.py. 2020-09-08 07:26:44 +02:00
akira 963e173dc2 Redesign netio.py to prevent errors and provide clean source code 2020-08-30 10:41:52 +02:00
akira ff0f84bb03 Next release 2020-08-29 14:59:05 +02:00
akira f34d1a1a38 Restore fix c20caaa5d5 2020-08-29 14:00:37 +02:00
akira e27318f49d Merge branch 'master' of https://github.com/naruxde/revpimodio2 2020-08-29 11:39:58 +02:00
akira 8cef5222ac Next release 2020-08-29 11:39:03 +02:00
akira 990647a160 Bugfix: writeprocimg did not flush buffer on network error 2020-08-29 11:16:14 +02:00
akira c20caaa5d5 Bugfix: Wrong buffer size after network error 2020-08-26 23:27:05 +02:00
akira 5a0d88efe1 Include classes from pictory module to package __init__.py. 2020-08-17 19:52:16 +02:00
akira 5e32bd12ff Add .changed(io, edge) -> bool function to CycleTools.
You can detect changes of IO values between two cycles. The function will
return True or False.
On bit IO objects you can also use parameter edge RISING or FALLING.
2020-07-19 18:20:39 +02:00
akira 85c4babc2a Add library const PROCESS_IMAGE_SIZE should it change some day in future. 2020-07-14 19:35:50 +02:00
akira 110a366e14 IOs are callable to get or set values.
You do not have to use the .value property. Just call
the IO .io.io_name() to get the value. If you like to set a value
just pass the value to the call .io.io_name(new_value).
2020-07-11 17:13:09 +02:00
akira bf4b450bc6 Bug fix for NetIO with autorefresh=True 2020-06-24 18:24:18 +02:00
akira a7802178e9 Added .device to Cycletools, added revpimodio2.run_plc shortcut to run cycleloop
Changed readinto buffer in ProcimgWriter
2020-05-16 11:25:08 +02:00
akira a6a227e99e Watchdog for all RevPis, cycletools with .core/.io/.runtime, bugfix on MemIO for str()
All RevPis got .core.wd for Software-Watchdog with RevPiPyLoad
All RevPis has .core.wd_toggle() function to toggle watchdog bit
Cycletools has .core and .io attribute to be independent of rpi object
Cycletools has .runtime to get the actual runtime of function
2020-05-03 13:43:09 +02:00
akira d54a588a78 Return all IOs of base devices in the .io object as int() not bytes() when using .value
close #7
2020-04-29 21:20:06 +02:00
akira 9d31bb5002 Add support for RevPi Compact, better calculation of A1, A2, A3 on core object 2020-04-29 20:52:09 +02:00
akira 421cc17dbd Cleanup and new version number 2020-04-12 08:09:21 +02:00
akira c11b43507c DeprecationWarning when using direct_output - replaced by shared_procimg
close #3
2020-04-08 18:43:40 +02:00
akira 284317cef0 Moved call of cleanupfunc to exit jobs, wait mainloop end on thread (blocking=False).
close #4
2020-04-06 12:35:53 +02:00
akira ba52d6e986 Add .last cycle flag to Cycletools, better sync of loops on program end.
The .last cycle flag will be True on the last cycle, if the program received
an exit event or after calling .exit().
close #4
2020-04-06 11:10:06 +02:00
akira 95193cef8b Remove bit shifting on each get bit value and event loop 2020-03-31 19:58:35 +02:00
akira 7fd4b01b57 Protocol change on flush() 2020-03-17 20:21:31 +01:00
akira 245a5ac5cf Use struct module to pack net commands, send files with length
The struct module is more efficient than int.to_bytes.
piCtory and ReplaceIO file length in the first 4 bytes of transmission
2020-03-08 20:53:57 +01:00
akira 3f28f0ae48 Implement bytebuffer and length check to NetIO
Compatible to PyLoad before 0.9
2020-03-08 14:53:28 +01:00
akira 34f1437cac Etikett 2.4.2 zum Änderungssatz 15efb52b23cf hinzugefügt 2019-09-05 13:22:07 +02:00
akira 907d867e0d Versionsnummer angepasst 2019-09-05 13:21:55 +02:00
akira 67f89ff2f3 Mit warnings zusammenführen 2019-09-05 13:12:54 +02:00
akira 182904f3ac Mit net zusammenführen 2019-09-05 13:04:04 +02:00
akira 4b8ae9926e Nach reconnect sofort syssync ermöglichen 2019-09-04 13:38:22 +02:00
akira 56b7c252b6 Debug Parameter nimmt Werte -1, 0, 1 an.
Bei debug=-1 werden keinerlei Warnungen angezeigt
Bei debug=0 werden alle Warnungen nur ein einziges Mal angezeigt
bei debug=1 werden alle Warnungen immer angezeigt
2019-09-01 13:07:52 +02:00
akira 485aad020f Ausgabe der Warnungen optimiert
no_warn parameter aus mainloop entfernt (jetzt über debug einstellbar)
Kein Warnungsspam mehr - debug ist True als Vorbelegung
2019-08-31 16:40:36 +02:00
akira fe023a6f5c Mit default zusammenführen 2019-08-31 13:31:20 +02:00
akira ba08dab33f Doppelte Fehlerzählung bei imgwriter und modio in modio zusammengeführt 2019-08-31 11:10:57 +02:00
akira 7c279a71a1 Fehler bei NetIO im Hash load beseitigt
Core IOs geben keine Fehler mehr, wenn ein delay event draufgelegt wird
Core IOs können nicht mehr überschrieben werden, wenn .value vergessen wrid
2019-08-31 09:07:24 +02:00
akira 76cb1f57d1 Warnmeldungen überarbeitet
Warnungen erscheinen nur ein Mal, wenn debug=False ist
Filter für Warnungen werden nur für RevPiModIO verändert
2019-08-28 09:34:08 +02:00
akira 2cf0514f64 Etikett 2.4.1 zum Änderungssatz e48bb0a57dbc hinzugefügt 2019-08-26 13:10:30 +02:00
akira 4a11f01874 Mit net zusammenführen 2019-08-26 13:10:20 +02:00
akira b2ada1a58d piCtory Datei fehlerhaft bei HASH_FAIL 2019-08-26 13:10:00 +02:00
akira 35d790ec01 Wenn RevPiPyLoad falsche replace_ios Datei hat, wird Fehler geworfen
IO-Prüfung bei replace wird nicht für Selected/Driver durchgeführt
2019-08-20 14:39:58 +02:00
akira d61d76b6f3 Bugfix: prefire mit as_thread hatte Fehler bei Übergabe in Queue
Netzwerkklassen zeigen über .config_changed an, dass Neuinstanzierung nötig ist
_connect von NetFH löst ConfigChanged-Exception aus
2019-08-20 09:36:19 +02:00
akira 2d17e6f1fa Disconnect bei veränderter replace_ios Datei nur, wenn diese angefordert wrude 2019-08-19 18:10:42 +02:00
akira 21973eb7df NetFH braucht min. RevPiPyLoad 0.8.0 da hashwerte übertragen werden
NetFH wirft ConfigChanged bei geänderten piCtory oder replace_ios Dateien
2019-08-19 16:35:27 +02:00
akira 27da0c8e80 Für Export default-Werte festgelegt, die nicht exportiert werden müssen
Fehlerbehebung bei Import-Fehlermeldungen
2019-08-18 09:46:10 +02:00
akira e7c8c5f958 export_replaced_ios mit Dateinamen als default versehen (PyLoad name)
Merge-Fehler beseitigt
2019-08-17 20:36:43 +02:00
akira 925efc10fe Mit replace_ios zusammenführen
.is_set() bearbeitet
2019-08-17 19:03:23 +02:00
akira 383f9b88d0 Lock des replace_io bei Verwendung von replace_io_file entfernt 2019-08-17 18:55:05 +02:00
akira 67906338c4 Mit default zusammenführen 2019-08-17 17:53:35 +02:00
akira 2009ed9ce5 Reconnect sicherer gestaltet
Abfrage von .reconnecting eingebaut
Dirtybytes und Timeout lösen keine Exception mehr aus sondern einen Reconnect
2019-08-16 22:32:27 +02:00
akira da8f944486 Etikett 2.4.0 zum Änderungssatz ad553068ac56 hinzugefügt 2019-08-01 16:09:36 +02:00
akira c68ba1ddb0 Zusammenfassung aller Entwicklungen erledigt
Versionsnummer geändert
typos gefixt
2019-08-01 16:09:21 +02:00
akira 873c2cac2a Mit direct_io zusammenführen 2019-08-01 15:36:36 +02:00
akira 6cebdb1029 Mit dev_io_index zusammenführen 2019-08-01 15:35:36 +02:00
akira 20f79fa8e7 Mit prefire zusammenführen 2019-08-01 15:35:05 +02:00
akira 4b1b0d30e4 Mit direct_io zusammenführen 2019-07-31 21:33:27 +02:00
akira 37101b3a84 Mit default zusammenführen 2019-07-31 21:13:07 +02:00
akira 76392dd1d2 Replace_IO file hatte bei export falschen namen für bit 2019-07-31 20:51:09 +02:00
akira 9d645bec37 docstring prefire kann bei replace_io direkt mit übergeben werden 2019-07-31 20:48:59 +02:00
akira 53e3daaaf9 Mit dev_io_index zusammenführen 2019-07-25 17:02:11 +02:00
akira 1befa97117 Mit prefire zusammenführen 2019-07-25 17:01:39 +02:00
akira c6f4d20503 Fork develop 2019-07-25 17:00:53 +02:00
akira fc28e028be Bei .reg_event Parameter prefire eingefügt um Event bei Eintritt in mainloop
mit aktuellem Wert auszulösen.
Im Helper werden Event-Queues nur beim deaktiveren geleert
2019-07-25 16:44:59 +02:00
akira 23f9095d5c Indexzugriff auf IOs eines Devices 2019-07-23 09:59:24 +02:00
akira 40d7c132a5 Selected / Driver gegen nun einen DeviceNotFoundError aus, wenn nicht vorhanden
debug und replace_io_file über Namen abrufbar
2019-07-23 09:09:34 +02:00
akira 527a4aa078 direct_output in RevPiNetIO übernommen
Eindeutige erkennung des procimg (file or character)
Simulationsfunktionen für IOCTL gegen einfache Datei bei procimg Parameter
IOCTLs werden nun einfacher verarbeitet / umgelenkt
2019-07-14 18:28:42 +02:00
akira d28de43a7d direct_output zu RevPiModIO hinzugefügt
Outputs werden direkt in Processimage geschrieben
Der Puffer wird nur durch gängige Techniken aktualisiert
TODO: Umsetzung für procimg=file fehlt
2019-07-14 08:28:01 +02:00
akira ea99f3f3fe replace_io_file nimmt nun Wert :network: und läd Konfiguration über RevPiPyLoad
._configure_replace_io ist eigenständige Funktion
._get_cpreplaceio für Überschreibungen bei Vererbung hinzugefügt
2019-06-23 15:32:26 +02:00
akira 56945d607e Etikett 2.3.3 zum Änderungssatz 2c1959348dd5 hinzugefügt 2019-06-17 12:44:26 +02:00
akira 745c894566 Mit replace_ios zusammenführen 2019-06-17 12:43:35 +02:00
akira 2dbd37f2e7 Parameter replace_io_file hinzugefügt für IO replacement
Wenn replace_io_file verwendet wird, ist .replace_io gesperrt
Verarbeitung der Datei direkt beim Instanziieren
2019-06-16 13:44:59 +02:00
akira 2e802544c9 Import und Export der Dateien verbessert 2019-06-12 17:18:15 +02:00
akira a13ba75bee StructIO für export erweitert
Export und Importfunktionen für ersetzte IOs hinzugefügt
2019-06-10 22:50:29 +02:00
akira 9d78d62b31 Etikett 2.3.2 zum Änderungssatz 789ef5f59b37 hinzugefügt 2019-05-01 13:34:33 +02:00
akira 843cbf39c3 Mit errorhandling zusammenführen 2019-05-01 13:30:45 +02:00
akira 2463eb019d Parameterprüfung für Instantiierung eingeführt
Debug-Parameter für alle Vererbungen übernommen
2019-05-01 12:25:45 +02:00
akira 32c33e49b5 .replace_io mit regex für parameter frm versehen - Danke an Nicolai Buchwitz!
.reset Funktion warf Fehler bei Counter IOs 8-16
2019-05-01 08:41:19 +02:00
akira 6782e9431a Bessere Werte bei _gotioerror
Debugflag um exakte Fehlermeldungen zu bekommen
2019-03-07 12:50:35 +01:00
akira a58162282f added LICENSE.txt and README.md 2019-01-25 20:04:49 +01:00