libmodbus 1.1.1 → 1.1.2
raw patch · 3 files changed
+40/−31 lines, 3 files
Files
- CHANGELOG +8/−0
- System/Modbus.hsc +29/−29
- libmodbus.cabal +3/−2
CHANGELOG view
@@ -1,3 +1,11 @@+haskell-libmodbus (1.1.2) unstable; urgency=medium++ * Change FFI calls to not be unsafe, to prevent a FFI call+ that stalls for some reason (such as a broken device)+ from blocking haskell threads.++ -- Joey Hess <id@joeyh.name> Wed, 23 Mar 2022 13:26:09 -0400+ haskell-libmodbus (1.1.1) unstable; urgency=medium * Use modbus_strerror for better messages in exceptions.
System/Modbus.hsc view
@@ -136,91 +136,91 @@ import qualified Data.ByteString.Lazy as L import GHC.IO.Exception -foreign import ccall unsafe "modbus.h &modbus_close" modbus_close+foreign import ccall "modbus.h &modbus_close" modbus_close :: FunPtr (Ptr () -> IO ()) -foreign import ccall unsafe "modbus.h &modbus_free" modbus_free+foreign import ccall "modbus.h &modbus_free" modbus_free :: FunPtr (Ptr () -> IO ()) -foreign import ccall unsafe "modbus.h modbus_new_rtu" modbus_new_rtu+foreign import ccall "modbus.h modbus_new_rtu" modbus_new_rtu :: CString -> Int -> CChar -> Int -> Int -> IO (Ptr ()) -foreign import ccall unsafe "modbus.h modbus_rtu_get_serial_mode" modbus_rtu_get_serial_mode+foreign import ccall "modbus.h modbus_rtu_get_serial_mode" modbus_rtu_get_serial_mode :: Ptr () -> IO Int -foreign import ccall unsafe "modbus.h modbus_rtu_set_serial_mode" modbus_rtu_set_serial_mode+foreign import ccall "modbus.h modbus_rtu_set_serial_mode" modbus_rtu_set_serial_mode :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_rtu_get_rts" modbus_rtu_get_rts+foreign import ccall "modbus.h modbus_rtu_get_rts" modbus_rtu_get_rts :: Ptr () -> IO Int -foreign import ccall unsafe "modbus.h modbus_rtu_set_rts" modbus_rtu_set_rts+foreign import ccall "modbus.h modbus_rtu_set_rts" modbus_rtu_set_rts :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_rtu_get_rts_delay" modbus_rtu_get_rts_delay+foreign import ccall "modbus.h modbus_rtu_get_rts_delay" modbus_rtu_get_rts_delay :: Ptr () -> IO Int -foreign import ccall unsafe "modbus.h modbus_rtu_set_rts_delay" modbus_rtu_set_rts_delay+foreign import ccall "modbus.h modbus_rtu_set_rts_delay" modbus_rtu_set_rts_delay :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_new_tcp" modbus_new_tcp+foreign import ccall "modbus.h modbus_new_tcp" modbus_new_tcp :: CString -> Int -> IO (Ptr ()) -foreign import ccall unsafe "modbus.h modbus_new_tcp" modbus_new_tcp_pi+foreign import ccall "modbus.h modbus_new_tcp" modbus_new_tcp_pi :: CString -> CString -> IO (Ptr ()) -foreign import ccall unsafe "modbus.h modbus_set_slave" modbus_set_slave+foreign import ccall "modbus.h modbus_set_slave" modbus_set_slave :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_connect" modbus_connect+foreign import ccall "modbus.h modbus_connect" modbus_connect :: Ptr () -> IO Int -foreign import ccall unsafe "modbus.h modbus_set_debug" modbus_set_debug+foreign import ccall "modbus.h modbus_set_debug" modbus_set_debug :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_get_byte_timeout" modbus_get_byte_timeout+foreign import ccall "modbus.h modbus_get_byte_timeout" modbus_get_byte_timeout :: Ptr () -> Ptr Word32 -> Ptr Word32 -> IO Int -foreign import ccall unsafe "modbus.h modbus_set_byte_timeout" modbus_set_byte_timeout+foreign import ccall "modbus.h modbus_set_byte_timeout" modbus_set_byte_timeout :: Ptr () -> Ptr Word32 -> Ptr Word32 -> IO Int -foreign import ccall unsafe "modbus.h modbus_get_response_timeout" modbus_get_response_timeout+foreign import ccall "modbus.h modbus_get_response_timeout" modbus_get_response_timeout :: Ptr () -> Ptr Word32 -> Ptr Word32 -> IO Int -foreign import ccall unsafe "modbus.h modbus_set_response_timeout" modbus_set_response_timeout+foreign import ccall "modbus.h modbus_set_response_timeout" modbus_set_response_timeout :: Ptr () -> Ptr Word32 -> Ptr Word32 -> IO Int -foreign import ccall unsafe "modbus.h modbus_set_error_recovery" modbus_set_error_recovery+foreign import ccall "modbus.h modbus_set_error_recovery" modbus_set_error_recovery :: Ptr () -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_read_registers" modbus_read_registers+foreign import ccall "modbus.h modbus_read_registers" modbus_read_registers :: Ptr () -> Int -> Int -> Ptr Word16 -> IO Int -foreign import ccall unsafe "modbus.h modbus_read_input_registers" modbus_read_input_registers+foreign import ccall "modbus.h modbus_read_input_registers" modbus_read_input_registers :: Ptr () -> Int -> Int -> Ptr Word16 -> IO Int -foreign import ccall unsafe "modbus.h modbus_write_registers" modbus_write_registers+foreign import ccall "modbus.h modbus_write_registers" modbus_write_registers :: Ptr () -> Int -> Int -> Ptr Word16 -> IO Int -foreign import ccall unsafe "modbus.h modbus_write_register" modbus_write_register+foreign import ccall "modbus.h modbus_write_register" modbus_write_register :: Ptr () -> Int -> Word16 -> IO Int -foreign import ccall unsafe "modbus.h modbus_write_and_read_registers" modbus_write_and_read_registers+foreign import ccall "modbus.h modbus_write_and_read_registers" modbus_write_and_read_registers :: Ptr () -> Int -> Int -> Ptr Word16 -> Int -> Int -> Ptr Word16 -> IO Int -foreign import ccall unsafe "modbus.h modbus_read_bits" modbus_read_bits+foreign import ccall "modbus.h modbus_read_bits" modbus_read_bits :: Ptr () -> Int -> Int -> Ptr Word8 -> IO Int -foreign import ccall unsafe "modbus.h modbus_read_input_bits" modbus_read_input_bits+foreign import ccall "modbus.h modbus_read_input_bits" modbus_read_input_bits :: Ptr () -> Int -> Int -> Ptr Word8 -> IO Int -foreign import ccall unsafe "modbus.h modbus_write_bits" modbus_write_bits+foreign import ccall "modbus.h modbus_write_bits" modbus_write_bits :: Ptr () -> Int -> Int -> Ptr Word8 -> IO Int -foreign import ccall unsafe "modbus.h modbus_write_bit" modbus_write_bit+foreign import ccall "modbus.h modbus_write_bit" modbus_write_bit :: Ptr () -> Int -> Int -> IO Int -foreign import ccall unsafe "modbus.h modbus_strerror" modbus_strerror+foreign import ccall "modbus.h modbus_strerror" modbus_strerror :: Errno -> IO (Ptr CChar) accessVector
libmodbus.cabal view
@@ -1,6 +1,6 @@ Name: libmodbus-Version: 1.1.1-Cabal-Version: >= 1.8+Version: 1.1.2+Cabal-Version: >= 1.10 License: BSD2 Maintainer: Joey Hess <id@joeyh.name> Author: Joey Hess@@ -22,6 +22,7 @@ GHC-Options: -Wall -fno-warn-tabs Extra-Libraries: modbus Exposed-Modules: System.Modbus+ Default-Language: Haskell2010 Build-Depends: base >= 4.5 && < 5, vector >= 0.12 && <= 0.13,