rosmsg-0.5.1.0: ROS message parser, render, TH

CopyrightAlexander Krupenkin 2016
LicenseBSD3
Maintainermail@akru.me
Stabilityexperimental
PortabilityPOSIX / WIN32
Safe HaskellNone
LanguageHaskell2010

Robotics.ROS.Msg

Contents

Description

Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.

In ROS a node is a process that performs computation. Nodes communicate with each other by publishing messages to topics. A message is a simple data structure, comprising typed fields. Standard primitive types (integer, floating point, boolean, etc.) are supported, as are arrays of primitive types. Messages can include arbitrarily nested structures and arrays (much like C structs).

This package provide the ROS message language parser and builder. Abstract message representation given by parser can be used in TemplateHaskell codegen for native Haskell structures creation.

Synopsis

ROS Message classes

Common used types

Array-like

newtype ROSFixedArray n a Source #

A type for fixed arrays in ROS messages

Constructors

ROSFixedArray 

Fields

Instances

Functor (ROSFixedArray n) Source # 

Methods

fmap :: (a -> b) -> ROSFixedArray n a -> ROSFixedArray n b #

(<$) :: a -> ROSFixedArray n b -> ROSFixedArray n a #

Applicative (ROSFixedArray n) Source # 

Methods

pure :: a -> ROSFixedArray n a #

(<*>) :: ROSFixedArray n (a -> b) -> ROSFixedArray n a -> ROSFixedArray n b #

(*>) :: ROSFixedArray n a -> ROSFixedArray n b -> ROSFixedArray n b #

(<*) :: ROSFixedArray n a -> ROSFixedArray n b -> ROSFixedArray n a #

Eq a => Eq (ROSFixedArray n a) Source # 

Methods

(==) :: ROSFixedArray n a -> ROSFixedArray n a -> Bool #

(/=) :: ROSFixedArray n a -> ROSFixedArray n a -> Bool #

(Data a, KnownNat n) => Data (ROSFixedArray n a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ROSFixedArray n a -> c (ROSFixedArray n a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ROSFixedArray n a) #

toConstr :: ROSFixedArray n a -> Constr #

dataTypeOf :: ROSFixedArray n a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (ROSFixedArray n a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ROSFixedArray n a)) #

gmapT :: (forall b. Data b => b -> b) -> ROSFixedArray n a -> ROSFixedArray n a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ROSFixedArray n a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ROSFixedArray n a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ROSFixedArray n a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ROSFixedArray n a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ROSFixedArray n a -> m (ROSFixedArray n a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ROSFixedArray n a -> m (ROSFixedArray n a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ROSFixedArray n a -> m (ROSFixedArray n a) #

Ord a => Ord (ROSFixedArray n a) Source # 
Show a => Show (ROSFixedArray n a) Source # 
Monoid (ROSFixedArray n a) Source # 
(Binary a, KnownNat n) => Binary (ROSFixedArray n a) Source # 

Methods

put :: ROSFixedArray n a -> Put #

get :: Get (ROSFixedArray n a) #

putList :: [ROSFixedArray n a] -> Put #

(Default a, KnownNat n) => Default (ROSFixedArray n a) Source # 

Methods

def :: ROSFixedArray n a #

newtype ROSArray a Source #

A type for arrays in ROS messages

Constructors

ROSArray 

Fields

Instances

Functor ROSArray Source # 

Methods

fmap :: (a -> b) -> ROSArray a -> ROSArray b #

(<$) :: a -> ROSArray b -> ROSArray a #

Applicative ROSArray Source # 

Methods

pure :: a -> ROSArray a #

(<*>) :: ROSArray (a -> b) -> ROSArray a -> ROSArray b #

(*>) :: ROSArray a -> ROSArray b -> ROSArray b #

(<*) :: ROSArray a -> ROSArray b -> ROSArray a #

Eq a => Eq (ROSArray a) Source # 

Methods

(==) :: ROSArray a -> ROSArray a -> Bool #

(/=) :: ROSArray a -> ROSArray a -> Bool #

Data a => Data (ROSArray a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ROSArray a -> c (ROSArray a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ROSArray a) #

toConstr :: ROSArray a -> Constr #

dataTypeOf :: ROSArray a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (ROSArray a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ROSArray a)) #

gmapT :: (forall b. Data b => b -> b) -> ROSArray a -> ROSArray a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ROSArray a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ROSArray a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ROSArray a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ROSArray a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ROSArray a -> m (ROSArray a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ROSArray a -> m (ROSArray a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ROSArray a -> m (ROSArray a) #

Ord a => Ord (ROSArray a) Source # 

Methods

compare :: ROSArray a -> ROSArray a -> Ordering #

(<) :: ROSArray a -> ROSArray a -> Bool #

(<=) :: ROSArray a -> ROSArray a -> Bool #

(>) :: ROSArray a -> ROSArray a -> Bool #

(>=) :: ROSArray a -> ROSArray a -> Bool #

max :: ROSArray a -> ROSArray a -> ROSArray a #

min :: ROSArray a -> ROSArray a -> ROSArray a #

Show a => Show (ROSArray a) Source # 

Methods

showsPrec :: Int -> ROSArray a -> ShowS #

show :: ROSArray a -> String #

showList :: [ROSArray a] -> ShowS #

Monoid (ROSArray a) Source # 

Methods

mempty :: ROSArray a #

mappend :: ROSArray a -> ROSArray a -> ROSArray a #

mconcat :: [ROSArray a] -> ROSArray a #

Binary a => Binary (ROSArray a) Source # 

Methods

put :: ROSArray a -> Put #

get :: Get (ROSArray a) #

putList :: [ROSArray a] -> Put #

Default (ROSArray a) Source # 

Methods

def :: ROSArray a #

Time description

type ROSDuration = (Int32, Int32) Source #

ROSDuration is a tuple of (seconds, nanoseconds)

type ROSTime = (Word32, Word32) Source #

ROSTime is a tuple of (seconds, nanoseconds)