UniInt’s exit handler performs the following operations in the listed order.
UniInt calls the interface-specific exit handler to perform interface-specific cleanup operations.
If the /stopstat=digstate parameter is present on the command-line of the interface, UniInt will write the digstate, digital state, to all scan-based and event-based input points of the interface. If a performance point is associated with the interface, digstate will also be written to the performance point. I/O Rate points do not receive digstate events because 0 is written to I/O Rate points when the interface exits. See the description of the /stopstat parameter under the section called “The Startup Command File” for recommended usage of the /stopstat parameter,
If an I/O Rate point is associated with the interface, the I/O Rate point will be updated with a final rate, and the I/O Rate counter will be zeroed.
For interfaces that run on Windows or UNIX nodes, piut_disconnect() is called to disestablish the connection to the PI Server node.
It is possible for the interface to be terminated without invoking the exit handler. One normally does not want to bypass the exit handler. On any operating system, the exit handler will not be invoked when the computer crashes. On UNIX, the exit handler will not be invoked if the process is stopped with: kill –9. For interactive processes on Windows, the exit handler will be terminated prematurely if control-c is hit a second time (the exit handler is invoked the first time that control-c is hit).
Time
UniInt 3.x handles time differently depending upon whether or not UniInt is running in extended PI API mode. A startup message in the pipc.log file clearly indicates whether or not UniInt is running in extended PI API mode. When the extended PI API features of UniInt are not enabled, UniInt 3.x handles time in the same manner as UniInt 2.x. This is called UniInt 2.x compatibility mode.