Re: User Module vs. Simpl Symbols - File Size, Compile Time, and Resources
Sorry I'm not specifically addressing your question but it sounds like you could benefit from crosspoints here. That seems like a huge program for 29 zones, but of course I can't know that. I've never experienced compile times more than 2 minutes. I'll bet you have way more logic / signals than you really need to accomplish what you're doing. On Mon, Sep 17, 2012 at 11:20 AM, Jason Andersen <jandersen@...>wrote: **
User Module or Simpl Symbols as it relates to Program Size, Compile Time, and Resources Used.
I'm looking for some specifics here because I haven't figured out the best approach yet.
I have a module that I use to manage an AV zone. A while ago I thought it would be better organization to wrap it up in a User Module. After some time that module has grown in size and so has my compile times. As an experiment I took out the code in the module and placed it back in my program.
This program has 29 AV rooms and 6 interfaces, so there are 174 instances of this module.
When I made this change I noticed a few things.
Program Size Increased
So a file that was 4 MBs grew to just over 10 MBs and the only thing I changed was removing the module and placing the code that was in the module in the Simpl program.
Compile Time Decreased
For the 4 MB Simpl program that was using the User Modules the compile time was around 15 minutes.
For the 10 MB Simpl program that was not using modules but was using only Simpl logic symbols the compile time was only 2 minutes.
Resources Used Stayed The Same
CPU load and RAM used didn't seem to move.
What factors affect this? Do other symbols increase or decrease any of these changes? I'm using quite a few digital and analog buffers although for the most part they only have a few signals in each one. Do buffers with more inputs and outputs increase this? Or is it the number of buffers?
Any help would be great. Trying to figure out how to manage my programs as they get more complicated.
Jason Andersen
[Non-text portions of this message have been removed]
|
Thanks for the reply, it was very helpful. I may bug you later about your scheduler but that'll be down the road right now we are just trying to put together some options. Nate On Sep 14, 2012, at 8:33 PM, "gogolftoday" <grant@...> wrote: I personally have Rain8Net. It has no built-in programming, so it basically a glorified set of serial controlled relays - on/off/feedback. It took a little bit, but I created my own "scheduler" with different runtimes for drip zones vs. rotor heads. It also goes out to the weather channel and picks up precipitation forecasts and temperature ranges (freeze protection and longer runtimes for 80 degree+ overnight lows).
There is another one out there that I have seen integrated, but I can't remember the name off the top of my head.
--- In Crestron@..., "Nate" <soccerquist@...> wrote:
Hey Group,
This may be a really dumb question but I've got to ask cuz my boss asked me to find this out. Anyway does anyone know if its possible to control a Rainbird Sprinkler system model number ESP-LXME? I tried looking up the model on Rainbirds website but I couldn't find any information. Also if it's not possible to control that system is there a sprinkler system that is controllable?
Thanks everyone for all the help, Nate
[Non-text portions of this message have been removed]
|
Re: ipad landscape orientation locks upside down in wall dock (mobile pro g)
The problem is for some stupid reason the wall dock and the table dock are opposite of each other. The ipad goes into the wall dock one way and you have to flip it over to dock it into the table dock. horrible design.
toggle quoted message
Show quoted text
--- In Crestron@..., "Brendan McAlpine" <brendan@...> wrote: Yep, V2.00.42.00 does just that! Updated mine and came across the same problem. Set lock orientation to "none" on the app, and lock the iPad in the landscape orientation (correct way up).
--- In Crestron@..., "mtcolombo" <mtcolombo@> wrote:
hello all,
i am using crestron mobile pro g on an ipad2 and ipad3 with a crestron wall dock (left hinge & left ipad connect interface.) my design is landscape from vtproE.
my problem...i used to just 'lock' the entire ipad orientation for my landscape design. now, crestron has added the 'lock orientation' feature within the software. when i use this feature and turn off the ipad rotation lock, the crestron software locks the landscape orientation upside from the way the ipad is docked into the wall.
anyone else run into this problem? it should lock rotation in either landscape option, but most importantly at least in the SAME orientation of the crestron wall dock.
suggestions? solutions? is crestron working on correcting this?
thanks in advance, missy
|
TVOne 1T-VS-658 control via one-way serial via IR port.
I can control the device just fine via viewport directly from my computer, but cannot seem to get it to work via an IR port as serial on a CP2e.
I've tried replacing the driver in the program with no change, I can see the command being sent from Crestron when I hook the port into my PC via hyperterminal. Buad rate and associated data is correct in the program.
I've tried grounding Pin 2 on the scaler to Ground with no love either (and tried using signal to pin 2 as well for a test)
Any ideas why I can control it fine via a console program and not a one way IR serial port?
|
User Module vs. Simpl Symbols - File Size, Compile Time, and Resources
User Module or Simpl Symbols as it relates to Program Size, Compile Time, and Resources Used.
I'm looking for some specifics here because I haven't figured out the best approach yet.
I have a module that I use to manage an AV zone. A while ago I thought it would be better organization to wrap it up in a User Module. After some time that module has grown in size and so has my compile times. As an experiment I took out the code in the module and placed it back in my program.
This program has 29 AV rooms and 6 interfaces, so there are 174 instances of this module.
When I made this change I noticed a few things.
Program Size Increased
So a file that was 4 MBs grew to just over 10 MBs and the only thing I changed was removing the module and placing the code that was in the module in the Simpl program.
Compile Time Decreased
For the 4 MB Simpl program that was using the User Modules the compile time was around 15 minutes.
For the 10 MB Simpl program that was not using modules but was using only Simpl logic symbols the compile time was only 2 minutes.
Resources Used Stayed The Same
CPU load and RAM used didn't seem to move.
What factors affect this? Do other symbols increase or decrease any of these changes? I'm using quite a few digital and analog buffers although for the most part they only have a few signals in each one. Do buffers with more inputs and outputs increase this? Or is it the number of buffers?
Any help would be great. Trying to figure out how to manage my programs as they get more complicated.
Jason Andersen
|
Re: ipad landscape orientation locks upside down in wall dock (mobile pro g)
Yep, V2.00.42.00 does just that! Updated mine and came across the same problem. Set lock orientation to "none" on the app, and lock the iPad in the landscape orientation (correct way up).
toggle quoted message
Show quoted text
--- In Crestron@..., "mtcolombo" <mtcolombo@...> wrote: hello all,
i am using crestron mobile pro g on an ipad2 and ipad3 with a crestron wall dock (left hinge & left ipad connect interface.) my design is landscape from vtproE.
my problem...i used to just 'lock' the entire ipad orientation for my landscape design. now, crestron has added the 'lock orientation' feature within the software. when i use this feature and turn off the ipad rotation lock, the crestron software locks the landscape orientation upside from the way the ipad is docked into the wall.
anyone else run into this problem? it should lock rotation in either landscape option, but most importantly at least in the SAME orientation of the crestron wall dock.
suggestions? solutions? is crestron working on correcting this?
thanks in advance, missy
|
Been there :)
toggle quoted message
Show quoted text
--- In Crestron@..., Neil Dorin <neildorin@...> wrote: Haha,
Thanks for the correction Stig.
Poorly.formatted.code.example = iPad.Splus.edits + not.enough.sleep + hangover.from.wedding; //Equation to defend programmer's ego
-Neil
On Mon, Sep 17, 2012 at 5:02 AM, Stig <ska@...> wrote:
**
With all respect Neil, Don't use iPad to edit simpl+ code ;) The index counter must also be after the first occurance of "actor Name".
-Stig
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40 #ENABLE_TRACE
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames];//[maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { IF(semaphore = 0) { Semaphore = 1; while(len(RxData$)) {//assuming strings are like "<person job="Actor" name="Brandon Lee" />"
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) { sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp); IF(i>=1 && i <=maxnames && IsSignalDefined(Actor$[i]) ) // parse names if index <=10 and if signalout(i) is defined in simpl) { Actor$[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i] IF(i >= 1 && i < maxnames) {i = i + 1;} //increment index value if between 2 and 9 } } Semaphore = 0; } } }
Function Main() { Semaphore = 0;
}
--- In Crestron@..., Neil Dorin <neildorin@> wrote:
Here: //Based on the sample data you've given I'm making the assumption that you'll get all the names you're after in a single query. This code will parse up to 10 names and those names would be overwritten with the next query.
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames][maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
While(semaphore = 0) { Semaphore = 1;
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
IF(i >= 1 && < maxnames){i = i + 1}; //increment index value if between 2 and 9
//parse as usual:
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i]
Semaphore = 0;
} } }
You'll have to pardon any syntax errors as my iPad email app is not the best S+ text editor environment.
Hope that makes sense for you. This could also be done using a for loop but I thought you might understand this method more easily. You could also parse the name with a single mid statement and have no need to define sDump and save some memory but thats really irrelevant.
Ex. Actor$[i] = mid(sTemp, find("name=",sTemp) + 7,Len(sTemp) - ((find("/>", sTemp)-3) - (find("name=",sTemp))); //I'm almost sure to have missed a parenthesis but you get the idea.
-Neil Dorin
Sent from my iPad
On Sep 16, 2012, at 10:16 PM, "chrmac68" <chrmac68@> wrote:
Can you possibly give me an example of how to do this. I have tried so many ways all without success.
Thanks
--- In Crestron@..., Neil Dorin <neildorin@> wrote:
You're overwriting Actor1$ each time you parse a name. You need an
integer variable to track how many names you've already parsed and use that as the index of the string output array you want to assign it to.
-Neil Dorin
Sent from my iPhone
On 2012-09-16, at 6:09 PM, "Chris" <chrmac68@> wrote:
Sorry posted this in wrong place...
maybe im missing something here. in s+ <person job="Actor" name="Brandon Lee" /> <person job="Actor" name="Rochelle Davis" /> <person job="Actor" name="Jon Thompson" />
im doing this:
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1$=left(sTemp, find("/>", sTemp)-3);
}
My output is always Jon Thompson. How can i get it to pull out 1
at a time and
assign to Actor1$ Actor2$ etc.
Thanks
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
|
You'll just have to come out to the west coast Chip!
toggle quoted message
Show quoted text
On Mon, Sep 17, 2012 at 8:35 AM, chipmoodycs <cfm@...> wrote: Ahh, but some of us are gonna miss seeing you in NJ!
- Chip
--- In Crestron@..., Nathan Hesson <nhesson@...> wrote:
I'm confirmed for Nov 12th-14th in Cypress. No more 6 hour flight across the country!
On Sat, Sep 15, 2012 at 5:14 PM, lincster2010 <lincster2010@...>wrote:
The Northeast in the fall is definitely worth the drive.
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
It's not as bad as it seems - if you like to drive :-)
--- On Saturday, September 15, 2012 at 12:05 AM, Chip wrote:
Wow - *that's* a long drive!
- Chip
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
I drove last year, but I'm not sure if I'll do it again this
year or
not...
--- On Friday, September 14, 2012 at 10:21 PM, Chip wrote:
For anyone that's close enough that they *drive* to Rockleigh
coming
from the south, I highly recommend taking 287 North to the NY Throughway if at ALL possible. MUCH nicer drive than taking 95/Turnpike...
- Chip
--- In Crestron@..., "eagrubbs" <eagrubbs@> wrote:
You and me both. The farthest North I have been is DC. So
this
should be an experience in all shape forms and fashions.
--- In Crestron@..., "richard_leek"
<leek.richard@>
wrote:
I signed up for dec 5 - 7. Wanted October but have too much work. I sure do hope it's nice in NJ in December
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area.
Yahoo!
Groups Links
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area. Yahoo! Groups Links
|
Cypress, CA Nov 14 - 16.
As much as I have enjoyed the mother-ship in the past, its a long haul from Vancouver, Canada.
toggle quoted message
Show quoted text
--- In Crestron@..., Brett Vitaz <brett@...> wrote: Confirmed: Cypress, CA Nov 12 See you there!
On Mon, Sep 17, 2012 at 11:35 AM, chipmoodycs <cfm@...> wrote:
**
Ahh, but some of us are gonna miss seeing you in NJ!
- Chip
--- In Crestron@..., Nathan Hesson <nhesson@> wrote:
I'm confirmed for Nov 12th-14th in Cypress. No more 6 hour flight across the country!
On Sat, Sep 15, 2012 at 5:14 PM, lincster2010 <lincster2010@>wrote:
The Northeast in the fall is definitely worth the drive.
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
It's not as bad as it seems - if you like to drive :-)
--- On Saturday, September 15, 2012 at 12:05 AM, Chip wrote:
Wow - *that's* a long drive!
- Chip
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
I drove last year, but I'm not sure if I'll do it again this
year or
not...
--- On Friday, September 14, 2012 at 10:21 PM, Chip wrote:
For anyone that's close enough that they *drive* to Rockleigh
coming
from the south, I highly recommend taking 287 North to the NY Throughway if at ALL possible. MUCH nicer drive than taking 95/Turnpike...
- Chip
--- In Crestron@..., "eagrubbs" <eagrubbs@> wrote:
You and me both. The farthest North I have been is DC. So
this
should be an experience in all shape forms and fashions.
--- In Crestron@..., "richard_leek"
<leek.richard@>
wrote:
I signed up for dec 5 - 7. Wanted October but have too much work. I sure do hope it's nice in NJ in December
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area.
Yahoo!
Groups Links
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
|
hello all does anyone has the ir code for the planet iTV receiver box? thanks in advance
|
Re: Tstat change 74,3 degrees to 74
Someone already suggested that Chip :). But yes, that's one of the standard ways to deal with rounding number off and a lot easier than playing around with the remainder.
Geoff
toggle quoted message
Show quoted text
On Mon, Sep 17, 2012 at 10:18 AM, Chip <cfm@...> wrote: **
Can't you just add 5 to the initial value before DIVMODing it, or is my math off?
- Chip
--- In Crestron@..., "h2oskr2001" <h2oskr2001@...> wrote:
and if you do want to round, no S+ needed. It isn't that difficut to do 'SIMPL' rounding. Take the remainder from the divmod though an acomp, If greater than 5 add one to the quotient (abufs to select a 0 or 1 addend -> an asum) and use an aos to tigger the sequence.
|
Confirmed: Cypress, CA Nov 12 See you there! On Mon, Sep 17, 2012 at 11:35 AM, chipmoodycs <cfm@...> wrote: **
Ahh, but some of us are gonna miss seeing you in NJ!
- Chip
--- In Crestron@..., Nathan Hesson <nhesson@...> wrote:
I'm confirmed for Nov 12th-14th in Cypress. No more 6 hour flight across the country!
On Sat, Sep 15, 2012 at 5:14 PM, lincster2010 <lincster2010@...>wrote:
The Northeast in the fall is definitely worth the drive.
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
It's not as bad as it seems - if you like to drive :-)
--- On Saturday, September 15, 2012 at 12:05 AM, Chip wrote:
Wow - *that's* a long drive!
- Chip
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
I drove last year, but I'm not sure if I'll do it again this
year or
not...
--- On Friday, September 14, 2012 at 10:21 PM, Chip wrote:
For anyone that's close enough that they *drive* to Rockleigh
coming
from the south, I highly recommend taking 287 North to the NY Throughway if at ALL possible. MUCH nicer drive than taking 95/Turnpike...
- Chip
--- In Crestron@..., "eagrubbs" <eagrubbs@> wrote:
You and me both. The farthest North I have been is DC. So
this
should be an experience in all shape forms and fashions.
--- In Crestron@..., "richard_leek"
<leek.richard@>
wrote:
I signed up for dec 5 - 7. Wanted October but have too much work. I sure do hope it's nice in NJ in December
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area.
Yahoo!
Groups Links
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
|
Re: TPMC-4SMFD hard button feedback
I can concur 1000% with Lincoln with regards to the TPCS-4. Same "lags sometimes" when doing the most simplistic attempts at lighting buttons. (Whoda thunk that???)
Likewise, yes - you can access the "multi state" buttons individually through analogs on said device extender...
- Chip
toggle quoted message
Show quoted text
--- In Crestron@..., Lincoln King-Cliby <lincoln@...> wrote: The TPMC-4SM (and TPCS-4SM, not sure about the "D" version, though) do via the System3 Reserved Joins device extender with an analog value for each button (0 - off, 1 - green, 2 - red, IIRC)
Beware, though, I'm not sure why but changing the backlight color seems to be a particularly intensive task, especially on the TPCS. Depending on what else the touchpanel is doing at the moment it can range from "slight lag" to "OMG, it's not working! <beat> Oh, wait, there it goes!"
Needless to say, I have not found acceptable results with trying to use the backlight color as a "Yes, you pressed me!" indication. I have, however, in a few projects used it to indicate things like audio and video mute status. But again, be ware of the hardware limitations: I generally prefer to make mute buttons "blink" (driven by a common 0.5s/0.5s OSC) so they jump out at the user, this does not work well on the TP**-4SM family.
On the TPMC-4SM doing this tends to get the panel farther and farther behind so that after a few seconds the panel is so far behind that the observed blink rate is more like 1.0s/1.0s -- and the worst part is that it queues them up, so the button will continue to blink well after it's no longer being told to blink by the program.
So, in other words, don't try changing the color too frequently :)
-- Lincoln King-Cliby, CTS Sr. Systems Architect | Crestron Certified Master Programmer (Silver) ControlWorks Consulting, LLC V: 440.449.1100 x1107 | F: 440.449.1106 | I: Crestron Authorized Independent Programmer
-----Original Message----- From: Crestron@... [mailto:Crestron@...] On Behalf Of Neil Dorin Sent: Monday, September 17, 2012 1:32 AM To: Crestron@... Subject: Re: [Crestron] TPMC-4SMFD hard button feedback
IIRC the TPMC-4SM does not support individual led feedback for hard buttons. You can select green or red as the backlight colour and then turn the whole backlight on/off.
-Neil Dorin
Sent from my iPad
On Sep 16, 2012, at 10:50 PM, "ihaia09" <ihaia@...> wrote:
Hi Guys,
I am having a play with our campuses first TPMC-4SMFD and have gotten stuck on the feedback for the LED hardbuttons. I have limited experience with Crestron touch panels as all we have on campus TPSG-TPI's with different manufacturer touch panels so any help would be gladly appreciated.
The result I am after is to get the LED hardbuttons to illuminate individually dependant on feedback. Currently all i'm getting is all hard buttons illuminated constantly whilst the panel is awake :(. I presume this can be done as it mentions in a crestron document that the buttons can operate individually or globally. However I cannot find where this is configured.
Additionally I have not made this a core-3ui project as I need to keep a similar look to our existing user interfaces. Does it need to be a core-3ui project to get the outcome I want?
Thanks in advance for any help you can offer.
Cheers,
Ihaia
[Non-text portions of this message have been removed]
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area. Yahoo! Groups Links
|
Just say it was beta code. ;) You can get away with anything then.
toggle quoted message
Show quoted text
On Mon, Sep 17, 2012 at 8:23 AM, Neil Dorin <neildorin@...> wrote: Haha,
Thanks for the correction Stig.
Poorly.formatted.code.example = iPad.Splus.edits + not.enough.sleep + hangover.from.wedding; //Equation to defend programmer's ego
-Neil
On Mon, Sep 17, 2012 at 5:02 AM, Stig <ska@...> wrote:
**
With all respect Neil, Don't use iPad to edit simpl+ code ;) The index counter must also be after the first occurance of "actor Name".
-Stig
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40 #ENABLE_TRACE
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames];//[maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { IF(semaphore = 0) { Semaphore = 1; while(len(RxData$)) {//assuming strings are like "<person job="Actor" name="Brandon Lee" />"
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) { sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp); IF(i>=1 && i <=maxnames && IsSignalDefined(Actor$[i]) ) // parse names if index <=10 and if signalout(i) is defined in simpl) { Actor$[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i] IF(i >= 1 && i < maxnames) {i = i + 1;} //increment index value if between
2 and 9 } } Semaphore = 0; } } }
Function Main() { Semaphore = 0;
}
--- In Crestron@..., Neil Dorin <neildorin@...> wrote:
Here: //Based on the sample data you've given I'm making the assumption that you'll get all the names you're after in a single query. This code will parse up to 10 names and those names would be overwritten with the next query.
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames][maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
While(semaphore = 0) { Semaphore = 1;
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
IF(i >= 1 && < maxnames){i = i + 1}; //increment index value if between 2 and 9
//parse as usual:
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i]
Semaphore = 0;
} } }
You'll have to pardon any syntax errors as my iPad email app is not the best S+ text editor environment.
Hope that makes sense for you. This could also be done using a for loop but I thought you might understand this method more easily. You could also
parse the name with a single mid statement and have no need to define sDump
and save some memory but thats really irrelevant.
Ex. Actor$[i] = mid(sTemp, find("name=",sTemp) + 7,Len(sTemp) - ((find("/>", sTemp)-3) - (find("name=",sTemp))); //I'm almost sure to have
missed a parenthesis but you get the idea.
-Neil Dorin
Sent from my iPad
On Sep 16, 2012, at 10:16 PM, "chrmac68" <chrmac68@...> wrote:
Can you possibly give me an example of how to do this. I have tried so many ways all without success.
Thanks
--- In Crestron@..., Neil Dorin <neildorin@> wrote:
You're overwriting Actor1$ each time you parse a name. You need an
integer variable to track how many names you've already parsed and use that
as the index of the string output array you want to assign it to.
-Neil Dorin
Sent from my iPhone
On 2012-09-16, at 6:09 PM, "Chris" <chrmac68@> wrote:
Sorry posted this in wrong place...
maybe im missing something here. in s+ <person job="Actor" name="Brandon Lee" /> <person job="Actor" name="Rochelle Davis" /> <person job="Actor" name="Jon Thompson" />
im doing this:
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1$=left(sTemp, find("/>", sTemp)-3);
}
My output is always Jon Thompson. How can i get it to pull out 1
at a time and
assign to Actor1$ Actor2$ etc.
Thanks
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area. Yahoo! Groups Links
|
Ahh, but some of us are gonna miss seeing you in NJ!
- Chip
toggle quoted message
Show quoted text
--- In Crestron@..., Nathan Hesson <nhesson@...> wrote: I'm confirmed for Nov 12th-14th in Cypress. No more 6 hour flight across the country!
On Sat, Sep 15, 2012 at 5:14 PM, lincster2010 <lincster2010@...>wrote:
The Northeast in the fall is definitely worth the drive.
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
It's not as bad as it seems - if you like to drive :-)
--- On Saturday, September 15, 2012 at 12:05 AM, Chip wrote:
Wow - *that's* a long drive!
- Chip
--- In Crestron@..., "Tony Golden" <mrgolden@> wrote:
I drove last year, but I'm not sure if I'll do it again this year or not...
--- On Friday, September 14, 2012 at 10:21 PM, Chip wrote:
For anyone that's close enough that they *drive* to Rockleigh
coming
from the south, I highly recommend taking 287 North to the NY Throughway if at ALL possible. MUCH nicer drive than taking 95/Turnpike...
- Chip
--- In Crestron@..., "eagrubbs" <eagrubbs@> wrote:
You and me both. The farthest North I have been is DC. So this should be an experience in all shape forms and fashions.
--- In Crestron@..., "richard_leek" <leek.richard@>
wrote:
I signed up for dec 5 - 7. Wanted October but have too much work. I sure do hope it's nice in NJ in December
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area. Yahoo! Groups Links
[Non-text portions of this message have been removed]
|
Re: Tstat change 74,3 degrees to 74
Yeah - what he said. :)
(You beat me to it - damn Yahoo! Groups "update")
- Chip
toggle quoted message
Show quoted text
--- In Crestron@..., Geoffrey Reynolds <greynlds@...> wrote: Another way to deal with rounding is to add 5 to the number before sending it through the DIVMOD. For example, 740-744 would become 745-749 and end up as 74, while 745-749 would become 750-754 and end up as 75.
Geoff
On Sun, Sep 16, 2012 at 6:01 PM, Jon Spackman <fueler1@...> wrote:
**
Thanks all for the answers I will try this rounding in simpl and report my results.
Thanks again for all the replies
[Non-text portions of this message have been removed]
|
Re: Lifesize stops communicating
What latest modules? Did they actually release modules for the 220 series?
toggle quoted message
Show quoted text
On Mon, Sep 17, 2012 at 5:45 AM, Mark Delzer <mdelzer@...> wrote: I have a system with an Express 220 using the latest modules over TCP/IP and currently I have had zero issues. I don't have the code in front of me but I believe I am only connecting to it if it is in use.
Mark
On Sun, Sep 16, 2012 at 10:46 PM, stl_programmer <bendossip@...
wrote: **
I realize this is an old thread, but I'm wondering if other people are still having issues controlling Lifesize systems reliably. I have a customer that has a Lifesize Express 220 and claims that twice in the past
month the control system has stopped communicating with the Lifesize system. The customer has stated that in order to fix the issue they unplugged the usb to serial dongle and then plugged it back in and everything worked again. The usb to serial dongle is one that was on Lifesize's approved list. I'm just trying to find out if anyone else has had similar issues and how they have resolved/worked around them.
Thanks!
--- In Crestron@..., "wretaudio" <wretaudio@...> wrote:
I just finished my work around for the LifeSize communication problem.
I
called LifeSize to let them know the issue is still there even after updating to the latest firmware which they told me would fix it. They told
me that I was the only one that has ever called in with this problem and that I would have to get further control support directly from Crestron or
the LifeSize distributor. What in the world is that all about?! LifeSize seems to have no problem telling me it can be controlled by Crestron, but no one seems to want to support it. I guess you're just on your own when it
comes to controlling LifeSize. I need to find a different line of VTC gear
to spec for the next job. Goodbye LifeSize.
--- In Crestron@..., Phil Bridges <gravityhammer@> wrote:
I'm working with a client-furnished LifeSize Room that the client
says
stops communicating with the Crestron processor after X amount of time. Allegedly, a reboot of the LifeSize unit doesn't resume communications, but a reboot of the processor does. I'm using the Crestron Modules (plus Chip's extra remote keys module).
Has anybody here seen this happening?
------------------------------------
Check out the Files area for useful modules, documents, and drivers.
A contact list of Crestron dealers and programmers can be found in the Database area. Yahoo! Groups Links
|
Re: Tstat change 74,3 degrees to 74
There was a tstat rounding module already in the files section. Been there since 2004.
TB
toggle quoted message
Show quoted text
--- In Crestron@..., Jon Spackman <fueler1@...> wrote: Thanks all, I did the combo of Most suggestions and used a asum to add 5, then into a divmod and the output is a perfect 2- digit number like me old Tstat and work great.
Thanks for all the replies, I love this group.
Sent from my pocket computer
|
Haha, Thanks for the correction Stig. Poorly.formatted.code.example = iPad.Splus.edits + not.enough.sleep + hangover.from.wedding; //Equation to defend programmer's ego -Neil On Mon, Sep 17, 2012 at 5:02 AM, Stig <ska@...> wrote: **
With all respect Neil, Don't use iPad to edit simpl+ code ;) The index counter must also be after the first occurance of "actor Name".
-Stig
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40 #ENABLE_TRACE
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames];//[maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { IF(semaphore = 0) { Semaphore = 1; while(len(RxData$)) {//assuming strings are like "<person job="Actor" name="Brandon Lee" />"
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) { sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp); IF(i>=1 && i <=maxnames && IsSignalDefined(Actor$[i]) ) // parse names if index <=10 and if signalout(i) is defined in simpl) { Actor$[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i] IF(i >= 1 && i < maxnames) {i = i + 1;} //increment index value if between 2 and 9 } } Semaphore = 0; } } }
Function Main() { Semaphore = 0;
}
--- In Crestron@..., Neil Dorin <neildorin@...> wrote:
Here: //Based on the sample data you've given I'm making the assumption that you'll get all the names you're after in a single query. This code will parse up to 10 names and those names would be overwritten with the next query.
#DEFINE_CONSTANT maxnames 10 #DEFINE_CONSTANT maxlength 40
Digital_Input Get_Names; Buffer_Input RxData$[1000]; String_Output Actor$[maxnames][maxlength]; //Define an output array of 10 outputs, each up to 40 bytes in length
Integer i; //Define a global integer as the index
Push Get_Names { i = 1; //reset index to 1 when new request for name is sent. }
Change RxData$ { Integer semaphore; //Define a semaphore to prevent re-entrancy String sTemp[100], sDump[50];
While(semaphore = 0) { Semaphore = 1;
sTemp = Gather("/>", RxData$); //this will remove each line from the buffer to be parsed individually
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
IF(i >= 1 && < maxnames){i = i + 1}; //increment index value if between 2 and 9
//parse as usual:
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1[i]=left(sTemp, find("/>", sTemp)-3); //assign the parsed string to the output specified by the index [i]
Semaphore = 0;
} } }
You'll have to pardon any syntax errors as my iPad email app is not the best S+ text editor environment.
Hope that makes sense for you. This could also be done using a for loop but I thought you might understand this method more easily. You could also parse the name with a single mid statement and have no need to define sDump and save some memory but thats really irrelevant.
Ex. Actor$[i] = mid(sTemp, find("name=",sTemp) + 7,Len(sTemp) - ((find("/>", sTemp)-3) - (find("name=",sTemp))); //I'm almost sure to have missed a parenthesis but you get the idea.
-Neil Dorin
Sent from my iPad
On Sep 16, 2012, at 10:16 PM, "chrmac68" <chrmac68@...> wrote:
Can you possibly give me an example of how to do this. I have tried so many ways all without success.
Thanks
--- In Crestron@..., Neil Dorin <neildorin@> wrote:
You're overwriting Actor1$ each time you parse a name. You need an
integer variable to track how many names you've already parsed and use that as the index of the string output array you want to assign it to.
-Neil Dorin
Sent from my iPhone
On 2012-09-16, at 6:09 PM, "Chris" <chrmac68@> wrote:
Sorry posted this in wrong place...
maybe im missing something here. in s+ <person job="Actor" name="Brandon Lee" /> <person job="Actor" name="Rochelle Davis" /> <person job="Actor" name="Jon Thompson" />
im doing this:
IF(FIND("person job=\x22Actor\x22 name=\x22",sTemp)) {
sDump = remove("person job=\x22Actor\x22 name=\x22", sTemp);
Actor1$=left(sTemp, find("/>", sTemp)-3);
}
My output is always Jon Thompson. How can i get it to pull out 1
at a time and
assign to Actor1$ Actor2$ etc.
Thanks
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
|
Confirmed Oct 17-19 in NJ.
toggle quoted message
Show quoted text
--- In Crestron@..., "eagrubbs" <eagrubbs@...> wrote: Waiting on confirmation, but trying to set for Dec 3-5.
--- In Crestron@..., "mcqsack" <mqsack@> wrote:
Session #2...Oct 17-19
Bring on the ###...
--- In Crestron@..., "Chip" <cfm@> wrote:
Nope.
--- In Crestron@..., "eagrubbs" <eagrubbs@> wrote:
Has anyone got their invite yet? I was told they were suppose to go out the first week of September.
|