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.InterruptedException
public LynxModuleMetaList awaitLynxModules(SerialNumber serialNumber) throws java.lang.InterruptedException
java.lang.InterruptedException
public java.lang.String packageCommandResponse(ScannedDevices scannedDevices)
public java.lang.String packageCommandResponse(LynxModuleMetaList lynxModules)
public void handleCommandScanResponse(java.lang.String extra) throws RobotCoreException
RobotCoreException
public void handleCommandDiscoverLynxModulesResponse(java.lang.String extra) throws RobotCoreException
RobotCoreException