Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion Drivers/Marlin/ACT/LibMCDriver_Marlin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ Custom implementation
<param name="COMPort" type="string" pass="in" description="Device Port to connect to" />
<param name="Baudrate" type="uint32" pass="in" description="Baudrate to use" />
<param name="StatusUpdateInterval" type="double" pass="in" description="Timer interval [ms] for updating status" />
<param name="ConnectTimeout" type="uint32" pass="in" description="Timeout [ms] for connecting printer" />
</method>

<method name="Disconnect" description="Disconnects from the Marlin board.">
Expand All @@ -120,11 +121,18 @@ Custom implementation

<method name="SetHeatedBedTargetTemperature" description="Sets heated bed target temperature.">
<param name="TemperatureInDegreeCelcius" type="double" pass="in" description="Bed target temperature." />
<param name="WaitForTemp" type="bool" pass="in" description="If true, waits for the target bed temperature to be reached before proceeding" />
</method>

<method name="SetExtruderTargetTemperature" description="Sets target temperature of the given extruder.">
<param name="ExtruderID" type="uint32" pass="in" description="ID of extruder." />
<param name="TemperatureInDegreeCelcius" type="double" pass="in" description="Extruder target temperature." />
<param name="WaitForTemp" type="bool" pass="in" description="If true, waits for the target extruder temperature to be reached before proceeding" />
</method>

<method name="SetFanSpeed" description="Turns on one of the fans and set its speed.">
<param name="FanID" type="uint32" pass="in" description="ID of fan." />
<param name="Speed" type="uint32" pass="in" description="Fan speed [0..255]. 0=0%...255=100%" />
</method>

<method name="SetPidParameters" description="Sets PID parameters.">
Expand All @@ -148,7 +156,7 @@ Custom implementation
<param name="Z" type="double" pass="out" description="Z Value in mm" />
</method>

<method name="GetExtruderPosition" description="Returns the current extruder position.">
<method name="GetExtruderTargetPosition" description="Returns the target extruder position.">
<param name="E" type="double" pass="out" description="E Value in mm" />
</method>

Expand Down Expand Up @@ -185,6 +193,7 @@ Custom implementation
<method name="MoveToXY" description="Moves to/by a certain position by a linear move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.">
<param name="X" type="double" pass="in" description="X Value in mm" />
<param name="Y" type="double" pass="in" description="Y Value in mm" />
<param name="E" type="double" pass="in" description="E Value in mm" />
<param name="Speed" type="double" pass="in" description="Movement speed in mm/s" />
</method>

Expand All @@ -196,6 +205,7 @@ Custom implementation

<method name="MoveToZ" description="Moves to/by a certain position by a linear move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.">
<param name="Z" type="double" pass="in" description="Z Value in mm" />
<param name="E" type="double" pass="in" description="E Value in mm" />
<param name="Speed" type="double" pass="in" description="Movement speed in mm/s" />
</method>

Expand Down
29 changes: 22 additions & 7 deletions Drivers/Marlin/Headers/CppDynamic/libmcdriver_marlin_abi.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,10 @@ LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_g
* @param[in] pCOMPort - Device Port to connect to
* @param[in] nBaudrate - Baudrate to use
* @param[in] dStatusUpdateInterval - Timer interval [ms] for updating status
* @param[in] nConnectTimeout - Timeout [ms] for connecting printer
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_connect(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, const char * pCOMPort, LibMCDriver_Marlin_uint32 nBaudrate, LibMCDriver_Marlin_double dStatusUpdateInterval);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_connect(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, const char * pCOMPort, LibMCDriver_Marlin_uint32 nBaudrate, LibMCDriver_Marlin_double dStatusUpdateInterval, LibMCDriver_Marlin_uint32 nConnectTimeout);

