1 package com.neuronrobotics.sdk.common;
3 import java.util.ArrayList;
6 import javax.management.RuntimeErrorException;
8 import com.neuronrobotics.sdk.bootloader.NRBootLoader;
9 import com.neuronrobotics.sdk.bowlercam.device.BowlerCamDevice;
10 import com.neuronrobotics.sdk.dyio.DyIO;
11 import com.neuronrobotics.sdk.genericdevice.GenericDevice;
12 import com.neuronrobotics.sdk.pid.GenericPIDDevice;
13 import com.neuronrobotics.sdk.ui.ConnectionDialog;
14 import com.neuronrobotics.sdk.util.ThreadUtil;
23 private static final ArrayList<BowlerAbstractDevice>
devices =
new ArrayList<BowlerAbstractDevice>();
26 private static final ArrayList<IDeviceAddedListener>
deviceAddedListener =
new ArrayList<IDeviceAddedListener>();
43 }
catch (Exception e) {
47 throw new RuntimeException(
"This object can not behave as a device");
61 System.out.println(
"Device " + name +
" is already in the manager");
64 if (
DMDevice.class.isInstance(newDevice)) {
68 if(
DMDevice.class.isInstance(sDev)) {
71 System.out.println(
"Wrapped Device " + name +
" is already in the manager");
83 "Device " + name +
" of type " + newDevice.getClass().getSimpleName() +
" is not availible");
85 if (
devices.contains(newDevice)) {
88 int numOfThisDeviceType = 0;
90 for (
int i = 0; i <
devices.size(); i++) {
91 if (newDevice.getClass().isInstance(
devices.get(i))
92 &&
devices.get(i).getScriptingName().contentEquals(name))
93 numOfThisDeviceType++;
95 if (numOfThisDeviceType > 0)
96 name = name + numOfThisDeviceType;
102 if (source == newDevice && source !=
null)
124 if (connection ==
null) {
133 if (!gen.
ping(
true)) {
136 }
catch (Exception e) {
147 throw new RuntimeException(e);
152 String name =
"dyio";
165 String name =
"bootloader";
168 }
else if (gen.
hasNamespace(
"neuronrobotics.bowlercam.*")) {
172 String name =
"bowlercam";
186 setName(
"Connection Dialog displayer thread");
206 if (
devices.contains(newDevice) && newDevice !=
null) {
209 l.onDeviceRemoved(newDevice);
244 if(name.contains(
"*")) {
245 name = name.split(
"\\*")[0];
247 for (
int i = 0; i <
devices.size(); i++) {
248 if (
devices.get(i).getScriptingName().contains(name)) {
257 Object newDev = provider.
call();
261 if(
DMDevice.class.isInstance(dev)) {
262 return ((
DMDevice)dev).getWrapped();
275 if(name.contains(
"*")) {
276 name = name.split(
"\\*")[0];
278 for (
int i = 0; i <
devices.size(); i++) {
279 String devname =
devices.get(i).getScriptingName();
280 if (devname.contains(name)) {
282 if(
DMDevice.class.isInstance(dev)) {
283 return ((
DMDevice)dev).getWrapped();
301 if(name.contains(
"*")) {
302 name = name.split(
"\\*")[0];
307 if (devs.size() == 0)
310 for (String d : devs) {
312 if (name ==
null || d.contentEquals(name)) {
313 for (
int i = 0; i <
devices.size(); i++) {
314 if (
devices.get(i).getScriptingName().contains(d))
329 List<String> choices =
new ArrayList<String>();
330 for (
int i = 0; i <
devices.size(); i++) {
331 choices.add(
devices.get(i).getScriptingName());
345 List<String> choices =
new ArrayList<String>();
346 for (
int i = 0; i <
devices.size(); i++) {
348 choices.add(
devices.get(i).getScriptingName());
349 else if (class1.isInstance(
devices.get(i))) {
350 choices.add(
devices.get(i).getScriptingName());
boolean hasNamespace(String string)
String getScriptingName()
void setConnection(BowlerAbstractConnection connection)
void setScriptingName(String scriptingName)
void addConnectionEventListener(final IDeviceConnectionEventListener l)
BowlerAbstractConnection getConnection()
static void setUseBowlerV4(boolean useBowlerV4)
static boolean wrappable(Object o)
static void addConnection(final Object newDevice, String name)
static final ArrayList< BowlerAbstractDevice > devices
static Object getSpecificDevice(String name)
static void addConnection(BowlerAbstractConnection connection)
static void addConnection()
static void removeDeviceAddedListener(IDeviceAddedListener l)
static Object getSpecificDevice(String name, IDeviceProvider provider)
static void addConnectionBAD(final BowlerAbstractDevice newDevice, String name)
static List< String > listConnectedDevice()
static final ArrayList< IDeviceAddedListener > deviceAddedListener
static void remove(BowlerAbstractDevice newDevice)
static void addDeviceAddedListener(IDeviceAddedListener l)
static Object getSpecificDevice(Class<?> class1, String name)
static List< String > listConnectedDevice(Class<?> class1)
static void warning(String message)
void setConnection(BowlerAbstractConnection connection)
static BowlerAbstractConnection promptConnection()
static void wait(int time)
void onNewDeviceAdded(BowlerAbstractDevice bad)