Posted: Wednesday Apr 22nd, 2015 06:18 pm |
|
1st Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
I notice that the Action Codes Reference manual doesn't appear to have all the codes that are currently available in Comfigurator and presumably the later firmware. For example, the task 'wait 2 seconds using timer 25' codes as 190,25,0,2. Yet I cannot find the "190" code anywhere in the manual. So now I wonder - how many other codes have been introduced since the manual was last updated? Is here a list somewhere of ALL codes? It looks like the Reference manual is over 2 years old. Is an update on the cards?
|
Posted: Thursday Apr 23rd, 2015 08:15 am |
|
2nd Post |
Posted: Thursday Apr 23rd, 2015 08:45 am |
|
3rd Post |
Posted: Thursday Apr 23rd, 2015 12:06 pm |
|
4th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
OK, now I have the new codes, can you please explain why I cannot branch 'backwards'? I want to set a counter; perform an action; decrement the counter and if it isn't zero loop back to the action (again). Firstly, there appears to be no 'Comfigurator' programming codes to allow this, and if I try to set it manually, using, for example "Edit Action Codes" and codes 115, 231 as soon as I hit OK (or Apply) the negative offset 231 gets set to 0 and the code is totally screwed up! Comments or suggestions welcome!
|
Posted: Thursday Apr 23rd, 2015 04:36 pm |
|
5th Post |
admin
Administrator
Joined: | Saturday Mar 3rd, 2007 |
Location: | Singapore |
Posts: | 1200 |
Status: |
Offline
|
back to top
|
according to the action codes spec you should be able to branch back. Nobody seems to have tried this before. We will investigate
|
Posted: Thursday Apr 23rd, 2015 06:23 pm |
|
6th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Thanks so much. I believe I may have found another error. I have an X10 'Bedside / Desktop Timer Controller' and I have programmed the X10 A4 Off response so that it also turns off the bedroom (CBus) lights. It saves getting out of bed! It works very well - if room lights are on and the '4 Off' button is pressed on the Controller, both bedside light and room lights switch off. Exactly as expected. However, I also applied the same response to the X10 'A All Off' response - and not only does it not work, but pressing the controller 'All On' button (incorrectly) turns OFF the room lights, and (correctly) turns ON the X10 A4 light! So now I have swapped the room lights response on the X10 response page to the X10 'A All On' response (and made the 'A All Off' a null response) - and it works! So it appears that something has swapped the 'All On' code with the 'All Off' code. I can live with it - it works! - but it it is an inconsistency that needs investigation? Thanks.
|
Posted: Friday Apr 24th, 2015 01:25 pm |
|
7th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Although I haven't tried every one, it looks as though NONE of the 'branch' codes will accept a negative offset. Attempting to manually set codes produces strange responses when you hit 'OK'. Branch codes change; text that isn't referenced anywhere appears - for example, "Branch 5" and the offsets change to zero. Apart from this, of course, there is no coding ability within Comfigurator to allow negative offsets. I find it difficult to believe that such a common programming construct that is clearly referenced in so many places in the Action Codes manual just doesn't work. Even a very simple three or four line "response" - set a counter with a non-zero value, decrement and branch back to the decrement instruction if not zero - just does not code nor work.
|
Posted: Friday Apr 24th, 2015 05:42 pm |
|
8th Post |
slychiu
Administrator
Joined: | Saturday Apr 29th, 2006 |
Location: | Singapore |
Posts: | 5498 |
Status: |
Offline
|
back to top
|
Branch negative is possible in the action codes. However the problem is Comfigurator does not have a suitable construct to handle this
If Then Else statements are supported which uses the positive branch actions
Branch negative requires Do While or For /Next in Comfigurator, otherwise even if you enter the action codes manualy, comfigurator does not know how to encode it.
This type of statement should be added in future but we need to study more
Does anyone else think this may be a good feature?
|
Posted: Saturday Apr 25th, 2015 03:47 am |
|
9th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Well, as I raised the issue, I think the programming ability of Comfort loses a great deal of flexibility by NOT having this structure. This is especially true as clearly the underlying code supports it! So having For - Next or While - Wend looping (or both!) would appear to me to be essential!
As an aside, is there any way the codes can be programmed without Comfigurator?
|
Posted: Saturday Apr 25th, 2015 06:02 am |
|
10th Post |
admin
Administrator
Joined: | Saturday Mar 3rd, 2007 |
Location: | Singapore |
Posts: | 1200 |
Status: |
Offline
|
back to top
|
You can enter action codes from the keypad by Engineer Menu Press F0 and engineer code (6789# by default)To to menu 3,6Enter Response Number and # keyenter the action codes terminated by 255
Refer to Engineer Programming Manualhttp://www.cytech.biz/engineer_menu_programming_manual.html
However if you write by Comfigurator it will write over itRead from Comfigurator will also not understand the actions
|
Posted: Wednesday Apr 29th, 2015 05:15 am |
|
11th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Referring to my previous post, it looks like probably all the X10 'All On' and 'All Off' codes are swapped. I have changed my X10 light from house-code A4 to C3 and changed all the response codes accordingly. However, I still need to use the C 'All On' response to turn the lights off!
I realise that X10 isn't flavour of the month, but where it exists, it can still be useful as I am proving. Can this anomaly be investigated, please? I would assume it could be corrected in a future firmware update?
|
Posted: Wednesday Apr 29th, 2015 09:16 am |
|
12th Post |
Posted: Thursday Apr 30th, 2015 05:13 am |
|
13th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Thanks for confirmation. I'll look forward to the firmware update.
|
Posted: Thursday Apr 30th, 2015 05:34 pm |
|
14th Post |
eborges
Member
Joined: | Tuesday Apr 27th, 2010 |
Location: | Portugal |
Posts: | 9 |
Status: |
Offline
|
back to top
|
I thik it would be a good addition to Comfigurator the possibility of using Do While or For /Next constructs.
They are a basic feature that can be found in any programing language.
I would certainly make use of them.
|
Posted: Thursday Apr 30th, 2015 05:45 pm |
|
15th Post |
Posted: Friday May 1st, 2015 05:31 am |
|
16th Post |
mikeinnc
Member
Joined: | Wednesday Mar 18th, 2015 |
Location: | Perth, Australia |
Posts: | 69 |
Status: |
Offline
|
back to top
|
Well, of course, I entirely agree with you! I find it amazing that a 'programmable' system that has the 'microcode' ability to support this construct doesn't have it at the 'higher language' level. Let's hope we get some more support from others to get this adopted.
Meanwhile, I have worked out a way to do this using 3 responses. In my specific case, I want to flash some lights three times. I have three responses which we will call Response1; Response2 and Response3.
Response1:
If NightTime <> 0 Then If Counter Counter013 <> 0 Then !CBus Grp 13 Set Counter051 = 3 Do Response2 End If End If
Response2:
Cbus2 UCM02 13 25 121 Wait 3 Seconds Using Timer25 Cbus2 UCM02 13 25 1 Wait 3 Seconds Using Timer25 Decrement Counter051 Do Response3
Response3:
If Counter Counter051 <> 0 Then Do Response2 End If
It works - but it is "messy" and we shouldn't have to go to this level!
|
|