Skip to content

DistRap/network-canopen

Repository files navigation

network-canopen

GitHub Workflow Status Hackage version

Work-in-progress native CANOpen protocol master implementation.

Usage

import Data.Word (Word8)
import Network.CANOpen
  ( CANOpen(..)
  , CNode(..)
  , Mux(..)
  , NodeID(..)
  , Permission(..)
  , Variable(..)
  )

import qualified Network.CANOpen
import qualified Network.SocketCAN

outputs :: Variable Word8
outputs =
  Variable
  { variableName = "Outputs"
  , variableMux  = Mux 0x6000 1
  , variablePerm = Permission_ReadWrite
  }

main :: IO ()
main = do
  Network.SocketCAN.withSocketCAN (Network.SocketCAN.mkCANInterface "vcan0") $ \can ->
    Network.CANOpen.withCANOpen can $ \CANOpen{..} -> do

      io <- canOpenAddNode (NodeID 1)

      cNodeSDOWrite io outputs 0b1
      cNodeSDORead io outputs
      >>= putStrLn . show

About

CANOpen protocol implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages