#pragma once

#include <cstdint>
#include <string>

#include "UARTConfig.hpp"
#include "USART1.hpp"
#include "RTClock.hpp"
#include "FIFORecordTemplates.hpp"

namespace UARTBase
{
	enum devices
	{
		gps1       = 0,
		ctd1,
		pumpMotor,
		msc1,
		ocr1,
		optode1,
		flbb1,
		numDevices
	};
	
	void initUARTs();
//	bool startXfer(UARTConfigStruct* uartConfig, uint8_t txBuff[], uint32_t txBuffSize);
	bool startXfer(devices deviceNum, uint8_t txBuff[], uint32_t txBuffSize);
	bool isXferDone(devices deviceNum);
	const std::string getRXBuffer(devices deviceNum);
	uint16_t getQCount_T(devices deviceNum);
	void deQ_T(devices deviceNum, usart1::fifoRecord &deviceRecord);
};


