videoUnit :: ComponentInstance
videoUnit = ComponentInstance v $ BasicComponent nameVideoUnit sig beh
 where
  m2  = mkMessage "m2" "{data:RawVideo}"
  sig = Signature
    [askVid]
    [getVid, storeVid]
    (fromList [(askVid, m1), (getVid, m1), (storeVid, m1s)])
    (fromList [(askVid, Just m4), (getVid, Just m2), (storeVid, Nothing)])
  beh = LabelledTransitionSystem
    mempty
    [ receive askVid
    , reply askVid
    , invoke getVid
    , result getVid
    , invoke storeVid
    , tau (TimeValue 2) (TimeValue 4)
    ]
    (State <$> ["0", "1", "2", "3", "4", "5", "6"])
    (State "0")
    [State "6"]
    [vut1, vut2, vut3, vut4, vut5, vut6, vut7]

--
-- Acquisition Unit
--
videoUnit :: ComponentInstance
videoUnit = ComponentInstance v $ BasicComponent nameVideoUnit sig beh
 where
  m2  = mkMessage "m2" "{data:RawVideo}"
  sig = Signature
    [askVid]
    [getVid, storeVid]
    (fromList [(askVid, m1), (getVid, m1), (storeVid, m1s)])
    (fromList [(askVid, Just m4), (getVid, Just m2), (storeVid, Nothing)])
  beh = LabelledTransitionSystem
    mempty
    [ receive askVid
    , reply askVid
    , invoke getVid
    , result getVid
    , invoke storeVid
    , tau (TimeValue 2) (TimeValue 4)
    ]
    (State <$> ["0", "1", "2", "3", "4", "5", "6"])
    (State "0")
    [State "6"]
    [vut1, vut2, vut3, vut4, vut5, vut6, vut7]

--
-- Acquisition Unit
--
videoUnit = ComponentInstance v $ BasicComponent nameVideoUnit sig beh
 where
  m2  = mkMessage "m2" "{data:RawVideo}"
  sig = Signature
    [askVid]
    [getVid, storeVid]
    (fromList [(askVid, m1), (getVid, m1), (storeVid, m1s)])
    (fromList [(askVid, Just m4), (getVid, Just m2), (storeVid, Nothing)])
  beh = LabelledTransitionSystem
    mempty
    [ receive askVid
    , reply askVid
    , invoke getVid
    , result getVid
    , invoke storeVid
    , tau (TimeValue 2) (TimeValue 4)
    ]
    (State <$> ["0", "1", "2", "3", "4", "5", "6"])
    (State "0")
    [State "6"]
    [vut1, vut2, vut3, vut4, vut5, vut6, vut7]

--
-- Acquisition Unit
--