public class USBScanManager
extends java.lang.Object
USBScanManager is responsible for issuing scans of USB devices. Scanning is
carried out asynchronously. When a scan is requested, any extant scan that is already in
progress is joined; otherwise a new scan is started. Scans are carried out either locally
or remotely, in a manner (largely) transparent to clients.
We also analogously now carry out remote Lynx module discovery.| Modifier and Type | Class and Description |
|---|---|
protected class |
USBScanManager.LynxModuleDiscoveryState |
| Modifier and Type | Field and Description |
|---|---|
protected Context |
context |
protected DeviceManager |
deviceManager |
protected java.util.concurrent.ExecutorService |
executorService |
protected boolean |
isRemoteConfig |
protected java.util.Map<java.lang.String,USBScanManager.LynxModuleDiscoveryState> |
lynxModuleDiscoveryStateMap |
static int |
msWaitDefault |
protected NetworkConnectionHandler |
networkConnectionHandler |
protected ScannedDevices |
remoteScannedDevices |
protected java.lang.Object |
remoteScannedDevicesLock |
protected ThreadPool.Singleton<ScannedDevices> |
scanningSingleton |
protected NextLock |
scanResultsSequence |
static java.lang.String |
TAG |
| Constructor and Description |
|---|
USBScanManager(Context context,
boolean isRemoteConfig) |
| Modifier and Type | Method and Description |
|---|---|
LynxModuleMetaList |
awaitLynxModules(SerialNumber serialNumber) |
ScannedDevices |
awaitScannedDevices() |
DeviceManager |
getDeviceManager() |
java.util.concurrent.ExecutorService |
getExecutorService() |
Supplier<LynxModuleMetaList> |
getLynxModuleMetaListSupplier(SerialNumber serialNumber) |
void |
handleCommandDiscoverLynxModulesResponse(java.lang.String extra) |
void |
handleCommandScanResponse(java.lang.String extra) |
java.lang.String |
packageCommandResponse(LynxModuleMetaList lynxModules) |
java.lang.String |
packageCommandResponse(ScannedDevices scannedDevices) |
ThreadPool.SingletonResult<ScannedDevices> |
startDeviceScanIfNecessary() |
void |
startExecutorService() |
ThreadPool.SingletonResult<LynxModuleMetaList> |
startLynxModuleEnumerationIfNecessary(SerialNumber serialNumber) |
void |
stopExecutorService() |
public static final java.lang.String TAG
public static final int msWaitDefault
protected Context context
protected boolean isRemoteConfig
protected java.util.concurrent.ExecutorService executorService
protected ThreadPool.Singleton<ScannedDevices> scanningSingleton
protected DeviceManager deviceManager
protected NextLock scanResultsSequence
protected final java.lang.Object remoteScannedDevicesLock
protected ScannedDevices remoteScannedDevices
protected NetworkConnectionHandler networkConnectionHandler
protected final java.util.Map<java.lang.String,USBScanManager.LynxModuleDiscoveryState> lynxModuleDiscoveryStateMap
public void startExecutorService()
public void stopExecutorService()
public java.util.concurrent.ExecutorService getExecutorService()
public DeviceManager getDeviceManager()
public Supplier<LynxModuleMetaList> getLynxModuleMetaListSupplier(SerialNumber serialNumber)
public ThreadPool.SingletonResult<LynxModuleMetaList> startLynxModuleEnumerationIfNecessary(SerialNumber serialNumber)
public ThreadPool.SingletonResult<ScannedDevices> startDeviceScanIfNecessary()
public ScannedDevices awaitScannedDevices() throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic LynxModuleMetaList awaitLynxModules(SerialNumber serialNumber) throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic java.lang.String packageCommandResponse(ScannedDevices scannedDevices)
public java.lang.String packageCommandResponse(LynxModuleMetaList lynxModules)
public void handleCommandScanResponse(java.lang.String extra)
throws RobotCoreException
RobotCoreExceptionpublic void handleCommandDiscoverLynxModulesResponse(java.lang.String extra)
throws RobotCoreException
RobotCoreException