Duet FAQs
[Deleted User]
Posts: 0
I am the product manager on Duet and have been "lurking" the forums for quite some time. As someone suggested on another thread, we haven't been able to join in or respond until Duet patents had been filed and the product was announced. I'm putting together a FAQ list, so let's use this forum to get all of your questions on the table. Here's one question that I've already seen:
1) How will Java affect execution speed and memory usage? J2ME was designed specifically for embedded devices and has been highly optimized by Sun. The java code will execute faster than NetLinx code and will use less memory. Benchmarks are still preliminary, but we expect around an order of magnitude improvement.
1) How will Java affect execution speed and memory usage? J2ME was designed specifically for embedded devices and has been highly optimized by Sun. The java code will execute faster than NetLinx code and will use less memory. Benchmarks are still preliminary, but we expect around an order of magnitude improvement.
0
Comments
Answer: Due to the memory and flash requirements of the JVM and other components, Duet will only be available on the NI-700, NI-2000, NI-3000, NI-4000 and the NXC-ME260/64. The ME260/64 is an ME260 with 64MBytes of RAM, and started shipping in August. You will be able to download Duet as a master firmware upgrade for these platforms in December 2004.
A) be parallel Master firmware development for non-DUET Masters?
be an upgrade path for exisiting systems besides installing a new Master at full cost?
Thanks
Ian
?Will having java allow for any sort of web browser to be incorporated in the panel??
This was my first tooth too, but I guess you cane use the large java library to implement something like a browser (get info from web, parsing then display in text var buttons) plus drive crazy your imagination.
I hard at CEDA stories like DMS keypads to work faster with java. Was tested by AMX.
For example, we have concepts like PUSH, TO, etc, for device I/R. We have event handlers. Event handlers (depending on type) have PUSH, RELEASE, HOLD (for buttons), STRING, COMMAND, ONLINE, OFFLINE, ERROR (for data events), etc. Java has no notion of an event handler.
Given the language does have an object interface, I'm sort of guessing that you'll have some sort of object for each device, and you can define subroutines within that object to handle that sort of stuff. Perhaps that, or perhaps have some sort of declaration that executes a subroutine on a particular event.
I'd like to see the FAQ clearly describe how the current NetLinx-specific language elements translate into JAVA, including things like event handling, device declarations, etc.
Also, I too am curious if AMX has some sort of upgrade plan planned to upgrade existing ME-260's to the newer ME-260/64's without buying a complete new master.
"The ME260/64 is an ME260 with 64MBytes of RAM"
I see the SD-RAM has been increased from 16MB to 64MB. Is there any way to upgrade existing ME260?
It doesn't sound it. RAM != Compact Flash. One is essentially the "disk", the other is what is randomly accessed and changed (main memory).
Currently, the ME260 has 16MB of RAM (last I checked, anyway). At least that's how it looked to me when booting a ME-260 with a minimal program.
1) Will having Java allow for any sort of web browser to be incorporated in the panel?
Duet only implements Java in the NetLinx master firmware - it does not address Java in the touch panel firmware. As the rollout completes on Duet master firmware, we will begin looking at other uses for Java technology.
2) With the Duet master firmware not being compatible across the existing NetLinx product line, will there be parallel master firmware development for non-Duet masters?
NetLinx master firmware will be maintained in parallel with Duet master firmware.
3) Will there be an upgrade path for existing systems besides installing a new Master at full cost?
There is a PCB-level difference between the ME260 and ME260/64, so they cannot be upgraded.
4) I heard at Cedia stories like DMS keypads to work faster with Java.
The DMS and ViewStat NetLinx modules have been re-written as native Duet device modules. When the devices are plugged in, they show up in the online tree and the Duet module is automatically loaded for you. And yes, the modules do execute faster and use less memory.
1) I'm sort of curious how the object-oriented Java interface will work with "language" elements of NetLinx.
This topic is a whole white paper in itself (which we are working on), but here's the basics: Duet provides multiple APIs to implement Java interfaces to the devices (DVD, CD, HVAC, etc.), ports (serial, IR, Relay, etc), NetLinx language elements (PUSH, PULSE, SEND_COMMAND, etc.) and a Standard NetLinx API (aka SNAPI), which provides the communication mechanism between NetLinx and Java code. The device APIs have been further broken down into components to provide a migration path for composite devices which might have pieces of multiple devices (for example a DSS with built-in TiVo and DVD player/recorder). All of the APIs will be implemented in the Duet SDK (software development kit) distributed with Cafe Duet.
Would it now be possible to run JAVA apps on Panels? Such as a JAVA based HTML web page app? Or only on the master?
Exciting stuff BTW
1...will there be server-side scripting, a la JSP/Servlets, etc., to support read/write of program variables/classes from a client web browser?
2...will RMI be supported?
3...will there be a message queue?
can't wait to inherit!!!!
Thanks....
1) Only AMX-developed modules can be servlets in the first release of Duet. In the future, full servlet capability will be available on a license basis.
2) RMI is an optional package not currently included in the CDC/Foundation Library from Sun Microsystems that is supported by Duet. AMX is evaluating whether to add this capability to Duet in the future.
3) J2ME does not natively provide a message queue similar to that available in an RTOS. However, one can be easily implemented using native-Java classes such as vectors or linked lists. Is this something that AMX should provide as a native Duet utility?
Duet uses a Sun-certified J2ME CDC/Foundation profile (CDC = Connected Device Configuration). Due to memory limitations, cell phones use the J2ME CLDC/MIDP profile (CLDC = Connected Limited Device Configuration). To conserve memory, many Java libary classes that are available in CDC are not available in CLDC. CDC is more appropriate for larger embedded devices such as settop boxes, while CLDC is necessary for very small footprint devices such as cell phones. Because of this, Duet is more closely related to a desktop Java than the cell phone Java described in most J2ME books. If you are looking for reference materials to read, AMX recommends that you look for books on J2SE or desktop Java, keeping in mind that not all classes will be available.
This is probably just as much a marketing topic as it is a technical topic, but I think web user interface is a big issue. I guess it wouldn't be difficult in Java to write a mini-web server with cgi-like functionality. Personally, I don't like taking over a panel via the Web Control interface, so I create virtual panels via TP3, but that is still a little hokey since there aren't native form tools. So..the quicker the servlet interface the better.
As you've stated, building basic queue functionality is pretty straightforward. The nice thing about a message service is multiple subscribers to a queue. For example, I might have 10 modules in a NetLinx program that are "interested" in the state of the alarm system.
Is that what you were looking for?
Yes...sounds good.
Attached is an FAQ with answers to your most burning questions. Of course it will probably spawn more questions, but then that's my life lately...
BTW, the PDF file had to be zipped so I could upload it to AMX Forums, so just unzip and enjoy!
I've got one. As Clara Peller used to say, "Where's the beef?"
Thanks,
Jeff
Hi Jeff,
You do not have to purchase Cafe Duet to be able to use the Java modules from NetLinx code. There should be a TKO distributed with the Duet module that just contains a 'module stub', filling in the property string array that gets passed to the Duet module. From NetLinx, you just call the DEFINE_MODULE using the module stub. Which Duet module are you trying to use, so I can give you more specifics on how to instaniate it?
Marji
I am/was trying to use the Ademco VISTA series module. I did get the old netlinx module to work, but I am very interested in try the duet module.
Thanks,
Jeff
I forgot that the TKO module stub is actually embedded within the JAR file and not distributed separately. NetLinx Studio extracts the TKO file from the Ademco_Vista_Comm.jar file at compile time. Did you add the Ademco_Vista_Comm.jar file to your NetLinx Studio project under Modules? What compile errors are you getting?
Marji
I was simply trying to compile the project that was provided. here is the info I am given:
I am still running v2.3 of studio, could this be causing the problem?
Jeff
You probably need to update the Cafe Duet runtime - you can do this by running WebUpdate, or installing the just-released NetLinx Studio 2.4.
If you're using Duet Modules, it's a good idea to check for updates to the runtime periodically with WebUpdate.
You need NetLinxStudio version 2.4 to use Duet modules in NetLinx. Let me know if this works or if you still have problems.
Marji