Keyboard Shortcuts
Likes
- Crestron
- Messages
Search
OT: Hiring in Nashville, TN
Logan Media Services is seeking a tech to support and troubleshoot AV equipment in a corporate environment. Experience with Crestron Toolbox and Biamp software, 2 yrs AV exp. Reqd. Great benefits. Please contact me at jeremy@... for a more detailed description of the position if interested. If it unacceptable to post this on this forum, please let me know and I'll take it down. |
Re: UDP control
SIO On Thu, Jan 21, 2016 at 12:26 PM, gentleman169@... [Crestron] <Crestron@...> wrote:
|
Re: Panasonic AW-HE130
I had major issues with these cameras in the past. ?The problem is that if you send a GET command before the previous one is processed, the camera will seize up until you reboot it. ?I made a simpl+ module to handle the TX strings from the released module, the key to this is to invoke THREADSAFE on the string input here. The IP of the camera is defined as a parameter.
#DEFAULT_VOLATILE #ENABLE_STACK_CHECKING #ENABLE_TRACE #ENCODING_ASCII #define_constant RxBuf 10000 #define_constant debug 1 STRING_INPUT _skip_,_skip_,Panasonic_GET_Command$[100]; STRING_OUTPUT _skip_,_skip_,From_Camera$; /* ? SOCKETS ? (Uncomment and define socket definitions as needed) */ TCP_CLIENT tcpCamera[RxBuf]; /* ? Parameters ? (Uncomment and declare parameters as needed) */ STRING_PARAMETER Panasonic_IP[30]; INTEGER_PARAMETER HTTP_Port; /* ? Parameter Properties ? (Uncomment and declare parameter properties as needed) */ #BEGIN_PARAMETER_PROPERTIES Panasonic_IP ? ?propDefaultUnit = unitString; #END_PARAMETER_PROPERTIES #BEGIN_PARAMETER_PROPERTIES HTTP_Port? ? ?propValidUnits = unitDecimal; ? ?propDefaultUnit = unitDecimal; ? ?propBounds = 1d , 65535d; ? ?propDefaultValue = 80d; #END_PARAMETER_PROPERTIES INTEGER Busy; function TCPStatus (integer status) { ? if(debug)Switch(status) { ? ? ? Case(0): { print("Not Connected\n"); } ? ? ? Case(1): { print("Waiting for Connection\n"); } ? ? ? Case(2): { print("Connected\n"); } ? ? ? Case(3): { print("Connection Failed\n"); } ? ? ? Case(4): { print("Connection Broken Remotely\n"); delay(30); print("delayed busy\n"); Busy = 0; } ? ? ? Case(5): { print("Connection Broken Locally\n"); } ? ? ? Case(6): { print("Performing DNS Lookup\n"); } ? ? ? Case(7): { print("DNS Lookup Failed\n"); } ? ? ? Case(8): { print("DNS Lookup Resolved\n"); } ? ? ? Case(9): { print("Link Loss\n"); } ? ? ? default: { print("Unknown TCP Status\n"); } } } THREADSAFE CHANGE Panasonic_GET_Command$ { SIGNED_INTEGER tcpCameraStatus; if(!Busy) { ? ? Busy = 1; ? tcpCameraStatus=SocketConnectClient (tcpCamera, Panasonic_IP, HTTP_Port,0); if(debug)trace("tcpCamera status=%d",tcpCameraStatus); } } threadsafe socketconnect tcpCamera { socketsend(tcpCamera, Panasonic_GET_Command$); } threadsafe SOCKETRECEIVE tcpCamera { ? string sData[RxBuf]; sData = Gather("\n\n", tcpCamera.SocketRxBuf); if(debug)trace("%s",sData); clearbuffer(tcpCamera.SocketRxBuf); From_Camera$ = sData; } socketstatus tcpCamera { ? TCPStatus(tcpCamera.SocketStatus); } /* ? Main() ? Uncomment and place one-time startup code here ? (This code will get called when the system starts up) */ Function Main() { ? WaitForInitializationComplete(); Busy = 0; } |
Re: UDP control
What exactly are you looking for?? How to send UDP messages? Drop in a UDP client, set the proper broadcast address for your network, set the port you are transmitting on, enable the client, and send your message. On Thu, Jan 21, 2016 at 10:33 AM, gentleman169@... [Crestron] <Crestron@...> wrote:
|
Re: Panasonic AW-HE130
Preset commands are in here too.
#DEFINE_CONSTANT SIZE 12 #CATEGORY "19" // Camera #DEFAULT_VOLATILE #ENABLE_STACK_CHECKING #ENABLE_TRACE #HELP_BEGIN use port 80 put a 1 for IP or rs422 analog inputs for speed are to set a different speed other than default of 15. analog values need to be between 10 to 40 #HELP_END DIGITAL_INPUT??? IP, RS422, _SKIP_; DIGITAL_INPUT??? pan_left,pan_right; //Cam left right DIGITAL_INPUT??? tilt_up,tilt_dn;??? //Cam Up Down DIGITAL_INPUT ??? zoom_in, zoom_out;??? //Cam Zoom DIGITAL_INPUT??? _SKIP_, pwrOn, pwrOff; DIGITAL_INPUT??? _SKIP_, preset[SIZE,SIZE]; ANALOG_INPUT ??? _SKIP_, PanSpeed, TiltSpeed, ZoomSpeed; STRING_OUTPUT??? cmd$; digital_output??? storingPreset; integer temp, pan_spd, tilt_spd, zoom_spd; integer storePreset, currentPreset; function fnStorePreset() { ??? if(IP) ??? ??? makestring(cmd$, "GET /cgi-bin/aw_ptz?cmd=#M%02u&res=1 HTTP/1.0\n\n", currentPreset-1); ??? else if(RS422) ??? ??? makestring(cmd$, "\x23M%02u\x0d", currentPreset-1); } function fnRecallPreset() { ??? if(IP) ??? ??? makestring(cmd$, "GET /cgi-bin/aw_ptz?cmd=#R%02u&res=1 HTTP/1.0\n\n", currentPreset-1); ??? else if(RS422) ??? ??? makestring(cmd$, "\x23R%02u\x0d", currentPreset-1); } ? //////////////////////////////////////////////////////////////////////////////////////////////////// ?????? push pan_left//1:max-49:min { ??? temp=50-pan_spd;??? //left ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#P%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#P%02u\x0d",temp); ??? } ??? wait(200) ??? { ??? ??? temp=45-pan_spd; ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#P%02u&res=1 HTTP/1.0\n\n",temp); ??? } } push pan_right//51:min-99:max { ??? temp=50+pan_spd;??? //Right ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#P%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#P%02u\x0d",temp); ??? } ??? wait(200) ??? { ??? ??? temp=55+pan_spd; ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#P%02u&res=1 HTTP/1.0\n\n",temp); ??? } } release pan_left,pan_right { ??? CancelAllWait(); ??? IF(IP) ??? { ??? ??? cmd$="GET /cgi-bin/aw_ptz?cmd=#P50&res=1 HTTP/1.0\n\n";??? ??? ??? ??? ??? wait(25) cmd$="GET /cgi-bin/aw_ptz?cmd=#P50&res=1 HTTP/1.0\n\n"; ??? ??? //cmd$="GET /cgi-bin/aw_ptz?cmd=#PTS5050&res=1 HTTP/1.0\n\n"; ??? } ??? IF(RS422) ??? { ??? ??? delay(10);??? ??? ??? cmd$="#PTS5050\x0d"; ??? } } ? //////////////////////////////////////////////////////////////////////////////////////////////////// push tilt_up//51:min-99:max { ??? temp=50+tilt_spd;??? //Up ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#T%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#T%02u\x0d",temp); ??? } ??? wait(200) ??? { ??? ??? temp=45-tilt_spd; ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#T%02u&res=1 HTTP/1.0\n\n",temp); ??? } } push tilt_dn//1:max-49:min { ??? temp=50-tilt_spd;??? //Down ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#T%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#T%02u\x0d",temp); ??? } ??? wait(200) ??? { ??? ??? temp=55+tilt_spd; ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#T%02u&res=1 HTTP/1.0\n\n",temp); ??? } } release tilt_up,tilt_dn { ??? CancelAllWait(); ??? IF(IP) ??? { ??? ??? cmd$="GET /cgi-bin/aw_ptz?cmd=#T50&res=1 HTTP/1.0\n\n"; ??? ??? wait(25) cmd$="GET /cgi-bin/aw_ptz?cmd=#T50&res=1 HTTP/1.0\n\n";??? ??? ??? //cmd$="GET /cgi-bin/aw_ptz?cmd=#PTS5050&res=1 HTTP/1.0\n\n"; ??? } ??? IF(RS422) ??? { ??? ??? delay(10);??? ??? ??? cmd$="#PTS5050\x0d"; ??? } } ? ////////////////////////////////////////////////////////////////////////////////////////////////////v push zoom_in//51:min-99:max { ??? integer temp; ??? temp=50+pan_spd;??? //Right ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#Z%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#P%02u\x0d",temp); ??? } } push zoom_out//1:max-49:min { ??? integer temp; ??? temp=50-pan_spd;??? //left ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#Z%02u&res=1 HTTP/1.0\n\n",temp); ??? } ??? IF(RS422) ??? { ??? ??? makestring(cmd$,"#P%02u\x0d",temp); ??? } } release zoom_in,zoom_out { ??? IF(IP) ??? { ??? ??? cmd$="GET /cgi-bin/aw_ptz?cmd=#Z50&res=1 HTTP/1.0\n\n";??? ??? ??? ??? ??? wait(25) cmd$="GET /cgi-bin/aw_ptz?cmd=#Z50&res=1 HTTP/1.0\n\n"; ??? ??? //cmd$="GET /cgi-bin/aw_ptz?cmd=#PTS5050&res=1 HTTP/1.0\n\n"; ??? } ??? IF(RS422) ??? { ??? ??? delay(10);??? ??? ??? cmd$="#Z50\x0d"; ??? } } //////////////////////////////////////////////////////////////////////////////////////////////////// push preset { ??? currentPreset = GetLastModifiedArrayIndex(); ??? ??? wait(400, storePresetWait) //4s ??? { ??? ??? storePreset = 1; ??? ??? pulse(200, storingPreset); ??? ??? fnStorePreset(); ??? }??? } release preset { ??? CancelWait(storePresetWait); ??? if(!storePreset) ??? ??? fnRecallPreset(); ??? storePreset = 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// push pwrOn {??? ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#O1&res=1 HTTP/1.0\n\n");??? } ??? IF(RS422) ??? { ??????? makestring(cmd$,"\x23O1\x0D"); ??? } } ???? push pwrOff { ??? IF(IP) ??? { ??? ??? makestring(cmd$,"GET /cgi-bin/aw_ptz?cmd=#O0&res=1 HTTP/1.0\n\n"); ??? } ??? IF(RS422) ??? { ??????? makestring(cmd$,"\x23O0\x0D"); ??? } } ?? Function Main() { ??? WaitForInitializationComplete(); ??? pan_spd = 15; ??? tilt_spd = 15; ??? zoom_spd = 15; } |
Re: Smart Graphics - Button List
The drop-down list was removed some time ago.? You'll need to do it with a subpage. On Wed, Jan 20, 2016 at 9:48 PM, enidsaldin@... [Crestron] <Crestron@...> wrote:
|
Re: IOS Today in Crestron App
开云体育I'm hoping they get the presses working as well. I've got it setup for some quick common functionality that would be handy to get to without opening the app. Open/Close garage door, turn off all lights or A/V in a room, etc.? If you're just looking for notifications from the system you can use the API and prowl services together to send IOS notifications. I was having some issues with my HVAC a while back and set it up to give me any extreme temp alarms and regular hourly temp updates from 9-5. I've long since fixed the issue but it's been nice for peace of mind to have those alerts coming. On Jan 21, 2016, at 1:32 AM, drabert@... [Crestron] <Crestron@...> wrote:
|
Re: Samsung Bluray IR discrete power on and off code - HELP please
toggle quoted message
Show quoted text
On Jan 20, 2016, at 3:14 PM, kgossen@... [Crestron] <Crestron@...> wrote:
|
Re: Samsung Bluray IR discrete power on and off code - HELP please
There are a number of ways to do this. First, with the BD plugged into power, use the factory remote and see which functions will turn it on. We find the "play" command usually always works.?
Turn on: Stepper: Send Play Delay 1-3 seconds Send Stop Turn off: Stepper: Send Play Delay 3-6 seconds Send Power toggle Either way, if someone had manually pressed the power button on the BD, it will always turn on and turn off.? |
Re: Samsung Bluray IR discrete power on and off code - HELP please
toggle quoted message
Show quoted text
On Jan 20, 2016, at 1:27 PM, kgossen@... [Crestron] <Crestron@...> wrote:
|