22 #ifndef PLUGINS_USBPRO_WIDGETDETECTORTHREAD_H_ 23 #define PLUGINS_USBPRO_WIDGETDETECTORTHREAD_H_ 32 #include "ola/io/SelectServer.h" 33 #include "ola/thread/Thread.h" 34 #include "plugins/usbpro/BaseUsbProWidget.h" 35 #include "plugins/usbpro/RobeWidget.h" 36 #include "plugins/usbpro/RobeWidgetDetector.h" 37 #include "plugins/usbpro/UsbProWidgetDetector.h" 38 #include "plugins/usbpro/SerialWidgetInterface.h" 39 #include "plugins/usbpro/WidgetDetectorInterface.h" 64 virtual void NewWidget(
class RobeWidget *widget,
78 unsigned int usb_pro_timeout = 200,
79 unsigned int robe_timeout = 200);
83 void SetDeviceDirectory(
const std::string &directory);
85 void SetDevicePrefixes(
const std::vector<std::string> &prefixes);
87 void SetIgnoredDevices(
const std::vector<std::string> &devices);
101 void WaitUntilRunning();
104 virtual bool RunScan();
105 void PerformDiscovery(
const std::string &path,
111 std::vector<WidgetDetectorInterface*> m_widget_detectors;
112 std::string m_directory;
113 std::vector<std::string> m_prefixes;
114 std::set<std::string> m_ignored_devices;
117 unsigned int m_usb_pro_timeout;
118 unsigned int m_robe_timeout;
123 std::set<std::string> m_active_paths;
125 typedef std::pair<std::string, int> DescriptorInfo;
127 typedef std::map<ola::io::ConnectedDescriptor*, DescriptorInfo>
130 ActiveDescriptors m_active_descriptors;
143 template<
typename W
idgetType,
typename InfoType>
144 void DispatchWidget(WidgetType *widget,
const InfoType *information);
147 template<
typename W
idgetType,
typename InfoType>
148 void SignalNewWidget(WidgetType *widget,
const InfoType *information);
150 void MarkAsRunning();
152 static const unsigned int SCAN_INTERVAL_MS = 20000;
159 static const uint16_t DMX_KING_DMX512_ID = 0;
160 static const uint16_t DMX_KING_ULTRA_ID = 1;
161 static const uint16_t DMX_KING_ULTRA_PRO_ID = 2;
162 static const uint16_t DMX_KING_ULTRA_MICRO_ID = 3;
163 static const uint16_t DMX_KING_ULTRA_RDM_ID = 4;
166 static const uint16_t JESE_DMX_TRI_MK1_ID = 1;
167 static const uint16_t JESE_RDM_TRI_MK1_ID = 2;
168 static const uint16_t JESE_RDM_TRI_MK2_ID = 3;
169 static const uint16_t JESE_RDM_TXI_MK2_ID = 4;
171 static const uint16_t JESE_DMX_TRI_MK1_SE_ID = 5;
174 static const uint16_t GODDARD_DMXTER4_ID = 0x444d;
175 static const uint16_t GODDARD_MINI_DMXTER4_ID = 0x4d49;
176 static const uint16_t GODDARD_DMXTER4A_ID = 0x3441;
179 static const uint16_t OPEN_LIGHTING_PACKETHEADS_ID = 2;
180 static const uint16_t OPEN_LIGHTING_RGB_MIXER_ID = 1;
183 static const uint16_t DMX_KING_ESTA_ID = 0x6a6b;
184 static const uint16_t GODDARD_ESTA_ID = 0x4744;
185 static const uint16_t JESE_ESTA_ID = 0x6864;
190 #endif // PLUGINS_USBPRO_WIDGETDETECTORTHREAD_H_ A BidirectionalFileDescriptor that also generates notifications when closed.
Definition: Descriptor.h:282
The interface for the SelectServer.
Definition: SelectServerInterface.h:42
A single threaded I/O event management system.
Definition: SelectServer.h:63
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44