/*
 * Slave_Monitoring.h
 *
 *  Created on: Jun 15, 2022
 *      Author: max
 */

#ifndef INC_SLAVE_MONITORING_H_
#define INC_SLAVE_MONITORING_H_

#include "AMS_Errorcodes.h"
#include "Error_Check.h"
#include "main.h"

#include "stm32g441xx.h"

#define NUMBEROFSLAVES 7
#define NUMBEROFCELLS 10
#define NUMBEROFTEMPS 32

#define SLAVETIMEOUT 500

typedef struct {

  uint16_t slaveID;
  uint16_t cellVoltages[NUMBEROFCELLS];
  uint16_t cellTemps[NUMBEROFTEMPS];
  uint32_t timestamp;
  uint8_t error;
  uint8_t timeout;

} SlaveHandler;

extern SlaveHandler slaves[NUMBEROFSLAVES];

void initSlaves();
uint8_t checkSlaveTimeout();

#endif /* INC_SLAVE_MONITORING_H_ */