¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io
Date

Re: HDMI Extender Suggestions

 

What is the distance you are extending the signal, and what resolution are you attempting to?use?


On Mon, May 23, 2022, 5:13 PM Jonathan Troutman <jonathan@...> wrote:
Does anyone have any HDMI extenders they've had good luck with? We've used Crestron's HD-EXT3 systems, but over the last couple years, we've had a disappointing failure rate (and these are typically out of state projects). So we're curious about other options, other manufactures, etc... The project budgets probably wouldn't accommodate DM or NVX?

Our application is apartment amenities areas. We typically have a bunch of cable boxes in the rack. We send the video and TV control over the HDMI extender to the TVs across the facility. We've thought about trying to put the cable boxes at the TV locations, but the boxes are often too large and it introduces other TV control considerations.

Any thoughts? Suggestions?


Re: HDMI Extender Suggestions

 

¿ªÔÆÌåÓý

AVPro Edge - just so solid. Not inexpensive but seems to hold up very well.


On May 23, 2022, at 2:13 PM, Jonathan Troutman <jonathan@...> wrote:

?Does anyone have any HDMI extenders they've had good luck with? We've used Crestron's HD-EXT3 systems, but over the last couple years, we've had a disappointing failure rate (and these are typically out of state projects). So we're curious about other options, other manufactures, etc... The project budgets probably wouldn't accommodate DM or NVX?

Our application is apartment amenities areas. We typically have a bunch of cable boxes in the rack. We send the video and TV control over the HDMI extender to the TVs across the facility. We've thought about trying to put the cable boxes at the TV locations, but the boxes are often too large and it introduces other TV control considerations.

Any thoughts? Suggestions?


HDMI Extender Suggestions

 

Does anyone have any HDMI extenders they've had good luck with? We've used Crestron's HD-EXT3 systems, but over the last couple years, we've had a disappointing failure rate (and these are typically out of state projects). So we're curious about other options, other manufactures, etc... The project budgets probably wouldn't accommodate DM or NVX?

Our application is apartment amenities areas. We typically have a bunch of cable boxes in the rack. We send the video and TV control over the HDMI extender to the TVs across the facility. We've thought about trying to put the cable boxes at the TV locations, but the boxes are often too large and it introduces other TV control considerations.

Any thoughts? Suggestions?


Re: Warning 153 error message when compiling simpl program #crestron

 

You still have the crestron database version in the program, indicated by the "(cm)"

For each module giving you trouble:
1) "Import Crestron Module" to edit it
2) Save it into your program folder as something like "Fusion SSI New or Old Program engine v1.1b.usp"
3) Check the 2-series box and recompile.
4) In your simpl program, drop in the new version from project modules, copy signals over, then delete the "(cm)" version.


Warning 153 error message when compiling simpl program #crestron

 

Hello all,

I am getting the error message below when I compile a code that was written a while back on a machine that has the latest simpl windows program. When I click on the error I get taken to the help file which tells me I have to edit the module's header. Unfortunately when I right click on the Fusion symbol in question the Edit Header is grayed out. So I opened the module under a different instance and then made the header changes to a 2 series (since its a DMPS-100) and saved it. Since I couldnt save the changes on the symbol itself it forced to save it as a new program. I placed the symbol in my project folder. I then closed out of my program and reopened it copied the symbol onto my programs. I made the necessary changes on the symbol and then recompiled but I still get this message below. I then removed the old Fusion symbols and added the updated versions but I still get the same message after compiling. Anything that I am doing wrong here? Im afraid if I upload this to a Fusion environment I wont be able to see the room.


WARNING(153) ?
??????? ** Symbol [Fusion SSI New or Old Program engine v1.1 (cm)] was commented out because it is excluded from this program/module.? If the commented symbol is a user/project module, edit the module and reconcile the Target.


Re: HTML5 development for iPad

 
Edited

Bill Gordon
2:13am ?
Did you ever post a demo project this sounds pretty good . I setup a raspberry pi relaying HTML Java I/O and I would love to see what you have done.
If you are referring to my demo on doing HTML5 on a Raspberry Pi,? yes I did.? See my github page at .? In the documentation, there is a reference to a YouTube video if you prefer to watch instead of read.

