Home AMX User Forum NetLinx Studio

Character Transmit Limits

TurnipTruckTurnipTruck Junior MemberPosts: 1,485
Greetings,

I have been doing some work lately on a project in which I am dealing with large (~500) byte strings.

Through the process, I have encountered many of the limits of Studio debug, etc.

I am trying to display these strings on an NXT-CV12 using:
SEND_COMMAND dvNXT_CV12,"'@TXT',1,cBIG_MESSAGE"

However, the panel is only able to display the first 200 or so characters although there exists more than the 200 in the array.

Have I run into another system limitation?

Comments

  • Joe HebertJoe Hebert Junior Member Posts: 2,159
    It's a SEND_COMMAND limit, which is approx. 200 bytes. Look up the ^BAT command in Software History or AMX-PI for help with your problem. This command will let you append text to your buttons.

    Edit: Typo
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    Thaks for your timely reply.

    Do you know if this also applies to SEND_COMMANDs within a master? Such as a SEND_COMMAND to a virtual device.

    How about a SEND_STRING from one master to a virtual device in another> Can I get away with more characters?
  • Joe HebertJoe Hebert Junior Member Posts: 2,159
    It's a SEND_COMMAND limit - any kind. SEND_STRING has about a 2000 byte limit - any kind.
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    ^BAT with a queue worked like a champ.

    Thank you.
  • Joe HebertJoe Hebert Junior Member Posts: 2,159
    Sure thing. You shouldn?t need to build any queue though (unless you have some other traffic concerns or programming reasons) I?ve spun around in a FOR loop before and blasted ^BATs to fill up an entire page with text and I didn?t run into any problems. The redraw gets a little slow when you have a gigantic button with word wrap turned on for formatting but it never missed a beat.
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    Well, not exactly a queue.

    I'm filling a temporary array with what I want to send,
    @TXT with a GET_BUFFER_STRING for the first 100 characters,
    WHILE the temporary array has more characters I am GET_BUFFER_STRINGing the balance in groups of 100.

    Working like a champ, and fast too!
  • Joe HebertJoe Hebert Junior Member Posts: 2,159
    WHILE the temporary array has more characters I am GET_BUFFER_STRINGing the balance in groups of 100.
    Are you getting ^BAT to work with 100 characters at a time or is that just a typo? The documented limit is 50 characters; I never tried it with more than that.
  • TurnipTruckTurnipTruck Junior Member Posts: 1,485
    Joe Hebert wrote:
    Are you getting ^BAT to work with 100 characters at a time or is that just a typo? The documented limit is 50 characters; I never tried it with more than that.

    No typo, working with 100 characters. I was unaware of the limit of 50. I'm going to change mine to 50 now that I know this just to be sure.
  • viningvining X Member Posts: 4,368
    I've had this running for months with out a hick up.
    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
    	  }
    

    It was actually introduce to me by some one else on the tips list for my RSS Weather module.
Sign In or Register to comment.