Skip to content

Releases: derek-will/SocketCANSharp

0.12.0

29 Nov 19:32
Compare
Choose a tag to compare
  • 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

04 Aug 02:08
Compare
Choose a tag to compare
  • 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

03 Feb 04:40
Compare
Choose a tag to compare
  • 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

17 Nov 02:50
Compare
Choose a tag to compare
  • Added BcmCanSocket class (#14)
  • Improved Unit Testing Suite (#53, #54, #55, #56, #57)
  • Added CAN_BCM examples to README (#52)
  • Added nuget package download count to README (#51)

0.8.0

21 Sep 01:53
Compare
Choose a tag to compare
  • 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 the SafeFileDescriptorHandle instances (#38).

0.7.0

28 Jul 01:58
Compare
Choose a tag to compare
  • 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 of SafeFileDescriptorHandle (#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

16 May 00:12
Compare
Choose a tag to compare
  • 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

19 Apr 01:41
Compare
Choose a tag to compare
  • 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

26 Mar 02:12
Compare
Choose a tag to compare
  • Added P/Invoke support for epoll API: epoll_create, epoll_ctl, epoll_wait (#1).
  • Added a higher level class for managing an epoll instance (#19).
  • Added shortcut for accessing errno (#18).
  • Fixed some minor documentation issues (#16, #17).
  • Added nuget package information to README (#15).

0.3.0

14 Mar 03:01
Compare
Choose a tag to compare
  • Added AbstractCanSocket, IsoTpCanSocket, and SocketCanException classes (#8)
  • Changed Frame field in BcmCanSingleMessage and BcmCanFdSingleMessage 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)