Comments (1)
Hello Alessandro,
The serial library has been updated to support the OSX emulator. A
couple of notes:
- The javax.comm implementation in Kura does not support dynamic port
names. We hope to have this in the future, but are waiting on IP
approval from Eclipse. So, this means the port names are hard coded in
the JNI. Port names likes "/dev/ttyUSB0, /dev/ttyS0, /dev/tty.usbserial"
should work without issue. However, if you have a name such as
"/dev/tty.usbserial-FTWDSO8Z" you will need to link to a known port:
ln /dev/tty.usbserial-FTWDSO8Z /dev/ttyS0
Then use port name "/dev/ttyS0".
- There is an outstanding issue in Eclipse regarding the red
"Terminate" button (read here:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016). In the OSX
emulator, if you are using a serial port and use the red "Terminate"
button, this may cause the port to remain locked and can cause system
crashes. To avoid this, I would first stop the OSGI container in the
console with 'stop 0', then terminate the JVM.
Let me know if you have problems or have questions.
Thanks,
--Dave
On 6/16/14, 7:49 AM, Alessandro Da Rugna wrote:
I have some troubles instantiating a serial connection to a modbus
device using the emulator. The hardware is a Serial-to-USB FTDI cable
with a modbus device attached.
This works on the raspberry (I see the FTDI cable as /dev/ttyUSB0) and
the modbus data connection is fine.However if I try to use the same FTDI cable on my development machine
things don't work.
In my "Run configuration" I specified the VM argument:
-Dkura.ext.dir=/Users/ale/dev/tmp/ to a directory containing
javax.comm.rxtx.properties file declaring the serial port
(/dev/tty.usbserial-FTWDSO8Z).
When I try to access the port Kura says it doesn't exist:|16:00:55,119 [Component Resolve Thread (Bundle 47)] WARN ModbusProtocolException:236 - Could not load Exception Messages Bundle for Locale en_US
org.eclipse.kura.protocol.modbus.ModbusProtocolException: Generic Error - CONNECTION_FAILURE: {1} {2} {3} {4} {5} null
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice$SerialCommunicate.(ModbusProtocolDevice.java:425)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice.configureConnection(ModbusProtocolDevice.java:263)
at my.bundle.serial.AbstractModbusSerialReader.(AbstractModbusSerialReader.java:63)
at my.bundle.serial.Sdm630SerialReader.(Sdm630SerialReader.java:39)
at my.bundle.serial.SerialReaderFactory.createSerialReader(SerialReaderFactory.java:61)
at my.bundle.Dispatcher.doUpdate(Dispatcher.java:210)
at my.bundle.Dispatcher.activate(Dispatcher.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:386)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:225)
at org.eclipse.equinox.internal.ds.InstanceProcess.disposeInstances(InstanceProcess.java:356)
at org.eclipse.equinox.internal.ds.InstanceProcess.disposeInstances(InstanceProcess.java:306)
at org.eclipse.equinox.internal.ds.Resolver.disposeComponentConfigs(Resolver.java:717)
at org.eclipse.equinox.internal.ds.Resolver.disableComponents(Resolver.java:693)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:359)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:303)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:91)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.io.IOException: javax.comm.NoSuchPortException
at org.eclipse.kura.core.comm.CommConnectionFactory.createConnection(CommConnectionFactory.java:62)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice$SerialCommunicate.(ModbusProtocolDevice.java:423)
... 45 more
Caused by: javax.comm.NoSuchPortException
at javax.comm.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:106)
at org.eclipse.kura.core.comm.CommConnectionImpl.(CommConnectionImpl.java:85)
at org.eclipse.kura.core.comm.CommConnectionFactory.createConnection(CommConnectionFactory.java:59)
... 46 more
|Manually adding the port causes a different error. In Emulator project
MANIFEST.MF I added to /Import-Package/ section the following:
javax.microedition.io, javax.comm;version="1.2.0"
and in Emulator.java I added the following line at the end of
|activate()| method:
|CommPortIdentifier.addPortName("/dev/tty.usbserial-FTWDSO8Z",
CommPortIdentifier.PORT_SERIAL, null);||javax.comm.UnsupportedCommOperationException
at org.eclipse.soda.dk.comm.NSSerialPort.setSerialPortParams(NSSerialPort.java:1288)
at org.eclipse.kura.core.comm.CommConnectionImpl.(CommConnectionImpl.java:92)
at org.eclipse.kura.core.comm.CommConnectionFactory.createConnection(CommConnectionFactory.java:59)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice$SerialCommunicate.(ModbusProtocolDevice.java:423)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice.configureConnection(ModbusProtocolDevice.java:263)
at my.bundle.serial.AbstractModbusSerialReader.(AbstractModbusSerialReader.java:63)
at my.bundle.serial.Sdm630SerialReader.(Sdm630SerialReader.java:39)
at my.bundle.serial.SerialReaderFactory.createSerialReader(SerialReaderFactory.java:61)
at my.bundle.Dispatcher.doUpdate(Dispatcher.java:210)
at my.bundle.Dispatcher.activate(Dispatcher.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:363)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:303)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:91)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
|Trying to use the port gives
|org.eclipse.kura.protocol.modbus.ModbusProtocolException: Generic Error - CONNECTION_FAILURE: {1} {2} {3} {4} {5} null
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice$SerialCommunicate.(ModbusProtocolDevice.java:436)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice.configureConnection(ModbusProtocolDevice.java:263)
at my.bundle.serial.AbstractModbusSerialReader.(AbstractModbusSerialReader.java:63)
at my.bundle.serial.Sdm630SerialReader.(Sdm630SerialReader.java:39)
at my.bundle.serial.SerialReaderFactory.createSerialReader(SerialReaderFactory.java:61)
at my.bundle.Dispatcher.doUpdate(Dispatcher.java:210)
at my.bundle.Dispatcher.activate(Dispatcher.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:536)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:213)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:363)
at org.eclipse.equinox.internal.ds.SCRManager.processConfigurationEvent(SCRManager.java:303)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:91)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.lang.NullPointerException
at org.eclipse.soda.dk.comm.NSSerialPort.getInputStream(NSSerialPort.java:604)
at org.eclipse.kura.core.comm.CommConnectionImpl.openInputStream(CommConnectionImpl.java:115)
at org.eclipse.kura.protocol.modbus.ModbusProtocolDevice$SerialCommunicate.(ModbusProtocolDevice.java:433)
... 47 more
|My Java:
$> java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)My Eclipse:
$> file Eclipse.app/Contents/MacOS/eclipse
Eclipse.app/Contents/MacOS/eclipse: Mach-O 64-bit executable x86_64My machine (OSX 10.9.3):
$> uname -a
Darwin Alessandros-MacBook-Pro.local 13.2.0 Darwin Kernel Version
13.2.0: Thu Apr 17 23:03:13 PDT 2014;
root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64Am I missing something? What else can I do to help resolve the issue?
Thank you.
—
Reply to this email directly or view it on GitHub
#10.
from kura.
Related Issues (20)
- Eclipse Kura can't access additional UARTs in Raspberry Pi 4 HOT 6
- ERR_INVALID_HTTP_RESPONSE HOT 6
- Expired certificate for Eclipse Marketplace (ssl-eclipse-marketplace) HOT 1
- Unable to install packages from Eclipse Marketplace
- Question: Eclipse Kura Component is now listed as deprecated ? HOT 4
- Kura Configuration: device.custom-name & Device Custom-Name wrongly saved via Kapua Configuration HOT 9
- Hosted p2 repo containing Kura's target definition HOT 2
- Question: What is the best way to update a device running Kura maintaining components and configurations? HOT 2
- Free subscription via CloudConnectionManager HOT 2
- OSGi Metatype annotations missing from the target definition HOT 2
- Raspberry Pi Installation Documentation Error - Kura package name(s) changed? HOT 1
- install modbus package from eclipse market failed HOT 1
- installed modbus driver successfully but cannot select the modbus option when create a new driver HOT 2
- In kura 5.3.1 I have duplicate keystores HOT 10
- Bump Bouncy Castle to 1.74 HOT 2
- how config kura project in eclipse in order to run or debug HOT 3
- Ability to add / remove single channels from an asset programmatically HOT 5
- Custom cloud connector for AMQP / RabbitMQ HOT 5
- Kura Build 5.4.0 RELEASE build fails with JAVA 17
- Cannot access Web UI on VPS HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kura.