There is also a follow up video and using a simple UDP socket to talk to other programs or devices.? In that video I demo about how to use Node JS as a front end web server for a Python program.? .? But in reality, it was base on a program I wrote to do an HTML5 web interface for my Crestron MP2E processor using 15+ year old Crestron software back when Crestron's licensing terms were very simple.? All you need to do is write a very simple SIMPL+ JSON processor connected it to a SIMPL UDP socket to interface to the Raspberry Pi.? Below is the SIMPL+ code I used to do that.

/*
? SIMPL+ Module Information
? (Fill in comments below)

/*
? Compiler Directives
*/

#DEFINE_CONSTANT??? TOTALDIGITALS??? ??? 100
#DEFINE_CONSTANT??? TOTALANALOGS??? ??? 10
#DEFINE_CONSTANT??? TOTALSERIALS??? ??? 10

#DEFINE_CONSTANT Quote "\x22"
#DEFINE_CONSTANT Backslash "\x5C"
#DEFINE_CONSTANT LF "\x0A"
#DEFINE_CONSTANT CR "\x0D"
#DEFINE_CONSTANT Tab "\x09"
#DEFINE_CONSTANT FF "\x0C"
#DEFINE_CONSTANT Backspace "\x08"




//#CATEGORY "0"
#DEFAULT_VOLATILE
// #PRINT_TO_TRACE
// #DIGITAL_EXPAND
// #ANALOG_SERIAL_EXPAND
// #OUTPUT_SHIFT
// #HELP_PDF_FILE ""
// #DEFAULT_NONVOLATILE
#ENABLE_STACK_CHECKING
//#ENABLE_TRACE

#HELP_BEGIN

This program follows the GPL3 License:

??? This program is free software: you can redistribute it and/or modify
??? it under the terms of the GNU General Public License as published by
??? the Free Software Foundation, either version 3 of the License, or
??? (at your option) any later version.

??? This program is distributed in the hope that it will be useful,
??? but WITHOUT ANY WARRANTY; without even the implied warranty of
??? MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.? See the
??? GNU General Public License for more details.

??? You should have received a copy of the GNU General Public License
??? along with this program.? If not, see <https://www.gnu.org/licenses/>.

Summary:

?? This module will only decode single JSON key:value pairs.
?? If will not decode more complicated multiple layer key:value pairs.

?? Module automatically adds/deletes escape sequences to/from JSON strings.

INPUTS:

?? ?Debug??? D??? Enables debug info to be printed to the console.

?? ?Refresh??? D??? Resend all non-zero Digital, Analog, and Serial inputs to
?? ???? ??? ??? the webserver via the JSON_TX$ output.

#HELP_END



????????????????????? ?
DIGITAL_INPUT
?? ?Debug,
?? ?Refresh,
?? ?_SKIP_,
?? ?Dig_In[TOTALDIGITALS];

BUFFER_INPUT
?? ?_SKIP_,
?? ?JSON_RX$[2000];

?? ?
ANALOG_INPUT
?? ?_SKIP_,
?? ?Ana_In[TOTALANALOGS];


?? ?
STRING_INPUT
?? ?_SKIP_,
?? ?Ser_In$[TOTALSERIALS][256];



DIGITAL_OUTPUT
?? ?_SKIP_,
?? ?NewClient,
?? ?_SKIP_,
?? ?DigOut[TOTALDIGITALS];

STRING_OUTPUT
?? ?_SKIP_,
?? ?JSON_TX$;
?? ?
?? ?
ANALOG_OUTPUT
?? ?_SKIP_,
?? ?AnaOut[TOTALANALOGS];
?? ?
STRING_OUTPUT
?? ?_SKIP_,
?? ?SerOut$[TOTALSERIALS];


INTEGER
?? ?LastDigPress,
?? ?Semaphore;

STRING ??? SerialStorage$[TOTALSERIALS][256];


