HsWebots-0.1.0.0: src/Webots/RemoteControl.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
module Webots.RemoteControl where
import Control.Exception.Safe ( try
, SomeException(..)
, throwIO
)
import Foreign.Ptr
import Foreign.Storable
import Foreign.C.String
import qualified Language.C.Inline as C
import qualified Language.C.Inline.Context as C
import qualified Language.C.Types as C
import Language.C.Inline.Cpp (cppTypePairs)
import Foreign.C.Types
import Control.Monad (forM_,forM)
import qualified Codec.Picture as I
import qualified Data.Vector.Storable as V
import qualified Foreign.ForeignPtr as F
import qualified Foreign.Ptr as F
import qualified Data.ByteString.Internal as BSI
import Webots.Types
C.context $ C.baseCtx `mappend` cppTypePairs typeMaps
C.include "<math.h>"
C.include "<stdio.h>"
C.include "<stdlib.h>"
C.include "<webots/remote_control.h>"
wb_remote_control_custom_function :: Ptr CChar -> IO ()
wb_remote_control_custom_function xxx =
[C.exp| void { wb_remote_control_custom_function($(char* xxx)) } |]
wbr_robot_battery_sensor_set_value :: CDouble -> IO ()
wbr_robot_battery_sensor_set_value value =
[C.exp| void { wbr_robot_battery_sensor_set_value($(double value)) } |]
wbr_differential_wheels_set_encoders :: CDouble -> CDouble -> IO ()
wbr_differential_wheels_set_encoders left right =
[C.exp| void { wbr_differential_wheels_set_encoders($(double left), $(double right)) } |]
wbr_accelerometer_set_values :: WbDeviceTag -> Ptr CDouble -> IO ()
wbr_accelerometer_set_values tag values =
[C.exp| void { wbr_accelerometer_set_values($(WbDeviceTag tag), $(const double* values)) } |]
wbr_camera_recognition_set_object :: WbDeviceTag -> Ptr WbCameraRecognitionObject -> CInt -> IO ()
wbr_camera_recognition_set_object tag objects object_number =
[C.exp| void { wbr_camera_recognition_set_object($(WbDeviceTag tag), $(const WbCameraRecognitionObject* objects), $(int object_number)) } |]
wbr_compass_set_values :: WbDeviceTag -> Ptr CDouble -> IO ()
wbr_compass_set_values tag values =
[C.exp| void { wbr_compass_set_values($(WbDeviceTag tag), $(const double* values)) } |]
wbr_distance_sensor_set_value :: WbDeviceTag -> CDouble -> IO ()
wbr_distance_sensor_set_value tag value =
[C.exp| void { wbr_distance_sensor_set_value($(WbDeviceTag tag), $(double value)) } |]
wbr_gps_set_values :: WbDeviceTag -> Ptr CDouble -> IO ()
wbr_gps_set_values tag values =
[C.exp| void { wbr_gps_set_values($(WbDeviceTag tag), $(const double* values)) } |]
wbr_gps_set_speed :: WbDeviceTag -> CDouble -> IO ()
wbr_gps_set_speed tag speed =
[C.exp| void { wbr_gps_set_speed($(WbDeviceTag tag), $(double speed)) } |]
wbr_gyro_set_values :: WbDeviceTag -> Ptr CDouble -> IO ()
wbr_gyro_set_values tag values =
[C.exp| void { wbr_gyro_set_values($(WbDeviceTag tag), $(const double* values)) } |]
wbr_inertial_unit_set_value :: WbDeviceTag -> CDouble -> IO ()
wbr_inertial_unit_set_value tag value =
[C.exp| void { wbr_inertial_unit_set_value($(WbDeviceTag tag), $(double value)) } |]
wbr_light_sensor_set_value :: WbDeviceTag -> CDouble -> IO ()
wbr_light_sensor_set_value tag value =
[C.exp| void { wbr_light_sensor_set_value($(WbDeviceTag tag), $(double value)) } |]
wbr_microphone_set_buffer :: WbDeviceTag -> Ptr CChar -> CInt -> IO ()
wbr_microphone_set_buffer tag buffer size =
[C.exp| void { wbr_microphone_set_buffer($(WbDeviceTag tag), $(const char* buffer), $(int size)) } |]
wbr_motor_set_position_feedback :: WbDeviceTag -> CDouble -> IO ()
wbr_motor_set_position_feedback tag value =
[C.exp| void { wbr_motor_set_position_feedback($(WbDeviceTag tag), $(double value)) } |]
wbr_motor_set_force_feedback :: WbDeviceTag -> CDouble -> IO ()
wbr_motor_set_force_feedback tag value =
[C.exp| void { wbr_motor_set_force_feedback($(WbDeviceTag tag), $(double value)) } |]
wbr_motor_set_torque_feedback :: WbDeviceTag -> CDouble -> IO ()
wbr_motor_set_torque_feedback tag value =
[C.exp| void { wbr_motor_set_torque_feedback($(WbDeviceTag tag), $(double value)) } |]
wbr_position_sensor_set_value :: WbDeviceTag -> CDouble -> IO ()
wbr_position_sensor_set_value tag value =
[C.exp| void { wbr_position_sensor_set_value($(WbDeviceTag tag), $(double value)) } |]
wbr_radar_set_targets :: WbDeviceTag -> Ptr WbRadarTarget -> CInt -> IO ()
wbr_radar_set_targets tag targets target_number =
[C.exp| void { wbr_radar_set_targets($(WbDeviceTag tag), $(const WbRadarTarget* targets), $(int target_number)) } |]
wbr_touch_sensor_set_value :: WbDeviceTag -> CDouble -> IO ()
wbr_touch_sensor_set_value tag value =
[C.exp| void { wbr_touch_sensor_set_value($(WbDeviceTag tag), $(double value)) } |]
wbr_touch_sensor_set_values :: WbDeviceTag -> Ptr CDouble -> IO ()
wbr_touch_sensor_set_values tag values =
[C.exp| void { wbr_touch_sensor_set_values($(WbDeviceTag tag), $(const double* values)) } |]
wbr_display_save_image :: WbDeviceTag -> CInt -> CInt -> CInt -> Ptr CChar -> IO ()
wbr_display_save_image tag id width height image =
[C.exp| void { wbr_display_save_image($(WbDeviceTag tag), $(int id), $(int width), $(int height), $(char* image)) } |]
wbr_camera_set_image :: WbDeviceTag -> Ptr CChar -> IO ()
wbr_camera_set_image tag image =
[C.exp| void { wbr_camera_set_image($(WbDeviceTag tag), $(char* image)) } |]