Any limit on data - VxWorks

This is a discussion on Any limit on data - VxWorks ; Hi, Is there any limit for the data to be sent by msgQSend ? And also, Is there any limit for the data to be received by msgQReceive ? What could be the maximum amount of data that can be ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Any limit on data

  1. Any limit on data

    Hi,

    Is there any limit for the data to be sent by msgQSend ?
    And also, Is there any limit for the data to be received by
    msgQReceive ?

    What could be the maximum amount of data that can be sent using
    msgQSend & received using msgQReceive ?

    Thx in advans,
    Karthik Balaguru


  2. Re: Any limit on data

    On 12 sep, 13:33, karthikbalaguru wrote:
    > Hi,
    >
    > Is there any limit for the data to be sent by msgQSend ?
    > And also, Is there any limit for the data to be received by
    > msgQReceive ?
    >
    > What could be the maximum amount of data that can be sent using
    > msgQSend & received using msgQReceive ?
    >
    > Thx in advans,
    > Karthik Balaguru


    hi,

    MSG_Q_ID msgQCreate
    (
    int maxMsgs, /* max messages that can be queued */
    int maxMsgLength, /* max bytes in a message */
    int options /* message queue options */
    )

    The message max length is an int, so it depends on you system
    implementation of ont.

    --
    Tarek.


  3. Re: Any limit on data


    tarek.alla...@gmail.com wrote:
    > On 12 sep, 13:33, karthikbalaguru wrote:
    > > Hi,
    > >
    > > Is there any limit for the data to be sent by msgQSend ?
    > > And also, Is there any limit for the data to be received by
    > > msgQReceive ?
    > >
    > > What could be the maximum amount of data that can be sent using
    > > msgQSend & received using msgQReceive ?
    > >
    > > Thx in advans,
    > > Karthik Balaguru

    >
    > hi,
    >
    > MSG_Q_ID msgQCreate
    > (
    > int maxMsgs, /* max messages that can be queued */
    > int maxMsgLength, /* max bytes in a message */
    > int options /* message queue options */
    > )
    >
    > The message max length is an int, so it depends on you system
    > implementation of ont.
    >


    Thx for the info, i find that only the address is passed from which
    the data has to read by the other queue.
    I have a strange problem as below :
    I send 8100 bytes using msgQSend and the msgQReceive sucessfully
    receives it.
    (I saw by printing the buffers before msgQSend and after msgQReceive)
    But,
    If I send 8444 bytes using msgQSend , the msgQReceive does not
    sucessfully receive it.
    But, i am able to see the data to be present in the buffer at that
    particular address by printing the buffers.
    msgQSend does not throw any error status , It is successful only.
    But, why is the msgQReceive unable to receive it ?

    Further, I find that the Stacks of Tasks on the Tx and Rx side are
    HUGE STACK SIZE only. Strange . Any ideas ?

    Thx in advans,
    Karthik Balaguru


  4. Re: Any limit on data

    On 14 sep, 11:40, karthikbalaguru wrote:
    > tarek.alla...@gmail.com wrote:
    > > On 12 sep, 13:33, karthikbalaguru wrote:
    > > > Hi,

    >
    > > > Is there any limit for the data to be sent by msgQSend ?
    > > > And also, Is there any limit for the data to be received by
    > > > msgQReceive ?

    >
    > > > What could be the maximum amount of data that can be sent using
    > > > msgQSend & received using msgQReceive ?

    >
    > > > Thx in advans,
    > > > Karthik Balaguru

    >
    > > hi,

    >
    > > MSG_Q_ID msgQCreate
    > > (
    > > int maxMsgs, /* max messages that can be queued */
    > > int maxMsgLength, /* max bytes in a message */
    > > int options /* message queue options */
    > > )

    >
    > > The message max length is an int, so it depends on you system
    > > implementation of ont.

    >
    > Thx for the info, i find that only the address is passed from which
    > the data has to read by the other queue.
    > I have a strange problem as below :
    > I send 8100 bytes using msgQSend and the msgQReceive sucessfully
    > receives it.
    > (I saw by printing the buffers before msgQSend and after msgQReceive)
    > But,
    > If I send 8444 bytes using msgQSend , the msgQReceive does not
    > sucessfully receive it.
    > But, i am able to see the data to be present in the buffer at that
    > particular address by printing the buffers.
    > msgQSend does not throw any error status , It is successful only.
    > But, why is the msgQReceive unable to receive it ?
    >
    > Further, I find that the Stacks of Tasks on the Tx and Rx side are
    > HUGE STACK SIZE only. Strange . Any ideas ?
    >
    > Thx in advans,
    > Karthik Balaguru


    It would be easier to post your code. or use errnoGet() to get the
    errno returned.
    ie:
    //! include "tickLib.h"

    if (ERROR == msgQSend(MyMsgQ,
    (char*)&MyMsgDataPoiser_msg,sizeof(MyMsgDataPoiser),
    WAIT_FOREVER,MSG_PRI_NORMAL))
    {
    printf("msgQSend error %ld",errnoGet());
    }



  5. Re: Any limit on data

    On Sep 21, 2:29 pm, tarek.alla...@gmail.com wrote:
    > On 14 sep, 11:40, karthikbalaguru wrote:
    >
    >
    >
    >
    >
    > > tarek.alla...@gmail.com wrote:
    > > > On 12 sep, 13:33, karthikbalaguru wrote:
    > > > > Hi,

    >
    > > > > Is there any limit for the data to be sent by msgQSend ?
    > > > > And also, Is there any limit for the data to be received by
    > > > > msgQReceive ?

    >
    > > > > What could be the maximum amount of data that can be sent using
    > > > > msgQSend & received using msgQReceive ?

    >
    > > > > Thx in advans,
    > > > > Karthik Balaguru

    >
    > > > hi,

    >
    > > > MSG_Q_ID msgQCreate
    > > > (
    > > > int maxMsgs, /* max messages that can be queued */
    > > > int maxMsgLength, /* max bytes in a message */
    > > > int options /* message queue options */
    > > > )

    >
    > > > The message max length is an int, so it depends on you system
    > > > implementation of ont.

    >
    > > Thx for the info, i find that only the address is passed from which
    > > the data has to read by the other queue.
    > > I have a strange problem as below :
    > > I send 8100 bytes using msgQSend and the msgQReceive sucessfully
    > > receives it.
    > > (I saw by printing the buffers before msgQSend and after msgQReceive)
    > > But,
    > > If I send 8444 bytes using msgQSend , the msgQReceive does not
    > > sucessfully receive it.
    > > But, i am able to see the data to be present in the buffer at that
    > > particular address by printing the buffers.
    > > msgQSend does not throw any error status , It is successful only.
    > > But, why is the msgQReceive unable to receive it ?

    >
    > > Further, I find that the Stacks of Tasks on the Tx and Rx side are
    > > HUGE STACK SIZE only. Strange . Any ideas ?

    >
    > > Thx in advans,
    > > Karthik Balaguru

    >
    > It would be easier to post your code. or use errnoGet() to get the
    > errno returned.
    > ie:
    > //! include "tickLib.h"
    >
    > if (ERROR == msgQSend(MyMsgQ,
    > (char*)&MyMsgDataPoiser_msg,sizeof(MyMsgDataPoiser),
    > WAIT_FOREVER,MSG_PRI_NORMAL))
    > {
    > printf("msgQSend error %ld",errnoGet());
    >
    >
    >
    > }


    Thx for that idea. Looks like a good idea.

    Now, this looks more like an issue with msgQSend.
    We may need to have debug load to
    analyse the msgQs based on the VxWorks msgQ Debugging APIs. Following
    VxWorks APIs can be
    implemented with some CLI(Command Line Interface) to get the info
    w.r.t these Queues to get even more info.
    msgQShowInit( ) - initialize the message queue show facility
    msgQInfoGet( ) - get information about a message queue
    msgQShow( ) - show information about a message queue
    These give various details like the ->
    number of messages queued, count of send timeouts , number of tasks
    waiting on msg q, count of receive timeouts,
    max messages that can be queued ,max byte length of each message,
    array of task IDs waiting on msg q.
    The variables sendTimeouts and recvTimeouts are the counts of the
    number of times msgQSend( ) and msgQReceive( )
    respectively returned with a timeout and I think, this would be of
    great help.

    But, now comes the other stuffs ahead.
    I find that it is very difficult to see the status of the Queue at
    that partucular instant as the Queue operation happens very fast.
    Any idea , how to see the Queue status at that particular instant ?

    What do you think ??

    Thx,
    Karthik Balaguru



+ Reply to Thread