1

閉じたライブラリを使用しているCアプリケーションでは、受信アクションが終了したときにコールバックを受け取ります。このコールバックでは、使用するフレームワークがこれを行います。

void callbackRX(event_t ID, callbackData_t *callbackData_p){
    rxData_t *dataPacket = (rxData_t *)(callbackData_p->params.rxInfo.dataInfo);
    //...
}

このようにcallbackData_t type見えます:

typedef struct
{
  status_t         status;     // callback status  
  union
  {   
    sync_t          rxSync;     
    rxInfo_t        rxData;    
  }params;

}callbackData_t;

rxInfo_tこのようなものです:

typedef struct
{
   UINT32       dataInfo;       
}rxInfo_t;

そしてrxData_tこのような構造体:

typedef struct
{
   UINT16 *data_p;  // pointer to data

}rxData_t;

今、私のライブラリ提供のコールバックでは、内部からデータを読み取る必要があるdata_pのでdataPacket、私はやろうとしました

void callbackRX(event_t ID, callbackData_t *callbackData_p){
    rxData_t *dataPacket = (rxData_t *)(callbackData_p->params.rxInfo.dataInfo);
    // Read first byte of data from the data pointer
    int test;
    test = dataPacket->data_p[0];

}

しかし、私が取得する数値は、たとえば14236のように非常に大きな整数であり、受信データは73バイトの大きな配列である必要があるため、256を読み取ることになって256512ます1024

私は何が間違っているのですか?

4

1 に答える 1