Skip to content
Snippets Groups Projects
Select Git revision
  • 8d68cee028c7f2912aa5998cfda981f5a3ac3d48
  • master default
  • main protected
3 results

multiplexers.h

Blame
  • multiplexers.h 662 B
    #pragma once
    
    #include <eismultiplexer.h>
    #include <vector>
    #include <mutex>
    #include <memory>
    
    #include "log.h"
    
    class Multiplexers
    {
    private:
    
    	static constexpr int CH_PER_DEVICE = 7;
    
    	struct Device
    	{
    		eismultiplexer device;
    		std::unique_ptr<std::mutex> mutex;
    	};
    
    	std::vector<Device> devices;
    
    	static channel_t chNumberToCh(int ch);
    
    	static std::string chToString(channel_t ch);
    
    public:
    	Multiplexers(const std::vector<uint16_t> serials);
    	bool connectAll();
    	bool disconnectAll();
    	bool setCh(int ch, bool connected);
    	bool setChExlusive(int ch, bool connected);
    	size_t chCount();
    	std::vector<bool> getConnected();
    	bool log(Log::Level level);
    };