87 int &serverTransactionID);
94 static std::string getAlpacaDeviceType(uint32_t interface);
103 void routeRequest(
int deviceNumber,
const std::string &deviceType,
104 const std::string &method,
106 int clientTransactionID,
int serverTransactionID);
109 void handleManagementRequest(
const std::string &endpoint,
112 int clientTransactionID,
int serverTransactionID);
115 using BridgeKey = std::pair<std::string, int>;
118 std::map<std::string, INDI::BaseDevice> m_Devices;
119 std::map<BridgeKey, std::unique_ptr<IDeviceBridge>> m_Bridges;
120 std::map<std::string, BridgeKey> m_DeviceNumberMap;
123 std::shared_ptr<AlpacaClient> m_Client;
void addDevice(INDI::BaseDevice device)
void handleAlpacaRequest(const httplib::Request &req, httplib::Response &res)
std::vector< AlpacaDeviceInfo > getDeviceList()
void handleSetupRequest(const httplib::Request &req, httplib::Response &res)
static void parseFormUrlEncodedBody(const std::string &body, std::map< std::string, std::string > ¶ms)
void removeDevice(INDI::BaseDevice device)
void sendNewSwitch(const INDI::PropertySwitch &switchProperty)
bool extractTransactionIDs(const httplib::Request &req, httplib::Response &res, int &clientTransactionID, int &serverTransactionID)
static DeviceManager * getInstance()
void setAlpacaClient(const std::shared_ptr< AlpacaClient > &client)
void updateDeviceProperty(INDI::Property property)
void sendNewNumber(const INDI::PropertyNumber &numberProperty)
Class to provide basic INDI device functionality.
Provides generic container for INDI properties.