/*
 * splitflap_wrapper.c
 *
 *  Created on: 05.12.2022
 *      Author: jonas
 */

#include <stdint.h>
#include <stdbool.h>
#include "splitflap_wrapper.h"
#include "McuUtility.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); TODO
	return true;
}

/* 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); TODO
	return true;
}

/* 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); TODO
	return true;
}