CHANGE JSON_RX$
???? {???
?? ?INTEGER Value, Index;
?? ?STRING JSON_PAIR$[512];
?? ?STRING JSON_KEY$[512];
?? ?STRING JSON_VALUE$[512];
?? ?STRING JSON_TRASH[512];

?????????? ?
??? if(Semaphore = 0)
?? ???? {
?? ???? Semaphore = 1;
?? ???? if (Debug) print("processing\n");
?? ???? while(find("}", JSON_RX$) > 0)
?? ???? ??? {
?? ???? ??? JSON_PAIR$ = remove("}", JSON_RX$);
?? ???? ??? Index = find("{", JSON_PAIR$);
?? ???? ??? if(Index > 0)
?? ???? ??? ??? {
?? ???? ??? ??? JSON_PAIR$ = mid(JSON_PAIR$,Index,len(JSON_PAIR$));
?? ???? ??? ??? if (Debug) print("JSON_PAIR$=%s\n",JSON_PAIR$);
?? ???? ??? ??? JSON_VALUE$ = JSON_PAIR$;

?? ???? ??? ??? // Find JSON Key
?? ???? ??? ??? JSON_KEY$ = remove(":", JSON_VALUE$);??? ??? ??? ???
?? ???? ??? ??? JSON_TRASH = remove(Quote, JSON_KEY$);
?? ???? ??? ??? JSON_KEY$ = remove(Quote, JSON_KEY$);
?? ???? ??? ??? Index = len(JSON_KEY$);
?? ???? ??? ??? if (Index>2) {JSON_KEY$ = left(JSON_KEY$, Index-1);}
?? ???? ??? ??? ??? ??? else {JSON_KEY$ = "";}
?? ???? ??? ??? if (Debug) print("JSON_KEY$=%s\n",JSON_KEY$);

?? ???? ??? ??? // Find JSON VALUE
?? ???? ??? ??? JSON_VALUE$ = left(JSON_VALUE$,len(JSON_VALUE$)-1); // remove trailing }
?? ???? ??? ??? if (Debug) print("JSON_VALUE$=%s\n",JSON_VALUE$);

??????????????? // Digital signal
?? ???? ??? ??? if (left(JSON_KEY$, 1) = "D") // this is a Digital signal
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? index = atoi(JSON_KEY$);
?? ???? ??? ??? ??? if ((Index) && (Index <= TOTALDIGITALS))
?? ???? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? Value = atoi(JSON_VALUE$);
?? ???? ??? ??? ??? ??? switch (Value)
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? case (0) :
?? ???? ??? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? ??? // Test if button is action. If not, release the last button
?? ???? ??? ??? ??? ??? ??? ??? // This is in class some slides off the button while holding it
?? ???? ??? ??? ??? ??? ??? ??? if (DigOut[Index]) DigOut[Index] = 0;
?? ???? ??? ??? ??? ??? ??? ??? else if(LastDigPress) DigOut[LastDigPress] = 0;
???? ??? ??? ??? ??? ??? ??? ??? LastDigPress = 0;
?? ???? ??? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ??? ??? case (1) :
?? ???? ??? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? ??? DigOut[Index] = 1;
?? ???? ??? ??? ??? ??? ??? ??? LastDigPress = Index;
?? ???? ??? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ??? ??? case (2) :
?? ???? ??? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? ??? DigOut[Index] = 1;
?? ???? ??? ??? ??? ??? ??? ??? processlogic();
?? ???? ??? ??? ??? ??? ??? ??? DigOut[Index] = 0;
?? ???? ??? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ??? }
?? ???? ??? ??? ??? }

?? ???? ??? ??? // Analog Signal
?? ???? ??? ??? else if (left(JSON_KEY$, 1) = "A") // this is a Analog signal
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? index = atoi(JSON_KEY$);
?? ???? ??? ??? ??? if ( (Index) && (Index <= TOTALANALOGS) )
?? ???? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? Value = atoi(JSON_VALUE$);
?? ???? ??? ??? ??? ??? AnaOut[Index] = atoi(JSON_VALUE$);
?? ???? ??? ??? ??? ??? }
?? ???? ??? ??? ??? }

