Releases: derek-will/SocketCANSharp
Releases · derek-will/SocketCANSharp
0.13.0
- Added support for setting CAN Network Interface parameters via Netlink (#69)
- Added support for setting Bitrates via CanNetworkInterface class (#97)
- Added suppport for setting link up and down via CanNetworkInterface class (#100)
- Added support for getting and setting CAN Controller Mode Flags via CanNetworkInterface class (#95)
- Added CAN Controller State Property to CanNetworkInterface class (#103)
- Added CAN Controller Auto-Restart Delay Property to CanNetworkInterface class (#94)
- Added CAN Controller Restart Method to CanNetworkInterface class (#96)
- Added TerminationResistance property to CanNetworkInterface class (#98)
- Added setter to MTU property of CanNetworkInterface class (#104)
- Modified GetAllInterfaces method of CanNetworkInterface class to use RTNETLINK under the hood (#107)
- Refactored CreateCanIdWithFlags to use compound assignment (#112)
- Fixed bug where ParseCanToCanRules would fail when more than one netlink message was present in the supplied buffer (#115)
- Cleaned up NetlinkRoutingAttributeTests unit tests (#99)
- Added unit test for GetAllInterfaces method of SocketCanUtils (#108)
- Improved unit test of the CanNetworkInterface version of GetAllInterfaces (#109)
- Updated project documentation (#101, #102, #105, #110, #113)
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).