v2.4.6
kyle-github
tagged this
04 Dec 21:07
* Bump version for next release. * Initial add of condition vars to POSIX platform. * Add initial Windows condition var implementation. * Need to clear the condition variable flag when leaving wait successfully. * Add timeout to socket read/write. * Fix up calls to socket read/write for new timeout parameter. * Condition variable waits use absolute time, not relative time! * Complete rewrite of the state machine to use condition vars and socket timeouts. * Handle socket timeouts. * Fix up debugging. * Adding thread_stress to test like async_stress, but multithreaded. * Clear the tag ID when starting plc_tag_create() as there is no ID at this point. * Add caller informatio to condition variable functions. * Clearing the tag ID for debugging happens whether or not the tag is being destroyed. * Separate out clean up stages for clarity and debugging. * Change modbus to use fair queuing and fix exposed race condition in run_tags. Calling rc_dec on the tag could result in the PLC destructor being called but the call to rc_dec is within the PLC mutex. * Simplify run_tags() tag list handling. * Added debugging output and fixed compilation warnings on conditional variable functions. * Added thread_stress.c to Windows build. * Oops, add the port for the default. * Add function to clear a condition variable. Needed for making sure that the cond var is clear before starting to wait for read/write to complete. * Add constant for the maximum event ID. * Add condition var to tag. Add new public functions for waking and base class initialization. * Whitespace. * Call base class initialization. * Call base class initialization. * Add condition var to session structure. * Recoding to use condition vars and socket timeouts. * Comment out timeBeginPeriod() call as it is no longer needed. The condition variable and socket waits seem to be working well. * Add time in debugging output. * Adde thread _stress test. * On reconnect or initial connect we want to make sure that the session handle is zero. * Add delay response option to allows test_callback.c to succeed on faster machines. * Add delay response param to allow callback tests to pass. * Add response delay in tests for all platforms. * Bump the delay to 20ms to allow the test to complete correctly. * Print out milliseconds on timeout failure. * Set timeout to 50ms to handle really bad CI test VMs. * Silence warnings about unitialized variables by setting pointers to null. * Debugging 200 tag stress test results. PLC overrun? * Drop log level down to a more reasonable level for production. (#289) * Fix #264 (#292) * Change how PCCC/DF1 tag names are parsed to use a struct for the data. * Add bit tag handling. * Output which bit is selected on bit tags. * Tested support for bit tags with N and B files. * Removing Windows multimedia library since we do not call timeBeginPeriod(). * Support more PCCC data file names (#296) * Change PCCC types to be the actual byte type value. Why translate this? * Set the element size and type based on the decoding of the PCCC data file name. * Remove unused commented out code. * fix incorrect use of address.bit instead of address.is_bit. Fix type case now that bit is an integer. * add is_bit flag and bit number. * Support field names including bits for common data file types. * Fixed check for single bits. They are allowed if the element size is 2 bytes. * Fixed logic on tag timeout. It was treated as a fatal failure. * Changed data timeout to 5 seconds. Network is really bad. * Support plc_tag_set_debug_level() and change library load path support on Linux. (#301) * Hide internal library symbols. (#302) * Next version. * Add modbus test server to test code. * Add script to run multiple tests. * Adding macOS ARM binaries to build. Removed most EXPERIMENTAL names. * Noting Arm support for macOS. * Fix 308 - Omron performance (#313) * Add more tests for Omron. * Add Omron support for larger packets and attempt to support Omron strings. * Fix 312 - add connection grouping. (#314) * Add connection group support. * Fix incorrect checks when searching for an existing Modbus PLC connection. * Modbus emulator is very slow to start up, add a sleep to wait for it. * If there is no port open locally, we will get a ECONNREFUSED error. * Remove duplicate code. * Merge Modbus perf updates (#315) * Initial add of sock_wait_event() and sock_wake(). * Add socket wake pipe constructor. Need two fds. * Add start of Windows implementation for socket_wait_event() and socket_wake(). * Disconnect and close are the same event? * Removed duplicate event type, DISCONNECT vs. CLOSE. * Move wake pipe creation to first part of connection process instead of doing it on demand. * Cobble together code to do a wake socket instead of using Windows events. * Minor compilation fixes. * Add wrapper function to wake tags. * Oops, forgot to export plc_tag_generic_wake_tag_impl()! * Fix typo in debug output. * Move wake channel set up earlier so that the status does not poison the final return status. * Move wake channel creation earlier so that the status does not poison the return status. * Refactor to use socket events. Basic read and write for single tags works. * Rework error path clean up of sockets to properly clean up new wake sockets. * Fix clean up on error path. Rework receive_response() to lower latency and make sure that we only read exactly the right amount. * Add new vtable entry for waking the PLC. * Cleanup some FIXMEs. * Clean up more FIXMEs. * Start to include stand enough headers for stand-along compilation. * Add vtable entry and implementation for waking plc through tag. * More FIXME cleanups. * Compilation fixes for socket events. * Remove unused state enum. * Try to fix some macOS compilation errors. * More macOS compilation fixes. * Set debugging output to debug macOS test failure. * More macOS. SIGPIPE suppression is annoying. * Change to using socketpair() instead of pipe() for better macOS behavior. MacOS really wants to generate SIGPIPE. * Removed old, commented out code. * Clean up calculation of Forward Open packet size.
Assets 2
-
2021-12-04T21:07:31Z -
2021-12-04T21:07:31Z - Loading