?? ???? ??? ??? //Serial signal
?? ???? ??? ??? else if (left(JSON_KEY$, 1) = "S") // this is a Serial signal
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? index = atoi(JSON_KEY$);
?? ???? ??? ??? ??? if ( (Index) && (Index <= TOTALSERIALS) )
?? ???? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? JSON_TRASH = remove(Quote, JSON_Value$);
?????????? ?
?? ???? ??? ??? ??? ??? // Convert Backspace escape sequences
?? ???? ??? ??? ??? ??? Value = find("\\b" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + Backspace + right(JSON_Value$, len(JSON_Value$)- (Value+1) );
?? ???? ??? ??? ??? ??? ??? Value = find("\\b", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }

?? ???? ??? ??? ??? ??? // Convert FormFeed escape sequences
?? ???? ??? ??? ??? ??? Value = find("\\f" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + FF + right(JSON_Value$, len(JSON_Value$)- (Value+1) );
?? ???? ??? ??? ??? ??? ??? Value = find("\\f", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }
??????????????????????? ?
?? ???? ??? ??? ??? ??? // Convert LineFeed escape sequences
?? ???? ??? ??? ??? ??? Value = find("\\n" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + LF + right(JSON_Value$, len(JSON_Value$)- (Value+1) );
?? ???? ??? ??? ??? ??? ??? Value = find("\\n", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }

?? ???? ??? ??? ??? ??? // Convert Carriage Return escape sequences
?? ???? ??? ??? ??? ??? Value = find("\\r" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + CR + right(JSON_Value$, len(JSON_Value$)-(Value+1) );
?? ???? ??? ??? ??? ??? ??? Value = find("\\r", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }

?????????????????????? ?
?? ???? ??? ??? ??? ??? // Convert Tab escape sequences
?? ???? ??? ??? ??? ??? Value = find("\\t" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + Tab + right(JSON_Value$, len(JSON_Value$)- (Value+1) );
?? ???? ??? ??? ??? ??? ??? Value = find("\\t", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }


?? ???? ??? ??? ??? ??? // Convert Quote escape sequences to quote
?? ???? ??? ??? ??? ??? Value = find("\x5C22" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + right(JSON_Value$, len(JSON_Value$)- Value);
?? ???? ??? ??? ??? ??? ??? Value = find("\x5C22", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }

? ??? ??? ??? ??? ??? ??? // Convert Backslash escape sequences to Backslash
?? ???? ??? ??? ??? ??? Value = find("\x5C5C" , JSON_Value$);
?? ???? ??? ??? ??? ??? while (Value)???
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$,Value-1) + right(JSON_Value$, len(JSON_Value$)- Value);
?? ???? ??? ??? ??? ??? ??? Value = find("\x5C5C", JSON_Value$, Value+2);
?? ???? ??? ??? ??? ??? ??? }


?? ???? ??? ??? ??? ??? // find end of line
?? ???? ??? ??? ??? ??? Value = 0;
?? ???? ??? ??? ??? ??? while (find(Quote, JSON_Value$, Value))
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? Value = find(Quote, JSON_Value$, Value);
?? ???? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ??? // Removed trailing quote
?? ???? ??? ??? ??? ??? if (Value) JSON_Value$ = left(JSON_Value$, Value-1);
?? ???? ??? ??? ??? ??? if (len(JSON_Value$) > 2)
?? ???? ??? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? ??? JSON_Value$ = left(JSON_Value$, len(JSON_Value$)-1);
?? ???? ??? ??? ??? ??? ??? SerOut$[Index] = JSON_VALUE$;
?? ???? ??? ??? ??? ??? ??? }
?? ???? ??? ??? ??? ???

?? ???? ??? ??? ??? ??? }
?? ???? ??? ??? ??? }



?? ???? ??? ??? else if (left(JSON_KEY$, 1) = "") // this is a null signal
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? // Release occurred over a non button area of screen.? Release previously pressed button
?? ???? ??? ??? ??? // in case this is the result of finger sliding off of button.
?? ???? ??? ??? ??? if ((LastDigPress) && (atoi(JSON_VALUE$) = 0) )
?? ???? ??? ??? ??? ??? {
?? ???? ??? ??? ??? ??? DigOut[LastDigPress] = 0;
?? ???? ??? ??? ??? ??? LastDigPress = 0;
?? ???? ??? ??? ??? ??? }

?? ???? ??? ??? ??? }

?? ???? ??? ??? else if (find("NewClient",JSON_KEY$)) // A newClient
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? NewClient = 1;
?? ???? ??? ??? ??? processlogic();
?? ???? ??? ??? ??? NewClient = 0;
?? ???? ??? ??? ??? }

?? ???? ??? ??? else if ((LastDigPress) && (JSON_VALUE$ = "0") )
?? ???? ??? ??? ??? {
?? ???? ??? ??? ??? // Release occurred over a non button area of screen.? Release previously pressed button
?? ???? ??? ??? ??? // in case this is the result of finger sliding off of button.
?? ???? ??? ??? ??? DigOut[LastDigPress] = 0;
?? ???? ??? ??? ??? LastDigPress = 0;
?? ???? ??? ??? ??? }
?????????????? }
?? ???? ??? processlogic();
?? ???? ??? } // End of while(find("}", JSON_RX$) > 0)
?? ???? Semaphore = 0;
?? ???? print("end process\n");
?? ????
?? ???? }? // End of if(Semaphore = 0)
?? ?} // End of CHANGE JSON_RX$

