myo-0.2.0.0: src/Myo/WebSockets.hs
{-# LANGUAGE OverloadedStrings #-}
module Myo.WebSockets (
module Myo.WebSockets.Types
, ApplicationID
, APIVersion(..)
, connect
, sendCommand
) where
import Network.WebSockets
import Data.Monoid
import qualified Data.Aeson as JSON
import qualified Data.Vector as V
import Myo.WebSockets.Types
data APIVersion = V3
instance Show APIVersion where
show V3 = "3"
type ApplicationID = String
connect :: APIVersion
-> ApplicationID
-- ^ The Myo ApplicationID
-> String
-- ^ Host
-> Int
-- ^ Port
-> ClientApp a
-> IO a
connect apiVr aId host port app = do
runClient host port ("/myo/" <> show apiVr <> "?appid=" <> aId) app
--------------------------------------------------------------------------------
sendCommand :: Connection -> Command -> IO ()
sendCommand conn cmd = do
sendBinaryData conn (JSON.encode $ JSON.Array (V.fromList ["command", JSON.toJSON cmd]))