/**
* Disconnects from the Marlin board.
Expand All @@ -152,19 +153,31 @@ LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_m
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dTemperatureInDegreeCelcius - Bed target temperature.
* @param[in] bWaitForTemp - If true, waits for the target bed temperature to be reached before proceeding
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_setheatedbedtargettemperature(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_setheatedbedtargettemperature(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius, bool bWaitForTemp);

/**
* Sets target temperature of the given extruder.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] nExtruderID - ID of extruder.
* @param[in] dTemperatureInDegreeCelcius - Extruder target temperature.
* @param[in] bWaitForTemp - If true, waits for the target extruder temperature to be reached before proceeding
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_setextrudertargettemperature(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nExtruderID, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_setextrudertargettemperature(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nExtruderID, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius, bool bWaitForTemp);

/**
* Turns on one of the fans and set its speed.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] nFanID - ID of fan.
* @param[in] nSpeed - Fan speed [0..255]. 0=0%!.(MISSING).255=100%!
(MISSING)* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_setfanspeed(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nFanID, LibMCDriver_Marlin_uint32 nSpeed);

/**
* Sets PID parameters.
Expand Down Expand Up @@ -208,13 +221,13 @@ LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_m
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_gettargetposition(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pX, LibMCDriver_Marlin_double * pY, LibMCDriver_Marlin_double * pZ);

/**
* Returns the current extruder position.
* Returns the target extruder position.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[out] pE - E Value in mm
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_getextruderposition(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pE);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_getextrudertargetposition(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pE);

/**
* Returns the current and the target bed temperature.
Expand Down Expand Up @@ -281,10 +294,11 @@ LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_m
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dX - X Value in mm
* @param[in] dY - Y Value in mm
* @param[in] dE - E Value in mm
* @param[in] dSpeed - Movement speed in mm/s
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_movetoxy(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dX, LibMCDriver_Marlin_double dY, LibMCDriver_Marlin_double dSpeed);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_movetoxy(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dX, LibMCDriver_Marlin_double dY, LibMCDriver_Marlin_double dE, LibMCDriver_Marlin_double dSpeed);

/**
* Moves to/by a certain position by a fast move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.
Expand All @@ -302,10 +316,11 @@ LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_m
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dZ - Z Value in mm
* @param[in] dE - E Value in mm
* @param[in] dSpeed - Movement speed in mm/s
* @return error code or 0 (success)
*/
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_movetoz(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dZ, LibMCDriver_Marlin_double dSpeed);
LIBMCDRIVER_MARLIN_DECLSPEC LibMCDriver_MarlinResult libmcdriver_marlin_driver_marlin_movetoz(LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dZ, LibMCDriver_Marlin_double dE, LibMCDriver_Marlin_double dSpeed);