PUSH Refresh
?? ?{
?? ?INTEGER
?? ???? Value,
?? ???? Index;
?? ?STRING TempStr$[255];

?? ?for (Index = 1 to TOTALDIGITALS)
?? ???? {
?? ???? if (Dig_In[Index])
?? ???? if ( (IsSignalDefined(Dig_In[Index])) && (Dig_In[Index]) )
?? ???? ??? {
?? ???? ??? makestring(TempStr$,"%sD%u%s:1",Quote,Index,Quote);
?? ???? ??? TempStr$ = "{" + TempStr$ + "}"; // workaround for Series3 compiler problem with braces.
?? ???? ??? JSON_TX$ = TempStr$;
?? ???? ??? processlogic();
?? ???? ??? }
?? ???? }
?? ?for (Index = 1 to TOTALANALOGS)
?? ???? {
?? ???? if ( (IsSignalDefined(Ana_In[Index])) && (Ana_In[Index]) )
?? ???? ??? {
?? ???? ??? Value = Ana_In[Index];
?? ???? ??? makestring(TempStr$,"%sA%u%s:%u",Quote,Index,Quote,Value);
?? ???? ??? TempStr$ = "{" + TempStr$ + "}"; // workaround for Series3 compiler problem with braces.
?? ???? ??? JSON_TX$ = TempStr$;
?? ???? ??? processlogic();
?? ???? ??? }
?? ???? }

?? ?for (Index = 1 to TOTALSERIALS)
?? ???? {
?? ???? if ( (IsSignalDefined(Ser_In$[Index])) && (len(Ser_In$[Index]) )? )
?? ???? ??? {
?? ???? ??? JSON_TX$ = SerialStorage$[Index];
?? ???? ??? processlogic();
?? ???? ??? }
?? ???? }
?? ?}

CHANGE Dig_In??? ??? {
?? ?INTEGER Index;
?? ?STRING TempStr$[255];
?? ?
?? ?Index = getlastmodifiedarrayindex();
?? ?if (Dig_In[Index])
?? ???? {
?? ???? makestring(TempStr$,"%sD%u%s:1",Quote,Index,Quote);
?? ???? }
?? ?else
?? ???? {
?? ???? makestring(TempStr$,"%sD%u%s:0",Quote,Index,Quote);
?? ???? }
?? ?TempStr$ = "{" + TempStr$ + "}"; // workaround for Series3 compiler problem with braces.
?? ?if (Debug) print("Sending JSON:%s\n",TempStr$);
?? ?JSON_TX$ = TempStr$;
?? ?processlogic();
?? ?}
?? ?
CHANGE Ana_In
?? ?{
?? ?INTEGER
?? ???? Value,
?? ???? Index;
?? ?STRING TempStr$[255];???

?? ?Index = getlastmodifiedarrayindex();
?? ?Value = Ana_In[Index];
?? ?makestring(TempStr$,"%sA%u%s:%u",Quote,Index,Quote,Value);
?? ?TempStr$ = "{" + TempStr$ + "}"; // workaround for Series3 compiler problem with braces.
?? ?if (Debug) print("Sending JSON:%s\n",TempStr$);
?? ?JSON_TX$ = TempStr$;

?? ?}

