Probably the value of neighborsize is greater than MHOP_PARENT_SIZE. I am
not so sure.
> uint8_t retransmissions;
> uint16_t neighbors[MHOP_PARENT_SIZE];
> uint16_t quality[MHOP_PARENT_SIZE];
>} DataMsg;
>....
>
> for (i = 0; i < neighborsize; i++) {
> message->neighbors[i] = neighbors[i];
> message->quality[i] = quality[i];
> }
On 4/11/2007, "YIP Chi Chung" <[EMAIL PROTECTED]> wrote:
>Hi,
>
>I am writing a program to get the information like temperature, neighbor
>ID and link quality etc. from tmote. Collected data will send back to PC
>through UART.
>
>However, I failed to get the neighbor ID and link quality from mote. My
>program is modify from Delta. It keep returning 65535 for neighbor ID and
>32767 for link quality. And someone tell me how to solve it?
>
>Thank you very much
>
>Here is my code:
>
>DataMsg.h
>#ifndef H_DataMsg_h
>#define H_DataMsg_h
>
>#include "MultiHop.h"
>
>enum {
> AM_DATAMSG = 26
>};
>
>typedef struct DataMsg {
> uint16_t src;
> uint16_t humidity;
> uint16_t temperature;
> uint16_t par;
> uint16_t intTemp;
> uint16_t intVoltage;
> uint8_t neighborsize;
> uint8_t retransmissions;
> uint16_t neighbors[MHOP_PARENT_SIZE];
> uint16_t quality[MHOP_PARENT_SIZE];
>} DataMsg;
>
>#endif
>
>
>MoteDataM.nc
>...
>//function for sending data back to PC
> task void SendData() {
>
> TOS_Msg msg;
> uint8_t neighborsize;
>
> uint16_t neighbors[MHOP_PARENT_SIZE];
> uint16_t quality[MHOP_PARENT_SIZE];
>
> int i;
>
> DataMsg *message = (DataMsg *)msg.data;
>
> message->src = TOS_LOCAL_ADDRESS;
> message->humidity = humidity;
> message->temperature = temperature;
> message->par = par;
> message->intTemp = itemp;
> message->intVoltage = ivolt;
>
> neighborsize = call RouteStatistics.getNeighborSize();
>
> call RouteStatistics.getNeighbors(neighbors, neighborsize);
> call RouteStatistics.getNeighborQuality(quality, neighborsize);
>
> for (i = 0; i < neighborsize; i++) {
> message->neighbors[i] = neighbors[i];
> message->quality[i] = quality[i];
> }
>
> message->neighborsize = neighborsize;
> message->retransmissions = call
> RouteStatistics.getRetransmissions();
>
> if (call SendUART.send(TOS_UART_ADDR, sizeof(DataMsg), &msg)) {
> call Leds.redToggle();
> }
>
> }
>...
>
>Yip Chi Chung
>
>_______________________________________________
>Tinyos-help mailing list
>[email protected]
>https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help