OpenICE Community Support Forum

Welcome to the OpenICE community support forum. Use this forum for submitting bugs, asking for help, and solving problems you are having with OpenICE software. For ideas, general questions, and conversation please use the discussion forum.
+1

Building OpenICE from Source failed

K. Ebeling 2 years ago • updated by Jeff Peterson 2 years ago 3
Hi,
I have cloned the repo of mdpnp with git. The java jdk I use is 1.8.0_40 (Oracle Corporation 25.40-b25) and gradle is version 2.3. I work on Mac OS X 10.10.4 x86_64. If I try to build OpenICE with command "gradle build" from root directory of mdpnp following error is thrown:
FAILURE: Build failed with an exception.

* Where:
Build file '/Users/kieb/Documents/workspace_openICE/mdpnp/interop-lab/demo-apps/build.gradle' line: 16

* What went wrong:
A problem occurred evaluating project ':interop-lab:demo-apps'.
> Could not resolve all dependencies for configuration 'classpath'.
> Could not resolve org.bitbucket.shemnon.javafxplugin:gradle-javafx-plugin:8.1.2-SNAPSHOT.
Required by:
unspecified:unspecified:unspecified
> Could not HEAD 'http://repository-javafx-gradle-plugin.forge.cloudbees.com/snapshot/org/bitbucket/shemnon/javafxplugin/gradle-javafx-plugin/8.1.2-SNAPSHOT/gradle-javafx-plugin-8.1.2-20141008.214348-1.pom'.
> org.apache.http.client.ClientProtocolException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

I also have tried to import OpenICE as Gradle-project into Eclipse Luna (4.4.2) with same result. I switched to openICE-tag 0.6.3 - same result. What is wrong?
0
Under review

Phillips MP5 intellivue RS232 to serial cape to bbb

Tyler 2 years ago in OpenICE • updated by Alistair MacDonald 2 years ago 10
Hello,

we would like to get OpenICE working for the serial port of a Phillips MP5, but are having some trouble. Currently, the set up is

MP5 RJ45 port > RJ45 to RS-232 adapter > serial cape > bbb > router > computer

The bbb is running Rev C from this page https://www.openice.info/docs/4_device-adapter-setup.html
The computer is running OpenICE 0.6.3.
OpenICE shows "Connecting (initializing RS-232 to UDP adapter)" and the monitor displays "Unsupported LAN" when plugged into the LAN port. We cannot use a LAN to the monitor in our application, but it would be reassuring to know that the monitor can send data out of the LAN port.

The major questions right now are:

- It looks like the sw revision on the monitor itself is E.01.26, is this too old to be compatible with OpenICE?

- The bbb has the bone-debian-7.8-lxde-4gb-armhf-2015-03-01-4gb-openice-0.6.2.img file loaded and I can see the OpenICE folders from SSH, but is this 0.6.2 img file an older version?

- The Phillips documentation mentions a BOOTP server, but I haven't seen it mentioned in any other documentation, is necessary to get the monitor connected over LAN?

- What are some good troubleshooting techniques to check if the separate components and software are functioning properly? For example communicating with the monitor via the bbb over ssh to show that connection is working.

Thank you!
Tyler
OpenICE device-adapter
0
Under review

NodeJs: connecting with my own code to OpenIce server.

Alejandro Figar 2 years ago • updated by Jeff Plourde 2 years ago 1
I've been learning about node js with your demo. So far I've been able to build everything locally with grunt on a Mac OS.
I've been able to connect with your socket.io server at openice site with my own nodejs primitive code. Could you provide more information about your server? Is there any protocol for receiving data? Which messages should I send to your server or listen to in order to start getting data from openice?

Thanks,
OpenICE demo-apps
0

Regarding node.js based real-time web based monitoring

Tim 2 years ago in OpenICE • updated by Jeff Peterson 2 years ago 4
Hello Jeff,
I've been learning about node.js with your demo. So far we've been able to build everything locally with grunt on a Mac OS and windows OS. I've been able to connect with your socket.io server at openice site with our own node.js developed code.
  • We would really appreciate if you could please provide us more information about your server?
  • Is there any protocol for receiving data?
  • Which messages should I send to your server or listen to in order to start getting data from openice platform?
Please do reply, we would appreciate your help and guidance in this matter.
Thanks,
Tim Rajah
NIH
0
Answered

DDS Time_t origin, range?

Bradford Needham 2 years ago in DDS • updated by Jeff Plourde 2 years ago 3
The RTI DDS documentation for Time_t simply states that it represents "a moment in time". It doesn't document an origin or range. What is the origin and range for this field? I ask because I want to know when it will rollover, and how to convert to/from Linux seconds-from-the-epoch.

The constructor takes an int seconds, and Java defines the default int to be signed 32 bits. From a quick calculation, that number will overflow in about 68 years from the origin.

Any idea what the origin for DDS Time_t is?

Thanks,
Brad
0
Under review

DeviceConnectivity for late joiners?

