Home AMX User Forum AMX General Discussion

8400 text cutting off

Does anyone have the answer???
Send text to a CV12 ver 2.57.80 or an older version 8400 - works fine:
////////////////////////////////////////
Line     22 (19:20:10):: Command To [10001:5:1]-[^TXT-41,0,01. Home - Evening  ~  ON: Sunset +30|        All days of the week]


Send text to a 8400 ver 2.83.9 - only the first line is received by the panel
////////////////////////////////////////
Line      3 (19:21:03):: Command To [10002:5:1]-[^TXT-41,0,01. Home - Evening  ~  ON: Sunset +30|        All days ]
Line      4 (19:21:03):: Command To [10002:5:1]-[of the week]

I also tried 3 different 8400 with 2.83.9 firmware - same results
I even transfered the CV12 TP4 file to the 8400
The end of the string doesn't show in the the 8400 panels.

Yes there are 7 spaces after the '|' carriage return.

Comments

  • Joe HebertJoe Hebert Posts: 2,159
    Need ^TXT + ^BAT

    Gary,

    According to AMX-PI there is a limitation of 50 characters of new text when using the ^TXT command although you seem to be getting a couple of more characters than that. I can?t explain why you were able to get much more text out to an older version 8400.
    AMX-PI wrote:
    "'^TXT-<variable text address range>,<button states range>,<new text>'"
    Assign a text string to those buttons with a defined address range.
    Sets non-unicode text.

    Syntax:
    SEND_COMMAND <DEV>,"'^TXT-<vt addr range>,<button states range>,<new text>'"

    Variables:
    variable text address range = 1 - 4000.
    button states range = 1 - 256 for multi-state buttons
    (0 = All states, for General buttons 1 = Off state and 2 = On state).
    new text = 1 - 50 ASCII characters.

    Example:
    SEND_COMMAND Panel,"'^TXT-500.504&510.515,1&2,Test Only'"
    Sets the On and Off state text for buttons with the variable
    text ranges of 500-504 & 510-515.

    I use the ^TXT command in conjunction with the ^BAT command if I want to get more than 50 characters of text on a button.

    Here is some code I used when I had to send text to a button that was sometimes greater than 50 characters but I knew was always going to be less than 100 characters. You can obviously use a FOR or WHILE loop to break the string into 50 character chunks to make a more generic text sending routine but this sufficed for what I needed at the time.
    //timerstring may be > 50 characters but will be < 100
    IF (LENGTH_ARRAY(timerstring > 50)) {
       SEND_COMMAND dvTP,"'^TXT-',ITOA(nTimerOnTxts[x]),',0,',LEFT_STRING(timerstring,50)"
       SEND_COMMAND dvTP,"'^BAT-',ITOA(nTimerOnTxts[x]),',0,',MID_STRING(timerstring,51,LENGTH_ARRAY(timerstring)-50)"
    }
    ELSE {
       SEND_COMMAND dvTP,"'^TXT-',ITOA(nTimerOnTxts[x]),',0,',timerstring"
    }
    

    HTH
  • viningvining Posts: 4,368
    Here's another example using !T which can pass more text than ^TXT. The ^BAT lines were added to the Weather module I posted a few years back by another forum member because I was having the same problem.
     if (sForecastsSent[1].description != sForecasts[1].description)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_forecast_1],LEFT_STRING(sForecasts[1].description,100)"
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_1]),',0,',MID_STRING(sForecasts[1].description,101,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_1]),',0,',MID_STRING(sForecasts[1].description,201,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_1]),',0,',MID_STRING(sForecasts[1].description,301,100)" 
    	  sForecastsSent[1].description = sForecasts[1].description
    	  }
         if (sForecastsSent[2].title != sForecasts[2].title)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_fcastTitle_2],sForecasts[2].title"
    	  sForecastsSent[2].title = sForecasts[2].title
    	  }
         if (sForecastsSent[2].description != sForecasts[2].description)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_forecast_2],LEFT_STRING(sForecasts[2].description,100)"
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_2]),',0,',MID_STRING(sForecasts[2].description,101,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_2]),',0,',MID_STRING(sForecasts[2].description,201,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_2]),',0,',MID_STRING(sForecasts[2].description,301,100)" 
    	  sForecastsSent[2].description = sForecasts[2].description
    	  }
         if (sForecastsSent[3].title != sForecasts[3].title)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_fcastTitle_3],sForecasts[3].title"
    	  sForecastsSent[3].title = sForecasts[3].title
    	  }
         if (sForecastsSent[3].description != sForecasts[3].description)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_forecast_3],LEFT_STRING(sForecasts[3].description,100)"
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_3]),',0,',MID_STRING(sForecasts[3].description,101,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_3]),',0,',MID_STRING(sForecasts[3].description,201,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_3]),',0,',MID_STRING(sForecasts[3].description,301,100)" 
    	  sForecastsSent[3].description = sForecasts[3].description
    	  }
         if (sForecastsSent[4].title != sForecasts[4].title)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_fcastTitle_4],sForecasts[4].title"
    	  sForecastsSent[4].title = sForecasts[4].title
    	  }
         if (sForecastsSent[4].description != sForecasts[4].description)
    	  {
    	  SEND_COMMAND dvTPWeatherArray,"'!T',nFeedback[VT_forecast_4],LEFT_STRING(sForecasts[4].description,100)"
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_4]),',0,',MID_STRING(sForecasts[4].description,101,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_4]),',0,',MID_STRING(sForecasts[4].description,201,100)" 
    	  SEND_COMMAND dvTPWeatherArray,"'^BAT-',ITOA(nFeedback[VT_forecast_4]),',0,',MID_STRING(sForecasts[4].description,301,100)" 
    	  sForecastsSent[4].description = sForecasts[4].description
    	  }
    
  • GSLogicGSLogic Posts: 562
    Joe Hebert wrote: »
    Gary,
    According to AMX-PI there is a limitation of 50 characters of new text when using the ^TXT command although you seem to be getting a couple of more characters than that. I can’t explain why you were able to get much more text out to an older version 8400.

    I've been using ^TXT for YEARS without the 50 char limitation. It's the new firmware that implemented the limit. When I try sending ^TXT will an older firmware I get up to 187 chars.
    I also use ^BAT for larger text like my weather/headline news modules, but I never had to use in on smaller text.

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    One more example why AMX should have a site to inform use when things change.

    I now have to change all my modules to a different text sending method.
    Also, the ^BAT now has a limit of 50 chars.
  • GSLogicGSLogic Posts: 562
    vining wrote: »
    Here's another example using !T which can pass more text than ^TXT. The ^BAT lines were added to the Weather module I posted a few years back by another forum member because I was having the same problem.

    Vining

    I see in your code you are limiting your text to 100 chars. I would test your weather module to see if you are getting text over 50 using the ^BAT. I was informed that ^TXT and ^BAT is now only 50 chars max.
  • GSLogicGSLogic Posts: 562
    It appear the new 50 char limit is for modules only. When testing ^TXT outside of a module I can still send 180+ chars.
  • viningvining Posts: 4,368
    GSLogic wrote:
    I see in your code you are limiting your text to 100 chars. I would test your weather module to see if you are getting text over 50 using the ^BAT. I was informed that ^TXT and ^BAT is now only 50 chars max.

    Another reason not to upgrade any firmware on a working system. I'll have to back track now and see which firmware revision implemented the change and see what the TPs are running. Like I needed something else to do.

    It's shocking to think AMX would change the way a system command functions w/o anticipating the consequence it would have on all the existing systems and the subsequent problems it would cause all their loyal programmers and dealers.
Sign In or Register to comment.