?? ?
CHANGE Ser_In$
?? ?{
?? ?INTEGER
?? ???? Value,
?? ???? Index;
?? ?STRING TempStr$[255];???

?? ?
?? ?Index = getlastmodifiedarrayindex();
?? ?TempStr$ = Ser_In$[Index];

?? ?// Replaced backslash with \\
?? ?Value = find(Backslash ,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + Backslash + right(TempStr$, len(TempStr$) - (Value-1) );
?? ???? Value = find(Quote,TempStr$, Value+2);
?? ???? }
?
?? ?// Replaced Quote with \"
?? ?Value = find(Quote,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + Backslash + right(TempStr$, len(TempStr$) - (Value-1) );
?? ???? Value = find(Quote,TempStr$, Value+2);
?? ???? }

??? // Replaced LineFeed with \n"
?? ?Value = find(LF,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + "\\n" + right(TempStr$, len(TempStr$) - (Value) );
?? ???? Value = find(LF,TempStr$, Value+2);
?? ???? }
? ?
?? ?// Replaced Carrage Return with \r"
?? ?Value = find(CR,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + "\\r" + right(TempStr$, len(TempStr$) - (Value) );
?? ???? Value = find(CR,TempStr$, Value+2);
?? ???? }
?? ?
?? ?// Replaced Tab with \t"
?? ?Value = find(Tab,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + "\\t" + right(TempStr$, len(TempStr$) - (Value) );
?? ???? Value = find(Tab,TempStr$, Value+2);
?? ???? }
?? ?
?? ?// Replaced FormFeed with \f"
?? ?Value = find(FF,TempStr$);
?? ?while (Value)
?? ???? {
?? ???? TempStr$ = left(TempStr$,Value-1) + "\\f" + right(TempStr$, len(TempStr$) - (Value) );
?? ???? Value = find(FF,TempStr$, Value+2);
?? ???? }

?? ?makestring(TempStr$,"%sS%u%s:%s%s%s",Quote,Index,Quote,Quote,TempStr$,Quote);
?? ?TempStr$ = "{" + TempStr$ + "}"; // workaround for Series3 compiler problem with braces.
?? ?if (Debug) print("Sending JSON:%s\n",TempStr$);
?? ?JSON_TX$ = TempStr$;
?? ?SerialStorage$[Index] = TempStr$;

?? ?}
?? ?
FUNCTION Main()
?? ?{
?? ?INTEGER Index;

?? ?Semaphore = 0;

?? ?for (Index = 1 to TOTALSERIALS)
?? ???? {
?? ???? SerialStorage$[Index] =??? "";
?? ???? }

?? ?if ( WaitForInitializationComplete() < 0 )
??????? {
??????? print("Webserver_JSON_Processor: Error waiting for initialization complete\n");
??????? return;
??????? }

?? ????
?? ?}











Poly SSH

 

I know no one uses hard codecs anymore but we are seeing a strange issue. Client has Poly Group G7500 codecs everywhere and we are using the Group Series Driver 4.0 to control. Basically what will happen at completely random times is the module will change from Logged in to Connected (4d to 2d) and never be able to relogin to the processor again without a program reboot. This is using unsecure SSH as the connection. Has anyone ever seen something like this?


Re: HTML5 development for iPad

 

Crestron One App is?a HTML5 app.? Make sure you have the latest version; older versions didn't have the HTML5 option.? Inside the app you have to choose to use it as HTML5.? There is another thread on groups on how to setup a basic HTML5 project with SIMPL and Visual Studio Code.? I have done it and it works.? If you have zero web development skill the learning curve will be high.? The nice thing about this demo is it will get you started with a working demo to see how it works.? Crestron has a demo on their site that is much more complicated to understand but has more features.??


Jupiter Video Wall Processor J600 #cp4

 

Hi Everyone,
Have anyone worked with Jupiter video wall J600 with Crestron CP3 or CP4?
I am stuck in finding the right module, as the one on the Crestron application market is very old.


Re: RSS Feed stopped working on TSW-1050

 

¿ªÔÆÌåÓý

Unfortunately, i don?t have control over the server side as it is a public newsserver on the Internet.

Cheers,

Thorsten

?

Von: [email protected] <[email protected]> Im Auftrag von CO Cowboy
Gesendet: Montag, 23. Mai 2022 04:43
An: [email protected]
Betreff: Re: [crestron] RSS Feed stopped working on TSW-1050

?

I had something like this happen.
I could see it on my iPad, but not the customers, or the TSW's.
A reboot of the camera server fixed it for me.


Re: HTML5 development for iPad

 

Did you ever post a demo project this sounds pretty good . I setup a raspberry pi relaying HTML Java I/O and I would love to see what you have done.


Re: RSS Feed stopped working on TSW-1050

 

I had something like this happen.
I could see it on my iPad, but not the customers, or the TSW's.
A reboot of the camera server fixed it for me.


RSS Feed stopped working on TSW-1050

 

¿ªÔÆÌåÓý

Hi,

?

i?m using an ?RSS Feed List¡± object on a VTP-project for a TSW-1050.

This worked fine for some time, but stopped working.

