You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.6 KiB
46 lines
1.6 KiB
/*
|
|
* splitflap_wrapper.c
|
|
*
|
|
* Created on: 05.12.2022
|
|
* Author: jonas
|
|
*/
|
|
|
|
#include "splitflap_wrapper.h"
|
|
#include "rs485.h"
|
|
|
|
#define RS_CMD_PREFIX "rs sendcmd SplitFlap "
|
|
#define BUF_SIZE 40
|
|
|
|
|
|
/* moves all split flaps to the zero position
|
|
* After a timeout the initializtion is cancelled and the return value is false
|
|
* If all splitflaps report to be initialized before the timeout, the return value is true */
|
|
bool SplitFlap_Wrapper_MoveAllToZeroPosition(void){
|
|
char cmd[BUF_SIZE] = RS_CMD_PREFIX;
|
|
McuUtility_strcat(cmd, sizeof cmd, "initAll");
|
|
RS485_ParseCommand(cmd);
|
|
}
|
|
|
|
/* display a sentence on the splitflap combination
|
|
* splitflaps must be initialized to be able to display something!
|
|
* returns true when all movements finished */
|
|
bool SplitFlap_Wrapper_Display(char sentence[]){
|
|
char cmd[BUF_SIZE] = RS_CMD_PREFIX;
|
|
McuUtility_strcat(cmd, sizeof cmd, "Display ");
|
|
McuUtility_strcat(cmd, sizeof cmd, sentence);
|
|
RS485_ParseCommand(cmd);
|
|
}
|
|
|
|
/* sets the hardware identifier <hwId> of a splitflap with <id> in the combination
|
|
* returns true when successful, false when not (e.g. split flap with given id not available) */
|
|
bool SplitFlap_Wrapper_SetHardwareIdentifier(uint8_t id, uint8_t hwId){
|
|
char cmd[BUF_SIZE] = RS_CMD_PREFIX;
|
|
char setupId_str[4] = {0}; char hardwareId_str[4] = {0};
|
|
McuUtility_Num8uToStr(setupId_str, sizeof setupId_str, id);
|
|
McuUtility_Num8uToStr(hardwareId_str, sizeof hardwareId_str, hwId);
|
|
McuUtility_strcat(cmd, sizeof cmd, "setId ");
|
|
McuUtility_strcat(cmd, sizeof cmd, setupId_str);
|
|
McuUtility_strcat(cmd, sizeof cmd, " ");
|
|
McuUtility_strcat(cmd, sizeof cmd, hardwareId_str);
|
|
RS485_ParseCommand(cmd);
|
|
}
|
|
|