Bradford Needham 2 years ago • updated by Jeff Plourde 2 years ago 6
I'm (still) writing an ICE app that detects when devices turn on and off.

So far, the app Subscribes to HeartBeat and DeviceIdentity.

We've found this doesn't seem to be sufficient to detect whether the device is on or off.

Now I've added a subscription to DeviceConnectivity, and am planning to consider a device "on" only if the app has received a DeviceIdentity (to know about the device), and DeviceConnectivity (to know when the device is in the Connected state).

It seems that DeviceIdentity is emitted by a device adapter only when its connection state changes. Given that, it seems that a late joiner app cannot know the DeviceConnectivity state (without provoking the Device Adapter in a way I don't yet know).

This leads me to ask two questions:
1) is there a simple method that I've missed, for detecting whether a given Medical Device is on or off?
2) (failing that) how should a late joiner app find whether the Devices it receives HeartBeat data from are on or off (connected or not connected)?

Thanks,
Brad
OpenICE demo-apps
0
Answered

What does an EventLoop do?

Bradford Needham 2 years ago • updated by Jeff Peterson 2 years ago 3
As I've been reading DeviceListModelImp.java and related classes, in an attempt to duplicate the OpenICE Supervisor's behavior around detecting devices going on and off.

I've come across the class EventLoop, that I assume has something to do with managing Topic events. The code suggests it has to do with managing the running of multiple snippets of DDS-related code.

What is EventLoop's purpose? Would its purpose likely become clear if I learned more about DDS?

Thanks,
Brad
DDS OpenICE
0

MQTT and Node.js

taimoore rajah 2 years ago in OpenICE • updated by Jeff Peterson 2 years ago 2
Hello Jeff,
I have been reading the node.js code on Github. Could you please explain to us how to use the publishing structure for plotting data on the web browser by implementing node.js? It will really help us a lot.
Cheers
Tim
0

Beaglebone Element14 error message when starting OpenICE 0.6.2

Alistair MacDonald 2 years ago in OpenICE • updated by Jeff Peterson 2 years ago 4
Hello. I've been trying to follow the directions for the device-adaptor but running into some glitches.
#1) I'm using the Beaglebone Element14 Black revision C - following the flashing directions for disk image C, it installs version 0.6.2. I noticed that the serial RS232 port is ttyO2 instead of ttyO1, but before I even get to that point, I try to start the software and get this message: (note, the adaptor setup directions say to type OpenICE-0.6.3/bin/OpenICE but the only directory is OpenICE 0.6.2). Here's the copied error message - is there something I'm missing? Sorry, I'm not a developer.

debian@beaglebone:~$ OpenICE-0.6.2/bin/OpenICE

Graphics Device initialization failed for : es2, sw

Error initializing QuantumRenderer: no suitable pipeline found

java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found

at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)

at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:227)

at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:173)

at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)

at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)

at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)

at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)

at com.sun.javafx.application.LauncherImpl$$Lambda$2/4940284.run(Unknown Source)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found

at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)

at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)

... 1 more

Exception in thread "main" java.lang.RuntimeException: No toolkit found

at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:185)

at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)

at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)

at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)

at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)

at com.sun.javafx.application.LauncherImpl$$Lambda$2/4940284.run(Unknown Source)

at java.lang.Thread.run(Thread.java:745)

debian@beaglebone:~$

0
Answered

How to change the Device-Adapter to use a static IP address...

Jeff Peterson 2 years ago • updated 2 years ago 1
Common question:

I've followed the tutorial on OpenICE.info to image a bealgebone with the provided disk image. I started to set it up but found DHCP is enabled by default. I need to set a static IP. Can you give us a quick "how to".

device-adapter
Answer
Jeff Peterson 2 years ago
The beaglebone is a standard linux computer running Debian. The default user is “debian”; the default password is “debian”. You can access the terminal in a variety of ways; the easiest is plugging in a USB keyboard and a monitor (there’s a mini-HDMI port on the beaglebone). Alternatively if you feel comfortable with SSH, you can access the terminal at debian@192.168.13.2 through the Micro-USB port on the beaglebone. USB networking is enabled by default and separate from Ethernet networking so you can use one to change the other.

The official documentation for Debian networking configuration is here: https://wiki.debian.org/NetworkConfiguration#Configuring_the_interface_manually

The network setup interfaces configuration file is located at "/etc/network/interfaces”.

With your preferred text editor, change the block in the file /etc/network/interfaces from:
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
to:
auto eth0
iface eth0 inet static
address 192.0.2.7
netmask 255.255.255.0
gateway 192.0.2.254
Obviously use your preferred IP addresses. After you’ve saved your changes to the config file, restart the beaglebone with `sudo reboot`.
0
Under review

Good DDS Tutorial?

Bradford Needham 2 years ago in DDS • updated by Jeff Peterson 2 years ago 1
Do you have a recommended/favorite DDS introduction/tutorial? I'm finding that having a grounding in DDS would help in my understanding of how to use OpenICE.