The box is still there, but no feed information is displayed.

The feed is typed fixed into the VTP object.

While being in VTP-Pro, the box is filled with the current RSS feed information, so the feed URL and content seems to be OK.

But running on the TSW-1050, it?s not displayed.

?

The TSW-1050 has connection to the outside world. I can ping the RSS feed server hostname.

Date and time of the panel are up to date.

?

Any ideas where to look?

?

Cheers,

Thorsten


Re: Launching a 3rd party app from the crestron go app #crestronapp

 

Hi all,?

thank you all for your input on this one.

I've figured out where the issue is that I was having. I've re read the Crestron Doc on this and had a look at the link to how to find the URLscheme.?. I found that the app MUST have a URLScheme under the "CFBundleURLTypes". If the app info.plist had this and you used it as the serial send command that it works and opens the app. ?

The apps that I plan on using?
Remote 4.5.1 - to control the App TVRemote (old) - "remote://" working?
FM Radio fb305043404753065://
myTuneriOS - fb594495070580008:// not working
tripple M - fb490796227626676triplem
??
No URL Scheme in Info.plist?
Remote (New - iphone imbedded)- not working
Radios - Not working


Re: is anyone successfully running a Mac Studio M1 with parallels 17 windows 11?

 

I don¡¯t have a Mac studio, but myself and 2 other at the office have 16¡± M1 MacBook Pro all running parallels. Simpl, VTPro, D3 all compile file with it. It sounds like there is something else missing from the fresh install.?


only deal breaker for me was no USB drivers, I have always carried a windows surface pro for it wasn¡¯t a huge issue, but something you need to deal with on the new platform.?


do you have the S+ compiler (I think that¡¯s what it¡¯s called from the top of my head) installed from master installer??


Re: Poly Studio X50

 

Hello Matthew.

Did you try it? Did it work?
I have a possible upcomming project.

Thank you!


Re: Odd DM multichannel audio issue (or do I not understand how the -DSP cards are supposed to work)?

 

Keep your CPU2 card - it is better.

If this is only happening with the TiVo, I would blame it then. I have multiple multichannel sources at home, going to many stereo zones and have not heard this problem even once.

The TiVo might be switching to LPCM when you pause, possibly you could foul it by removing LPCM from the input card edid (if that is even an option).?


Re: is anyone successfully running a Mac Studio M1 with parallels 17 windows 11?

 

Try QEMU https://mac.getutm.app is free.

With QEMU I was able to install and compile programs. The same program, 15 s more compilation time than in the i9.

USB drivers do not work with Qemu or Parallels.

Sent with a
El 20 may 2022, 20:57 +0200, rvanderluit <rvanderluit@...>, escribi¨®:

thanks for responding. all i've seen on here has been positive so i wasn't expecting such headaches.


Re: CCDs and NVRAM

 

¿ªÔÆÌåÓý

You can download V14?

?

Caleb Radecky | Manager, Online Products & Services
Crestron Silver Certified Programmer | DMC-D-4K | DMC-E-4K
ControlWorks Consulting, LLC | Crestron Services Provider | 8228 Mayfield Rd. #6B Rear Cleveland OH 44026
D. 440.771.4809 | O.440.449.1100 X1109 | F.440.449.1106 |

?

From: [email protected] <[email protected]> On Behalf Of Troy Garner
Sent: Friday, May 20, 2022 17:05
To: [email protected]
Subject: Re: [crestron] CCDs and NVRAM

?

[Edited Message Follows]

Can Crestron please figure out an appropriate spot for all the CCD SDK downloads?

The one that most people reference on the developer site still hosts v8, and secretly v14 has been added to a random product page? I've asked about a more recent public download of the CCD SDK for years. Where are all the versions v9 through v13 though, and how is anybody supposed to find out about this stuff?...

--

?

Crestron Service Provider - TBD Enterprises Inc.


Re: CCDs and NVRAM

 
Edited

Can Crestron please figure out an appropriate spot for all the CCD SDK downloads?

The one that most people reference on the developer site still hosts v8, and secretly v14 has been added to a random product page? I've asked about a more recent public download of the CCD SDK for years. Where are all the versions v9 through v13 though, and how is anybody supposed to find out about this stuff?...

edit: And where are the release notes in the v14.0000.0008 download? It exists in the others. :/

--
?
Crestron Service Provider - TBD Enterprises Inc.