Java SE is free to use for development of embedded applications. We provide affordable licensing for deploying Java SE in an embedded device or as part of a embedded-based system. Please contact us when you are ready to deploy or if you have already deployed but not sure you have the correct license.
Q: 11. Does deploying Java SE for embedded devices or purposes require a royalty?
Yes. Sun's license for Java SE enables it to be freely used for general purpose desktops or servers. If Java SE is bundled as part of a dedicated solution that involves or controls hardware of some kind, then it's likely an embedded application and is subject to modest royalty payments.
Q: 12. How do I determine how much royalty I'll owe on my embedded offering that includes Java SE?
Please contact us to set up an appointment with our specialized OEM sales team. They have the necessary information to determine the pricing for your product. Sun's embedded royalty model seeks to match royalty costs to the price/volume of your product so that you can keep costs low and use Java SE on the wide range of SE-capable products.
Q: 13. Do I have to pay to develop my embedded application for Java SE?
No - developing with Java SE for embedded or non-embedded purposes is free, as are the NetBeans tools best suited for the job. You can and should sign a royalty agreement with Sun during the development phase, but you do not owe any royalty payments until you actually ship your product.
I think that is a different licensing fee from the one charged for Cafe Duet software. The licensing fee charged by Sun/Oracle would be built into the price of the hardware, it gets charged because the hardware is running Java.
With the new separate ICS LAN ports, how do you handle doing firmware updates to devices on that network? Do you have to plug your laptop into the AV LAN, or is there maybe some way that the master can do firmware updates for us?
With the new separate ICS LAN ports, how do you handle doing firmware updates to devices on that network? Do you have to plug your laptop into the AV LAN, or is there maybe some way that the master can do firmware updates for us?
I'm sure you can put the ICS port on the LAN if you wanted to by giving it an IP address from the LAN, or plugging a LAN cable into the ICS port and turning off its DHCP server. The ports are separate, but that doesn't mean they can't communicate over the network. I think all it means is that if you need to keep AV separate from the LAN this is a way to do it. You could accomplish the same thing with VLANs or swithes etc, so this isn't really a new thing. But for a small conference room, it could come in handy if the IT nazis won't allow IP controlled AV gear on the corporate network.
Paul
With the new separate ICS LAN ports, how do you handle doing firmware updates to devices on that network? Do you have to plug your laptop into the AV LAN, or is there maybe some way that the master can do firmware updates for us?
The Masters have always passed firmware/tkns/TPs to connected devices regardless of how they are connected. How do you update firmware on Axlink devices? The Master passes it along.
The Masters have always passed firmware/tkns/TPs to connected devices regardless of how they are connected.
My understanding with the newer ICSLan devices is that passing the firmware through the master was considered legacy and that NetLinx Studio connects directly to the device to upload the firmware.
What I really want is a better way to handle firmware updates. It's a blast to update 100 DXLink transmitters and receivers. What I would give for a central management server that could distribute updates for me...
I wonder how licensing is going to work with Duet now? Will the new version have to be purchased again? I am still not clear on who was charging that licensing fee, was it VxWorks, the JVM provider, etc?
I always got the impression that the fee covered the stuff in the Eclipse tooling, assuming a 3rd party did it, or just AMX charging it. Either way, hopefully there is a free upgrade, there isn't near enough support or documentation to justify forking over another $1000.
Case Sensitive File System
Unlike the NI-Series controllers, all file names on the X-Series controllers are case sensitive. This includes all
user files created or used within NetLinx or Java code.
As far as NS 4.0 it would be nice to see a way to add #REGION '', and #ENDREGION to have custom code folding.
Oh, one of those guys...
No. AMX programmers are already bad enough manipulating NetLinx; I don't want to run into some code a "smart" programmer wrote where they hide their spaghetti mess that they left behind. Besides, if you need to fold your code with helpers, you're doing it wrong. (I can't put all the blame on AMX programmers though. Most shouldn't be programming and they probably learned very poor practices from training. But this is another discussion...)
No. AMX programmers are already bad enough manipulating NetLinx; I don't want to run into some code a "smart" programmer wrote where they hide their spaghetti mess that they left behind. Besides, if you need to fold your code with helpers, you're doing it wrong. (I can't put all the blame on AMX programmers though. Most shouldn't be programming and they probably learned very poor practices from training. But this is another discussion...)
Why? FWIW I think it's about time.
As for NX, too little too late IMO. 1RU is good though.
Not sure if trolling or serious.
While there is a LOT of spaghetti code out there, I can see a few instances of where custom regions may be appropriate. Just because you don't agree with a specific practice doesn't mean it is invalid across the board.
Besides, if you're stuck poking through someone else's code, and you don't like the way its formatted, I would suggest using the Find/Replace function.
Before throwing out blanket statements admonishing people who have made decent careers out of the subject matter, perhaps you would be willing to post your own projects for scrutiny. Otherwise, stick to specifics.
Going forward fine, but for legacy support it kind of sucks - as I am finding out right now. Ever notice the current OS creates directories and files exclusively as upper case regardless of the calling data. Now if you try to restore persistent saved data from an older system to the newer platform all the strongly typed code you have had implemented all along no longer works...
Yes, I thought about that...
The compiler sometimes misses the EVENT when there are comments between
DEFINE_EVENT and the Type of Event - BUTTON_EVENT, DATA_EVENT, etc.
I have quite a few events that require rebuild_event(); Dynamic arrays of Touch Panels and Button Channel #s.
I have code separated into functionality i.e. Source selection, Display Control, AV Matrix, Lighting, Blinds & Shades, Shutdown, etc and it would be nice to fold everything and open the Source Selection code only; and if I need to look at the Shutdown code as well; I can open just what I am interested in looking at.
I've never had a problem adding comments after DEFINE_EVENTs for use with code folding. I would probably use regions if they existed, but this works well enough for most things:
I've never had a problem adding comments after DEFINE_EVENTs for use with code folding. I would probably use regions if they existed, but this works well enough for most things:
The ICSLAN port has a built-in DHCP server. This DHCP server is enabled by default and will serve IP addresses to any
connected devices set to DHCP mode.
What could possibly go wrong?
The DHCP address range is fixed. The server will provide addresses in the range x.x.0.2 through x.x.63.255.
Does anyone know if the new compiler will do away with the 16000 limit on arrays as well as the other oddities like single characters in switch/case statements, and other weird bugs that have cropped up over the years? I'd also like to find out if they fixed the problem with hold events in modules. I haven't tested that lately but if you have a structure in a module and define the module more than once, in a hold event you only have access to the data in the structure belonging to the module defined first.
Paul
You are not. I just noticed the compiler version for both NS3/4 is 2.5.2.300, so same compiler version for both. Does anyone know the last time the compiler was updated?
Paul
I've done so numerous times on this forum. Perhaps you haven't seen what poor concepts and outright factually incorrect information AMX teaches would-be programmers?
Does anyone know if the new compiler will do away with the 16000 limit on arrays as well as the other oddities like single characters in switch/case statements, and other weird bugs that have cropped up over the years? I'd also like to find out if they fixed the problem with hold events in modules. I haven't tested that lately but if you have a structure in a module and define the module more than once, in a hold event you only have access to the data in the structure belonging to the module defined first.
Wow, that's one of the many I hadn't run into yet. I would hope that if compiler improvements are made they'd be portable cross platforms but I'm holding my breath on any actual updates.
What I've been told is that they only touch the compiler if a major bug is found.
I've found some. a_riot42 has found some. I've reported some. I've been blown off. It's not something an AV-grunt-turned-keyboard-warrior will copy and paste so maybe we're wrong and these compiler bugs aren't important.
After seeing all these positive things about the NX series, I talked my boss into replacing 2 of our new jobs with NX series....after much talking up the product he gave in. I received the 2 processors yesterday and was anxious to see the performance increase....after about 10 minutes of waiting for the processors to boot I had to call tech support. Surely I must have done something wrong...after about an hour on the phone with support, it was determined that both brand new processors were DOA. UUUggggg
Returning to the DEFINE_PROGRAM differences with NI series... should I stop using it once and for all to deal with button feedback?
I always have in my Comm module lines like:
DEFINE_PROGRAM
[vdvDevice,_CH_ON] = uStatus.bOn
[vdvDevice,_CH_HDMI_1] = (uStatus.nInput == _INPUT_HDMI_1)
[..]
and the corresponding button feedback in the UI:
DEFINE_PROGRAM
[dvTp,nBtnOn] = [vdvDevice,_CH_ON]
and so on...
I also use it to check the module internal queue to see if there is any command pending to be send, if the module is ready to send a command (i.e. the device isn't cooling down or executing another command) etc. So there is plenty of conditionals. In my defense I must say that I avoid using loops at least.
Anyways, could this be a problem in large projects in the future? should I start using TLs?
Comments
Q: 10. How is Java SE for Embedded licensed?
Java SE is free to use for development of embedded applications. We provide affordable licensing for deploying Java SE in an embedded device or as part of a embedded-based system. Please contact us when you are ready to deploy or if you have already deployed but not sure you have the correct license.
Q: 11. Does deploying Java SE for embedded devices or purposes require a royalty?
Yes. Sun's license for Java SE enables it to be freely used for general purpose desktops or servers. If Java SE is bundled as part of a dedicated solution that involves or controls hardware of some kind, then it's likely an embedded application and is subject to modest royalty payments.
Q: 12. How do I determine how much royalty I'll owe on my embedded offering that includes Java SE?
Please contact us to set up an appointment with our specialized OEM sales team. They have the necessary information to determine the pricing for your product. Sun's embedded royalty model seeks to match royalty costs to the price/volume of your product so that you can keep costs low and use Java SE on the wide range of SE-capable products.
Q: 13. Do I have to pay to develop my embedded application for Java SE?
No - developing with Java SE for embedded or non-embedded purposes is free, as are the NetBeans tools best suited for the job. You can and should sign a royalty agreement with Sun during the development phase, but you do not owe any royalty payments until you actually ship your product.
I think that is a different licensing fee from the one charged for Cafe Duet software. The licensing fee charged by Sun/Oracle would be built into the price of the hardware, it gets charged because the hardware is running Java.
Excellent videos. Very well done.
I'm sure you can put the ICS port on the LAN if you wanted to by giving it an IP address from the LAN, or plugging a LAN cable into the ICS port and turning off its DHCP server. The ports are separate, but that doesn't mean they can't communicate over the network. I think all it means is that if you need to keep AV separate from the LAN this is a way to do it. You could accomplish the same thing with VLANs or swithes etc, so this isn't really a new thing. But for a small conference room, it could come in handy if the IT nazis won't allow IP controlled AV gear on the corporate network.
Paul
Sent from my SPH-L720 using Tapatalk
My understanding with the newer ICSLan devices is that passing the firmware through the master was considered legacy and that NetLinx Studio connects directly to the device to upload the firmware.
What I really want is a better way to handle firmware updates. It's a blast to update 100 DXLink transmitters and receivers. What I would give for a central management server that could distribute updates for me...
As far as NS 4.0 it would be nice to see a way to add #REGION '', and #ENDREGION to have custom code folding.
I always got the impression that the fee covered the stuff in the Eclipse tooling, assuming a 3rd party did it, or just AMX charging it. Either way, hopefully there is a free upgrade, there isn't near enough support or documentation to justify forking over another $1000.
This. Sucks.
Oh, one of those guys...
No. AMX programmers are already bad enough manipulating NetLinx; I don't want to run into some code a "smart" programmer wrote where they hide their spaghetti mess that they left behind. Besides, if you need to fold your code with helpers, you're doing it wrong. (I can't put all the blame on AMX programmers though. Most shouldn't be programming and they probably learned very poor practices from training. But this is another discussion...)
I am not the only one who thinks this, either.
Why? FWIW I think it's about time.
As for NX, too little too late IMO. 1RU is good though.
Not sure if trolling or serious.
While there is a LOT of spaghetti code out there, I can see a few instances of where custom regions may be appropriate. Just because you don't agree with a specific practice doesn't mean it is invalid across the board.
Besides, if you're stuck poking through someone else's code, and you don't like the way its formatted, I would suggest using the Find/Replace function.
Before throwing out blanket statements admonishing people who have made decent careers out of the subject matter, perhaps you would be willing to post your own projects for scrutiny. Otherwise, stick to specifics.
Going forward fine, but for legacy support it kind of sucks - as I am finding out right now. Ever notice the current OS creates directories and files exclusively as upper case regardless of the calling data. Now if you try to restore persistent saved data from an older system to the newer platform all the strongly typed code you have had implemented all along no longer works...
The compiler sometimes misses the EVENT when there are comments between
DEFINE_EVENT and the Type of Event - BUTTON_EVENT, DATA_EVENT, etc.
I have quite a few events that require rebuild_event(); Dynamic arrays of Touch Panels and Button Channel #s.
I have code separated into functionality i.e. Source selection, Display Control, AV Matrix, Lighting, Blinds & Shades, Shutdown, etc and it would be nice to fold everything and open the Source Selection code only; and if I need to look at the Shutdown code as well; I can open just what I am interested in looking at.
+1. .
What could possibly go wrong?
huh?
Paul
I hope I'm wrong.
You are not. I just noticed the compiler version for both NS3/4 is 2.5.2.300, so same compiler version for both. Does anyone know the last time the compiler was updated?
Paul
This new NX series configuration video was posted on July 23.
Part 6 - 802.1x Security, https://www.youtube.com/watch?v=4K5DyL1lP9s
I've done so numerous times on this forum. Perhaps you haven't seen what poor concepts and outright factually incorrect information AMX teaches would-be programmers?
You illustrate my point beautifully. This monstrosity is something that regions will only make worse.
Wow, that's one of the many I hadn't run into yet. I would hope that if compiler improvements are made they'd be portable cross platforms but I'm holding my breath on any actual updates.
I've found some. a_riot42 has found some. I've reported some. I've been blown off. It's not something an AV-grunt-turned-keyboard-warrior will copy and paste so maybe we're wrong and these compiler bugs aren't important.
I always have in my Comm module lines like:
DEFINE_PROGRAM
[vdvDevice,_CH_ON] = uStatus.bOn
[vdvDevice,_CH_HDMI_1] = (uStatus.nInput == _INPUT_HDMI_1)
[..]
and the corresponding button feedback in the UI:
DEFINE_PROGRAM
[dvTp,nBtnOn] = [vdvDevice,_CH_ON]
and so on...
I also use it to check the module internal queue to see if there is any command pending to be send, if the module is ready to send a command (i.e. the device isn't cooling down or executing another command) etc. So there is plenty of conditionals. In my defense I must say that I avoid using loops at least.
Anyways, could this be a problem in large projects in the future? should I start using TLs?
I can't think of a reason I'd have to use it.
I much prefer to keep the feedback details near the events that cause them to update.