Skip to content

DistRap/network-can

Repository files navigation

network-can

GitHub Workflow Status Hackage version

CAN bus networking using Linux SocketCAN or SLCAN backends.

Usage

import qualified Control.Monad
import qualified Network.CAN
import qualified Network.SocketCAN

main :: IO ()
main = do
  let interface = "vcan0"
  mIdx <- Network.SocketCAN.ifNameToIndex interface
  case mIdx of
    Nothing -> error $ "Interface " <> interface <> " not found"
    Just idx ->
      Network.SocketCAN.withSocketCAN
        idx
        (\sock -> do

          Network.SocketCAN.sendCANMessage
            sock
            $ Network.CAN.standardMessage
                0x123
                [0xDE, 0xAD]

          Control.Monad.forever
            $ Network.SocketCAN.recvCANMessage sock
              >>= print
        )

Releases

No releases published

Packages

No packages published