Thanks,
Brad
DDS
0
Answered

Where is the IDL and how do I use it to generate code?

Jeff Peterson 2 years ago • updated 2 years ago 1
A common question:

Where is OpenICE's IDL and how do you run the tool to generate the C interfaces for the IDLs?
DDS OpenICE
Answer
Jeff Peterson 2 years ago
The IDL is found in our git repo - the IDL is found under /master/data-types/x73-idl/src/main/idl/ice/ice.idl.

To generate code for the IDL, we use rtiddsgen. The code generator is documented here.

At the command line, enter:
rtiddsgen -language C -inputIdl /path/to/repo/data-types/x73-idl/src/main/idl/ice/ice.idl
0
Under review

Reading a DeviceIdentity that has a blank model field

Bradford Needham 2 years ago in OpenICE • updated by Jeff Plourde 2 years ago 6
I'm writing an OpenICE app designed to report the on/off state of various Devices. So far I've successfully modified Hello OpenICE code to Subscribe to HeartBeat and DeviceIdentity Topics. The HeartBeat data seems to arrive fine, but the DeviceIdentity data has problems.

In the received DeviceIdentity, the model name is blank, rather than being something like "Pulse Ox (simulated)". I've seen some symptoms that suggest that the model string gets filled in later, but I'm not certain of that.

I wanted to double-check with you that I'm using the correct pattern to read the DeviceIdentity data: I substituted class names in Hello OpenICE code based on some guesswork, so something may be incorrect. Based on the symptom I'm wondering whether I'm not properly telling DDS that I want to read the data contents. I haven't found an example of reading DeviceIdentity in the mdpnp git.

Here is the relevant code (adapted from HelloICE.java) - I apologize for the formatting. Note that on reception of a Pulse Ox (simulated) DeviceIdentity, the model field is blank.

Thanks for your help,
Brad
---------------------------------

public void on_data_available(DataReader reader) {
ice.DeviceIdentitySeq deviceIdentitySeq = new ice.DeviceIdentitySeq();
SampleInfoSeq infoSeq = new SampleInfoSeq();
DeviceIdentityDataReader diReader = (DeviceIdentityDataReader) reader;
try {
diReader.read(deviceIdentitySeq, infoSeq, ResourceLimitsQosPolicy.LENGTH_UNLIMITED, SampleStateKind.NOT_READ_SAMPLE_STATE, ViewStateKind.ANY_VIEW_STATE, InstanceStateKind.ALIVE_INSTANCE_STATE);
/*
* Bug: the model number info seems blank. Example output:
* 2015-09-24 13:50:11 DEBUG IceQos:50 - Loaded default ice_library QoS
* 2015-09-24 13:51:30 ERROR DeviceIdentityListener:75 - Empty model in received DeviceIdentity
* 2015-09-24 13:51:30 INFO HelloIce:75 - ON: manuf: , model: , serial:
* 2015-09-24 13:51:47 INFO HelloIce:75 - OFF: manuf: , model: , serial:
*/
Date now = new Date();
for(int i = 0; i < infoSeq.size(); i++) {
SampleInfo si = (SampleInfo) infoSeq.get(i);
ice.DeviceIdentity data = (ice.DeviceIdentity) deviceIdentitySeq.get(i);
if(si.valid_data) {
if (data.model.length() == 0) {
logger.error("Empty model in received DeviceIdentity");
}

tracker.sawIdentity(data, now);
}

}
} catch (RETCODE_NO_DATA noData) {
// No Data was available to the read call
} finally {
// the objects provided by "read" are owned by the reader and we must return them
// so the reader can control their lifecycle
diReader.return_loan(deviceIdentitySeq, infoSeq);
}

}



OpenICE
0
Under review

How to find Device model number from unique device ID

Bradford Needham 2 years ago in OpenICE • updated by Jeff Plourde 2 years ago 3
I'm writing an OpenICE application to keep track of what Devices are running, and note (on a UI) when they come and go.

So far, I've successfully written code to Subscribe to and Read HeartBeatTopic data, and filtered out the Supervisor data vs. Devices' data. Now that I have unique device IDs from the HeartBeat, I want to ask the model number (and more if I can) of the Device that sent the HeartBeat.

How do I do that?

Thanks,
Brad
0
Answered

How to build OpenICE source on BBB

Hyungi Kim 2 years ago in OpenICE • updated by zhangtan 2 years ago 22
Hi, guys!

I was installed Revision C Disk Image and gradle-2.4 and sync to a NTP clock on BBB.
but, jdk 8u33 in Rev.C disk image is not build OpenICE source on BBB. (./gradlew)
The reason is 8u33 is not supported JavaFx. so I reinstalled jdk 8u6.
but OpenICE source is not build on BBB....
I want to build OpenICE source on BBB.
help me how to build OpenICE source on BBB or build reference.

p.s - Your device adapter(BBB) have a rs-232 serial port. my BBB don't have a serial port. T.T


thanks
Hyungi
OpenICE device-adapter