Releases: derek-will/SocketCANSharp
Releases · derek-will/SocketCANSharp
0.12.0
- Added feature summary chart to README (#77)
- Added functionality to RawCanSocket class to determine whether the read frame was a transmission success indication and/or localhost indication (#39)
- Added initial CAN XL support (#50)
- Added initial CAN XL VCID support (#81)
- Added instructions for running SocketCAN# on Windows via the WSL (#80)
- Added Iot.Device.SocketCan comparison documentation (#83)
- Tested and confirmed Alpine Linux support (#76)
- Added initial support for obtaining the timestamp of the latest packet passed to the user via SIOCGSTAMP and updated CAN bus sniffer example app to include timestamp info (#86)
- Updated example apps to .NET 8 (#87)
- Added CAN device setup script (#89)
- Various minor improvements and fixes (#88, #90, #91)
0.11.0
- Added CAN_GW Netlink socket support (#49, #75).
- Added object-oriented implementation for accessing CAN_GW Netlink socket (#71).
- Added CAN_GW example application (#70).
- Updated README files to include reference to CAN_GW functionality (#72).
- Updated CAN network interface support to include the following CAN FD attributes: IFLA_CAN_DATA_BITTIMING and IFLA_CAN_DATA_BITTIMING_CONST (#66).
- Added test environment setup script (#67).
- Added README file to Nuget Package (#68).
0.10.0
- Added ability to retrieve CAN network interface information via Netlink (#26)
- Added properties to CanNetworkInterface class for various interface properties (#61)
- Updated sample projects and test suite to .NET 6 (#58)
- Updated README to include reference to the CanNetlinkReader example application (#63)
- Added MaximumTransmissionUnit property to CanNetworkInterface class (#64)
- Overrode ToString method on core classes and structs (#46)
- Added utility methods and classes for accessing standard basic information (#62)
- Added J1939 bus sniffer sample appliication (#60)
0.9.0
0.8.0
- Added support for
recvmsg
function along with the MSG_CONFIRM and MSG_DONTROUTE flags for indicating whether a CAN Frame is from the current socket or from a socket on the localhost (#20, #21). - Added
J1939CanSocket
class to enable object-oriented usage of the CAN_J1939 sockets (#13). - Added support for the CAN_ISOTP_CF_BROADCAST option flag for the non-standard feature of 1-to-N functionally addressed segmented transfers without using Flow Control (#37).
- Added support for using CAN_BCM sockets within 32-bit processes (#45).
- Harmonized the
Timeval
type to work in both 32-bit and 64-bit processes (#43). - Harmonized the
EpollEvent
struct to work in both 32-bit and 64-bit processes (#44). - Fixed issue with marshalling
sockaddr_can
(managed counterpart:SockAddrCan
) on pre-5.4 kernels (#40). - Fixed issue with the detection of invalid epoll file descriptors on ARM64 (#47).
- Updated README with J1939 Example Code (#42).
- Updated README examples to include
using
statements around theSafeFileDescriptorHandle
instances (#38).
0.7.0
- Changed Target Framework form .NET 5 to .NET Standard 2.0 per official recommendations. As part of framework target change: removed usage of
SafeSocketHandle
in favor ofSafeFileDescriptorHandle
(#35). - Added support and associated unit tests for using MSG_PEEK and MSG_TRUNC message flags with
recv
function on ISO-TP sockets (#33, #36). - Added support for invoking
getpeername
function which is useful when working with J1939 sockets (#28).
0.6.0
- Added check to verify that CAN IDs which exceed 0x7FF (11 bits) have the CAN_EFF_FLAG set on them (#31).
- Updated ISO-TP unit test to also check for the new behavior when attempting to read from an unbound socket (#32).
- Added support for getsockname in libc P/Invoke code (#27).
- Added address property to both the RawCanSocket and IsoTpCanSocket classes (#29, #30).
- Updated README to include example of RawCanSocket class (#34).
0.5.0
- Added
RawCanSocket
class for high-level abstraction (#12). - Added ability to get MTU of a
CanNetworkInterface
and directly via SIOCGIFMTU ioctl call (#22). - Added ability for creating a
CanNetworkInterface
instance by name and index using SIOCGIFINDEX and SIOCGIFNAME ioctl calls (#24, #25). - General housecleaning (#23).
0.4.0
0.3.0
- Added
AbstractCanSocket
,IsoTpCanSocket
, andSocketCanException
classes (#8) - Changed Frame field in
BcmCanSingleMessage
andBcmCanFdSingleMessage
classes to be a property (#7) - Added documentation to
SocketLevel
enum (#5) - Added support for enabling Non-Blocking sockets
- Added SO_SNDBUF and SO_RCVBUF support
- Added getsockopt support for various socket option overloads
- General housecleaning of code and other artifacts (#10, #6, #4, #3)
- Additional unit tests added to unit test suite to cover new functionality and better test existing functionality (#11, #2)
- Added new example application to showcase
IsoTpCanSocket
class in action (#9)