In my opinion it would be nicer to have a more Object Oriented approach. I would like to see the button event be a class (C++, C#, etc. style) that could maintain some of it's own variables. It would be too much of a rewrite of the language though, I'm sure.
I would probably not use an event var because I'm too used to scope being withing {} brackets and it would lead me to create many bugs within my code.
In my opinion it would be nicer to have a more Object Oriented approach. I would like to see the button event be a class (C++, C#, etc. style) that could maintain some of it's own variables. It would be too much of a rewrite of the language though, I'm sure.
Aside from the ability to define our own STRUCTs, there is nothing Object Oriented about NetLinx.
It would be nice if the function Sourcedev works correctly. In the help of the netlinx studio there is a description what the token should do, but it doesnt work.
For projects with many touchpanels i miss the sourcedev function.
For those of you that have posted your suggestions since this thread was started, we appreciate your contribution.
Now would be a great time to review your previous posts, determine what is still valid, and repost a summary. There is a good chance that our software tools engineering team will be revisiting your requests for a future release of Studio.
My question is - if the developing team plans to take some of this into consideration - what portion are they considering? The IDE only, the compiler / language or both?
I would love to see NS move more towards a Visual Studio type development environment. I feel the Scintilla component was great, but the whole thing needs to be updated. I don't know a whole bunch about Scintilla, but can you have descriptions in the dropdown like in VS? While Scintilla is nice (because it's freeware), I love the tools Syncfusion has in their collection.
As far as language goes, I think the biggest edition would be a new type of variable that is event related (BUTTON_EVENT, CHANNEL_EVENT), rather than action related (push, hold, release, on, off, etc.) Fixing it to where we could have a timeline array would be a super plus. I think it'd be a neat addition to be able to drag and drop snippets of code. Perhaps make to where we can save snippets of our own, and sets of variables, etc. then be able to categorize it. See attached (was an EXTREMELY quick concept, but you should get the idea.) This way, reused code can be easily imported and put exactly where we want it. As much as some of us strive for expandable code / cookie cutter code, call it what you will - every job IS different on some level. I think having the ability to drag and drop constant, variable, event sections in where ever we want would be a big plus.
That's about it off the top of my head. I'd have to go through this thread and read what all I've posted, and still see if it's "important".
My number 1 biggest complaint about studio seems relatively minor, and I know its been mentioned before, but can we PLEASE get the autocomplete function turned off in comments?
I can't tell you how many times I've typed
button_event[dvTP,1] //Computer On
{
and I end up with
button_event[dvTP,1] //Computer ONERROR{
Which wouldn't be quite as big a deal, but when I hit enter at the end of "On", instead of going to the next line, it just confirms that I want ONERROR, so when I start typing the next line, I'm not actually where I think I am.
On another note, I'd love to see reserved words show up in the correct color if they're defined in an include file. For example, I have a universal include file that I include with everything, that includes things like non_volatile integer x, which I use for FOR loops regularly. I'd love to have x show up as a variable, instead of just plain text.
I completely agree - I guess I've just gotten used to those little inconveniences. I've definitely could use the include file bit. I know for a fact some people will not use them just for the reason you mentioned.
Okay folks, I took the liberty of going through the thread semi-quickly to find outstanding issues / suggestions that haven't been addressed. If you see anything missing, or just want to add to it, please do. These suggestions are in the order of the thread, so if you see something that I didn't clarify enough, or I'm just downright wrong in a one sentence summary, you kinda know where to find it in the thread. Sorry - I'm not the best comprehensive reader, but this is what I've gathered from this thread thusfar:
EVENT_VAR type variables
Persistent bookmarks with the ability to jump to specific ones
Rework the toolbar class due to issues when minimizing and changing resolutions
Listing of compiled devices
Expand/Collapse PUSH/RELEASE statements
Ability to upload TP file while TPD4 is open
Open workspace tree to all levels with a single click (or right click)
Save All without having to open source
A wizard that walks through setting up DPS, IP, URLs, etc. (Extend that wizard to touch panels as well)
Print code in color
Color highlighting of module parameters throughout the module
No autocomplete in comments
Export all module TKOs
Wildcard for find / replace
GET_ARRAY_INDEX - the ability to grab "value" in an "array", or would return 0 if not found in the array
Code beautifier / clean up / auto-reindent for when viewing another person's code that uses different layout.
Integrated IR command listings (ability to see what commands are used in IR files part of the project)
Integrated editor of TP, KP & IR
Warn of unused variables / constants just like in Axcess compiler
Ability to create macros (i.e. keypress recording & playback)
Improve auto-suggest / complete for STRUCTs
Create / Improve call-tips
Ability to make extensions to the tools menu
Better warnings with compiler (when reserved words are used)
Online compiler / editer
When NS is open, and you try to double click an AXI or AXS file to open, it won't - BUG
Icons towards bottom of editor that show diagnostics / notification are enabled/disable should toggle when clicked/doubleclicked.
I'm a little surprised no one has mentioned this one: in Debug, I'd like
to see a usable dialog regarding which <variable of the same name> I want.
As it is now, I see a list showing all the same source file, with line
numbers. And since the dialog is modal, I can't go look for the variable
while the dialog is open. For that matter, I'd like for it not to ask me
every time I go into Debug; how about defaulting to the last one I used?
And as long as we're dreaming, how about showing the instance name if it's
a module?
As for the editor, unix has had the $EDITOR environment variable for
decades. Why not have something like that? I won't bore you with tales of
the Editor Wars, but suffice it to say that everyone has their favorite.
Perfect Studio 10.0 would have some way to tell it which editor to use,
with the built-in editor being one of the choices.
Finally: someone mentioned trying to be more like "mainstream" IDEs, but I
think it would be a mistake to go down that road. VisualSomething.net may
be mainstream for you, but for me it's /bin/sh and vi. Just saying.
I have been requested by the development team to have each of you submit your bug reports and feature requests for Studio directly to your favorite Tech Support person. It seems this is the best way to move the process forward. Feel free to send me a PM if this is a problem for you.
We would still encourage you to post your ideas to generate discussion topics and perhaps validate your point of view.
I'm a little surprised no one has mentioned this one: in Debug, I'd like
to see a usable dialog regarding which <variable of the same name> I want.
As it is now, I see a list showing all the same source file, with line
numbers. And since the dialog is modal, I can't go look for the variable
while the dialog is open. For that matter, I'd like for it not to ask me
every time I go into Debug; how about defaulting to the last one I used?
And as long as we're dreaming, how about showing the instance name if it's
a module?
As for the editor, unix has had the $EDITOR environment variable for
decades. Why not have something like that? I won't bore you with tales of
the Editor Wars, but suffice it to say that everyone has their favorite.
Perfect Studio 10.0 would have some way to tell it which editor to use,
with the built-in editor being one of the choices.
Finally: someone mentioned trying to be more like "mainstream" IDEs, but I
think it would be a mistake to go down that road. VisualSomething.net may
be mainstream for you, but for me it's /bin/sh and vi. Just saying.
Chris - I understand completely where you're coming from. But since NetLinx Studio (for now) is a Windows only app (sure, you could probably emulate in Linux or do whatever you have to do to get it to run on a Mac), this is why I suggested that it move more towards a .NET'ish look. Gotta keep up with times man!! LOL!
But hey - I'm a little man to AMX - it'll probably stay Scintilla.
I have found that the reported bug fix below appears to still not be quite right.
Originally Posted by NSX What's new
BUG FIX - The problem with truncated strings/unpredictable messages being displayed in the Notification and Diagnostic panes has been corrected. This was occurring when a $00 value was imbedding in the string being sent/received from a device.
This string is part of a polling sequence for a barco vp...
send_string dev,"$FE,$01,$67,$68,$FF"
but in the diagnostics window it displays as follows...
Line 716 (17:21:10):: String To [5001:1:1]-[$FE$01gh$FF]
$67 (ascii g)
$68 (ascii h)
Not a single $00 to be seen.
This is a diagnostics window and in my view it should show EXACTLY what is being sent, not a representation or interpretation of the packet because it is printable or non-printable.
If we spit out a '$67' in a string, I would fully expect to see just that, not 'g'.
Outbound strings can generally be vouched for from your code, but inbound strings - this can be very tedious reading some bytes as hex and some as ASCII.
If this window can display '$03' as '$03' and not '♥', then there should be no reason to display 'g' and not '$67'!!
There is generally enough to do already without having to interpret the bytes back to their native form in your head (and usually whilst under pressure)!
Is it just my copy of studio, or does the "Run to Cursor" function in debug still not work correctly? I'm constantly unable to effectively step through a program and see which lines are causing problems, because it constantly highlites the wrong lines. I know there were some issues of this when modules were being used, and I haven't really tried to troubleshoot it yet, thought I'd see if it was a known bug first . . .
The Run To Cursor does seem buggy. I usually find that if I changed the source at all after a download of code to the processor, and the lines move, then it's difficult (if not impossible) to get the "Run To Cursor" to work correctly. However, if I download and try it again - it seems to work better.
One thing that my Java IDE has that I would love to see in NS is the ability to ctrl-click on function names to go their definitions, and then have a 'Go Back' in the context menu. Same thing with a variable or constant name; ctrl-click and it jumps to its declaration. When you are hunting through code and constantly having to switch files back and forth or up/down in a file this makes it so much more enjoyable experience.
Paul
One thing that my Java IDE has that I would love to see in NS is the ability to ctrl-click on function names to go their definitions, and then have a 'Go Back' in the context menu. Same thing with a variable or constant name; ctrl-click and it jumps to its declaration. When you are hunting through code and constantly having to switch files back and forth or up/down in a file this makes it so much more enjoyable experience.
Paul
It's more steps, but I click on a bookmark, then highlight the function name and do a search with "start at to of file" checked. It's such an ingrained habit, I can scarcely imagine a control-click being faster.
It's more steps, but I click on a bookmark, then highlight the function name and do a search with "start at to of file" checked. It's such an ingrained habit, I can scarcely imagine a control-click being faster.
Good point, although I have found ctrl-clicking to be quicker when tracing code where one function calls another which calls another....I can ctrl-click through an entire control flow quickly enough so that my brain doesn't forget what the hell I am doing
Paul
Not sure this is a bug, but it is mostly annoying: when selecting a column of numbers (like case 1: through case 5: ) and then "sequential renumber" them, there is a number of extra spaces and/or tabs added at below the section.
Also, when I go to control a device, the system number used to be persistent; every time I open the window, I have to respecify the system number.
And for many releases now, the auto-highlighting and autocomplete are randomly fussy (especially when using members of a structure).
I know exactly what you're talking about with the sequential renumber. Be sure to send that in to tech support.
For everyone's information, if you find a bug - send it in. You can email it to your tech, but be sure (I can't emphasize this enough) to follow up with a phone call. I had sent in a huge list of bugs, and apparently the tech I sent it to, never got it. So when I called to verify and made sure he made a "case" out of it - he had no idea what I was talking about. They're very busy people - so let's make sure we do our part in following up.
At first - I felt kinda dumb calling up just for a feature request or to report a bug - but trust you me, they really do appreciate it.
Not sure this is a bug, but it is mostly annoying: when selecting a column of numbers (like case 1: through case 5: ) and then "sequential renumber" them, there is a number of extra spaces and/or tabs added at below the section.
Most likely you're already aware, but thought I'd mention it for anyone reading through that's not. At least in my case, that issue can be avoided if you have text of some sort already typed into the line below where the selected column ends. The extra spaces issue is definitely an annoyance, but I rarely deal with it anymore because I tend to go ahead and complete all of my bracketing framework as soon as I start a Switch..Case sort of statement, so I almost always have a '{' below any Case statements that I'm using sequential renumbering on. Of course, the fact that there's a work around doesn't mean that it wouldn't be nice to have it fixed/changed.
On a different note, I think that the diagnostics window still reports 'Index to large' as opposed to 'Index too large' when an array goes out of bounds. I know it shouldn't happen anyway, but sometimes it does and that missing o irritates the hell out of me.
Not sure if this is the right place to post this but...
The standalone 'Netlinx Diagnostics' does not have all the features that is built into NS.
I prefer using the standalone diagnostics program as you can scan through the code (to find send strings and dps settings) whereas the inbuilt diagnostics program wont let you.
Can we get the standalone diagnostic program updated or make the changes in NS to allow us to have the diagnostic windows open (Notification Options, Emulate and Control etc) and scan through the code.
PS: +1 for autocomplete to be turned off for comments.
An eclipse Plugin that works cross platform.
Eclipse would give us a PROPER IDE with cross platform capability and also allow us to swap between Cafe Duet and Netlinx, and #insert programming language of choice here#.
That is my 2c worth, I like eclipse, I also Like Netlinx Studio, but there are too many missing features that are standard with eclipse.
The updating of Studio is moving forward and I have been requested that all concerned citizens get your bug reports and feature requests into our technical support dept. for confirmation and tracking.
(800) 222-0193, Option 8.
Thanks to Jay for providing the summary on 1/17.
Below is a list of items from the summary that need further clarification. If the owners of these requests could provide additional detail and report them though TS, there is a better chance they will make the next release. The remainder of the items from the summary were either previously reported or understood.
1) EVENT_VAR type variables
2) Rework the toolbar class due to issues when minimizing and changing resolutions
3) GET_ARRAY_INDEX - the ability to grab "value" in an "array", or would return 0 if not found in the array
Nice use of a WHILE loop. I typically stay away from them for whatever reason (maybe I've heard too many stories of run-away WHILE loops killing a system at an important time). Looks good.
You know - you can edit the Netlinx.axi to use that function, and it should come up when you start typing GET_INTEGER_ARRAY_INDEX. I added several functions that I use on that are pretty much static (will work without any tweaking, such as padding strings with a character) and it works fine. The ONLY problem is when you open up an older job, that has that function in there - and you try to compile - whoopsies!, it's already define! Then it's a headache to fix.
Nice use of a WHILE loop. I typically stay away from them for whatever reason (maybe I've heard too many stories of run-away WHILE loops killing a system at an important time). Looks good.
When we start coding out of fear, the terrorists have won.
Comments
I'd love to see these icons operate as toggle buttons to quickly turn on and off either of these functions.
I've quick-key mapped it for quick enable/disable to grab a split second of activity, but a mouse click would be nice.
In my opinion it would be nicer to have a more Object Oriented approach. I would like to see the button event be a class (C++, C#, etc. style) that could maintain some of it's own variables. It would be too much of a rewrite of the language though, I'm sure.
I would probably not use an event var because I'm too used to scope being withing {} brackets and it would lead me to create many bugs within my code.
Aside from the ability to define our own STRUCTs, there is nothing Object Oriented about NetLinx.
It would be nice if the function Sourcedev works correctly. In the help of the netlinx studio there is a description what the token should do, but it doesnt work.
For projects with many touchpanels i miss the sourcedev function.
For those of you that have posted your suggestions since this thread was started, we appreciate your contribution.
Now would be a great time to review your previous posts, determine what is still valid, and repost a summary. There is a good chance that our software tools engineering team will be revisiting your requests for a future release of Studio.
I would love to see NS move more towards a Visual Studio type development environment. I feel the Scintilla component was great, but the whole thing needs to be updated. I don't know a whole bunch about Scintilla, but can you have descriptions in the dropdown like in VS? While Scintilla is nice (because it's freeware), I love the tools Syncfusion has in their collection.
As far as language goes, I think the biggest edition would be a new type of variable that is event related (BUTTON_EVENT, CHANNEL_EVENT), rather than action related (push, hold, release, on, off, etc.) Fixing it to where we could have a timeline array would be a super plus. I think it'd be a neat addition to be able to drag and drop snippets of code. Perhaps make to where we can save snippets of our own, and sets of variables, etc. then be able to categorize it. See attached (was an EXTREMELY quick concept, but you should get the idea.) This way, reused code can be easily imported and put exactly where we want it. As much as some of us strive for expandable code / cookie cutter code, call it what you will - every job IS different on some level. I think having the ability to drag and drop constant, variable, event sections in where ever we want would be a big plus.
That's about it off the top of my head. I'd have to go through this thread and read what all I've posted, and still see if it's "important".
I can't tell you how many times I've typed
and I end up with
Which wouldn't be quite as big a deal, but when I hit enter at the end of "On", instead of going to the next line, it just confirms that I want ONERROR, so when I start typing the next line, I'm not actually where I think I am.
On another note, I'd love to see reserved words show up in the correct color if they're defined in an include file. For example, I have a universal include file that I include with everything, that includes things like non_volatile integer x, which I use for FOR loops regularly. I'd love to have x show up as a variable, instead of just plain text.
J
I completely agree - I guess I've just gotten used to those little inconveniences. I've definitely could use the include file bit. I know for a fact some people will not use them just for the reason you mentioned.
Okay folks, I took the liberty of going through the thread semi-quickly to find outstanding issues / suggestions that haven't been addressed. If you see anything missing, or just want to add to it, please do. These suggestions are in the order of the thread, so if you see something that I didn't clarify enough, or I'm just downright wrong in a one sentence summary, you kinda know where to find it in the thread. Sorry - I'm not the best comprehensive reader, but this is what I've gathered from this thread thusfar:
EVENT_VAR type variables
Persistent bookmarks with the ability to jump to specific ones
Rework the toolbar class due to issues when minimizing and changing resolutions
Listing of compiled devices
Expand/Collapse PUSH/RELEASE statements
Ability to upload TP file while TPD4 is open
Open workspace tree to all levels with a single click (or right click)
Save All without having to open source
A wizard that walks through setting up DPS, IP, URLs, etc. (Extend that wizard to touch panels as well)
Print code in color
Color highlighting of module parameters throughout the module
No autocomplete in comments
Export all module TKOs
Wildcard for find / replace
GET_ARRAY_INDEX - the ability to grab "value" in an "array", or would return 0 if not found in the array
Code beautifier / clean up / auto-reindent for when viewing another person's code that uses different layout.
Integrated IR command listings (ability to see what commands are used in IR files part of the project)
Integrated editor of TP, KP & IR
Warn of unused variables / constants just like in Axcess compiler
Ability to create macros (i.e. keypress recording & playback)
Improve auto-suggest / complete for STRUCTs
Create / Improve call-tips
Ability to make extensions to the tools menu
Better warnings with compiler (when reserved words are used)
Online compiler / editer
When NS is open, and you try to double click an AXI or AXS file to open, it won't - BUG
Icons towards bottom of editor that show diagnostics / notification are enabled/disable should toggle when clicked/doubleclicked.
Fix SOURCEDEV function
to see a usable dialog regarding which <variable of the same name> I want.
As it is now, I see a list showing all the same source file, with line
numbers. And since the dialog is modal, I can't go look for the variable
while the dialog is open. For that matter, I'd like for it not to ask me
every time I go into Debug; how about defaulting to the last one I used?
And as long as we're dreaming, how about showing the instance name if it's
a module?
As for the editor, unix has had the $EDITOR environment variable for
decades. Why not have something like that? I won't bore you with tales of
the Editor Wars, but suffice it to say that everyone has their favorite.
Perfect Studio 10.0 would have some way to tell it which editor to use,
with the built-in editor being one of the choices.
Finally: someone mentioned trying to be more like "mainstream" IDEs, but I
think it would be a mistake to go down that road. VisualSomething.net may
be mainstream for you, but for me it's /bin/sh and vi. Just saying.
Forum friends,
I have been requested by the development team to have each of you submit your bug reports and feature requests for Studio directly to your favorite Tech Support person. It seems this is the best way to move the process forward. Feel free to send me a PM if this is a problem for you.
We would still encourage you to post your ideas to generate discussion topics and perhaps validate your point of view.
Thanks much.
But hey - I'm a little man to AMX - it'll probably stay Scintilla.
http://www.amxforums.com/showthread.php?t=3350
<extract from my posts in thread>
I have found that the reported bug fix below appears to still not be quite right.
Originally Posted by NSX What's new
BUG FIX - The problem with truncated strings/unpredictable messages being displayed in the Notification and Diagnostic panes has been corrected. This was occurring when a $00 value was imbedding in the string being sent/received from a device.
This string is part of a polling sequence for a barco vp...
send_string dev,"$FE,$01,$67,$68,$FF"
but in the diagnostics window it displays as follows...
Line 716 (17:21:10):: String To [5001:1:1]-[$FE$01gh$FF]
$67 (ascii g)
$68 (ascii h)
Not a single $00 to be seen.
This is a diagnostics window and in my view it should show EXACTLY what is being sent, not a representation or interpretation of the packet because it is printable or non-printable.
If we spit out a '$67' in a string, I would fully expect to see just that, not 'g'.
Outbound strings can generally be vouched for from your code, but inbound strings - this can be very tedious reading some bytes as hex and some as ASCII.
If this window can display '$03' as '$03' and not '♥', then there should be no reason to display 'g' and not '$67'!!
There is generally enough to do already without having to interpret the bytes back to their native form in your head (and usually whilst under pressure)!
If so, we oughtta fix that.
J
Paul
It's more steps, but I click on a bookmark, then highlight the function name and do a search with "start at to of file" checked. It's such an ingrained habit, I can scarcely imagine a control-click being faster.
Good point, although I have found ctrl-clicking to be quicker when tracing code where one function calls another which calls another....I can ctrl-click through an entire control flow quickly enough so that my brain doesn't forget what the hell I am doing
Paul
Not sure this is a bug, but it is mostly annoying: when selecting a column of numbers (like case 1: through case 5: ) and then "sequential renumber" them, there is a number of extra spaces and/or tabs added at below the section.
Also, when I go to control a device, the system number used to be persistent; every time I open the window, I have to respecify the system number.
And for many releases now, the auto-highlighting and autocomplete are randomly fussy (especially when using members of a structure).
That's it for now...
For everyone's information, if you find a bug - send it in. You can email it to your tech, but be sure (I can't emphasize this enough) to follow up with a phone call. I had sent in a huge list of bugs, and apparently the tech I sent it to, never got it. So when I called to verify and made sure he made a "case" out of it - he had no idea what I was talking about. They're very busy people - so let's make sure we do our part in following up.
At first - I felt kinda dumb calling up just for a feature request or to report a bug - but trust you me, they really do appreciate it.
Most likely you're already aware, but thought I'd mention it for anyone reading through that's not. At least in my case, that issue can be avoided if you have text of some sort already typed into the line below where the selected column ends. The extra spaces issue is definitely an annoyance, but I rarely deal with it anymore because I tend to go ahead and complete all of my bracketing framework as soon as I start a Switch..Case sort of statement, so I almost always have a '{' below any Case statements that I'm using sequential renumbering on. Of course, the fact that there's a work around doesn't mean that it wouldn't be nice to have it fixed/changed.
On a different note, I think that the diagnostics window still reports 'Index to large' as opposed to 'Index too large' when an array goes out of bounds. I know it shouldn't happen anyway, but sometimes it does and that missing o irritates the hell out of me.
The standalone 'Netlinx Diagnostics' does not have all the features that is built into NS.
I prefer using the standalone diagnostics program as you can scan through the code (to find send strings and dps settings) whereas the inbuilt diagnostics program wont let you.
Can we get the standalone diagnostic program updated or make the changes in NS to allow us to have the diagnostic windows open (Notification Options, Emulate and Control etc) and scan through the code.
PS: +1 for autocomplete to be turned off for comments.
Yeah, that would be nice, wouldn't it?
An eclipse Plugin that works cross platform.
Eclipse would give us a PROPER IDE with cross platform capability and also allow us to swap between Cafe Duet and Netlinx, and #insert programming language of choice here#.
That is my 2c worth, I like eclipse, I also Like Netlinx Studio, but there are too many missing features that are standard with eclipse.
Please finish this plugin and release it to use,
K, thx, bye.
The updating of Studio is moving forward and I have been requested that all concerned citizens get your bug reports and feature requests into our technical support dept. for confirmation and tracking.
(800) 222-0193, Option 8.
Thanks to Jay for providing the summary on 1/17.
Below is a list of items from the summary that need further clarification. If the owners of these requests could provide additional detail and report them though TS, there is a better chance they will make the next release. The remainder of the items from the summary were either previously reported or understood.
1) EVENT_VAR type variables
2) Rework the toolbar class due to issues when minimizing and changing resolutions
3) GET_ARRAY_INDEX - the ability to grab "value" in an "array", or would return 0 if not found in the array
4) Improve auto-suggest / complete for STRUCTs
5) Create / Improve call-tips
6) Ability to make extensions to the tools menu
7) Online compiler / editer
8) Fix SOURCEDEV function
If this is what I think it is, here is a function that should do this. (untested)
If you are looking for a block of characters in a CHAR array, just use FIND_STRING.
Jeff
You know - you can edit the Netlinx.axi to use that function, and it should come up when you start typing GET_INTEGER_ARRAY_INDEX. I added several functions that I use on that are pretty much static (will work without any tweaking, such as padding strings with a character) and it works fine. The ONLY problem is when you open up an older job, that has that function in there - and you try to compile - whoopsies!, it's already define! Then it's a headache to fix.