/**
* Moves to/by a certain position by a fast move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.
Expand Down
32 changes: 24 additions & 8 deletions Drivers/Marlin/Headers/CppDynamic/libmcdriver_marlin_dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,10 @@ typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_GetHeaderInformatio
* @param[in] pCOMPort - Device Port to connect to
* @param[in] nBaudrate - Baudrate to use
* @param[in] dStatusUpdateInterval - Timer interval [ms] for updating status
* @param[in] nConnectTimeout - Timeout [ms] for connecting printer
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_ConnectPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, const char * pCOMPort, LibMCDriver_Marlin_uint32 nBaudrate, LibMCDriver_Marlin_double dStatusUpdateInterval);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_ConnectPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, const char * pCOMPort, LibMCDriver_Marlin_uint32 nBaudrate, LibMCDriver_Marlin_double dStatusUpdateInterval, LibMCDriver_Marlin_uint32 nConnectTimeout);

/**
* Disconnects from the Marlin board.
Expand All @@ -139,19 +140,31 @@ typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetAbsoluteP
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dTemperatureInDegreeCelcius - Bed target temperature.
* @param[in] bWaitForTemp - If true, waits for the target bed temperature to be reached before proceeding
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetHeatedBedTargetTemperaturePtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetHeatedBedTargetTemperaturePtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius, bool bWaitForTemp);

/**
* Sets target temperature of the given extruder.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] nExtruderID - ID of extruder.
* @param[in] dTemperatureInDegreeCelcius - Extruder target temperature.
* @param[in] bWaitForTemp - If true, waits for the target extruder temperature to be reached before proceeding
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetExtruderTargetTemperaturePtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nExtruderID, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetExtruderTargetTemperaturePtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nExtruderID, LibMCDriver_Marlin_double dTemperatureInDegreeCelcius, bool bWaitForTemp);

/**
* Turns on one of the fans and set its speed.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] nFanID - ID of fan.
* @param[in] nSpeed - Fan speed [0..255]. 0=0%!.(MISSING).255=100%!
(MISSING)* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_SetFanSpeedPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_uint32 nFanID, LibMCDriver_Marlin_uint32 nSpeed);

/**
* Sets PID parameters.
Expand Down Expand Up @@ -195,13 +208,13 @@ typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_GetCurrentPo
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_GetTargetPositionPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pX, LibMCDriver_Marlin_double * pY, LibMCDriver_Marlin_double * pZ);

/**
* Returns the current extruder position.
* Returns the target extruder position.
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[out] pE - E Value in mm
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_GetExtruderPositionPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pE);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_GetExtruderTargetPositionPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double * pE);

/**
* Returns the current and the target bed temperature.
Expand Down Expand Up @@ -268,10 +281,11 @@ typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_IsHomedPtr)
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dX - X Value in mm
* @param[in] dY - Y Value in mm
* @param[in] dE - E Value in mm
* @param[in] dSpeed - Movement speed in mm/s
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_MoveToXYPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dX, LibMCDriver_Marlin_double dY, LibMCDriver_Marlin_double dSpeed);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_MoveToXYPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dX, LibMCDriver_Marlin_double dY, LibMCDriver_Marlin_double dE, LibMCDriver_Marlin_double dSpeed);

/**
* Moves to/by a certain position by a fast move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.
Expand All @@ -289,10 +303,11 @@ typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_MoveFastToXY
*
* @param[in] pDriver_Marlin - Driver_Marlin instance.
* @param[in] dZ - Z Value in mm
* @param[in] dE - E Value in mm
* @param[in] dSpeed - Movement speed in mm/s
* @return error code or 0 (success)
*/
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_MoveToZPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dZ, LibMCDriver_Marlin_double dSpeed);
typedef LibMCDriver_MarlinResult (*PLibMCDriver_MarlinDriver_Marlin_MoveToZPtr) (LibMCDriver_Marlin_Driver_Marlin pDriver_Marlin, LibMCDriver_Marlin_double dZ, LibMCDriver_Marlin_double dE, LibMCDriver_Marlin_double dSpeed);

/**
* Moves to/by a certain position by a fast move. Takes the relative/absolute mode into account. Fails if it cannot execute a movement.
Expand Down Expand Up @@ -397,11 +412,12 @@ typedef struct {
PLibMCDriver_MarlinDriver_Marlin_SetAbsolutePositioningPtr m_Driver_Marlin_SetAbsolutePositioning;
PLibMCDriver_MarlinDriver_Marlin_SetHeatedBedTargetTemperaturePtr m_Driver_Marlin_SetHeatedBedTargetTemperature;
PLibMCDriver_MarlinDriver_Marlin_SetExtruderTargetTemperaturePtr m_Driver_Marlin_SetExtruderTargetTemperature;
PLibMCDriver_MarlinDriver_Marlin_SetFanSpeedPtr m_Driver_Marlin_SetFanSpeed;
PLibMCDriver_MarlinDriver_Marlin_SetPidParametersPtr m_Driver_Marlin_SetPidParameters;
PLibMCDriver_MarlinDriver_Marlin_UpdateStatePtr m_Driver_Marlin_UpdateState;
PLibMCDriver_MarlinDriver_Marlin_GetCurrentPositionPtr m_Driver_Marlin_GetCurrentPosition;
PLibMCDriver_MarlinDriver_Marlin_GetTargetPositionPtr m_Driver_Marlin_GetTargetPosition;
PLibMCDriver_MarlinDriver_Marlin_GetExtruderPositionPtr m_Driver_Marlin_GetExtruderPosition;
PLibMCDriver_MarlinDriver_Marlin_GetExtruderTargetPositionPtr m_Driver_Marlin_GetExtruderTargetPosition;
PLibMCDriver_MarlinDriver_Marlin_GetHeatedBedTemperaturePtr m_Driver_Marlin_GetHeatedBedTemperature;
PLibMCDriver_MarlinDriver_Marlin_GetExtruderTemperaturePtr m_Driver_Marlin_GetExtruderTemperature;
PLibMCDriver_MarlinDriver_Marlin_GetPidParametersPtr m_Driver_Marlin_GetPidParameters;
Expand Down
Loading