Exemple #1
0
static void read_raw_rssi_rsp(const void *data, uint8_t size)
{
	uint8_t status = get_u8(data);
	uint16_t handle = get_le16(data + 1);
	int8_t rssi = get_s8(data + 3);

	print_status(status);
	print_handle(handle);
	print_rssi(rssi);
}
void ReadChannelsAndSendRSSI()
{
  uint8_t channel;
  int8_t rssi;
  
  for (channel=0;channel<255;channel++)
  {
    MRFI_RxIdle();
    mrfiSpiWriteReg(CHANNR,channel);
    MRFI_RxOn();
    rssi=MRFI_Rssi();
    print_rssi(rssi);
  }
}
Exemple #3
0
int main(int argc, char** argv)
{
   int fd, len, i, has_rssi;
   char* devname, buf[128];
   unsigned long pkt_cnt;
   time_t tt;
   
   devname = RF12_TESTS_DEV;
   
   fd = open(RF12_TESTS_DEV, O_RDWR);
   if (fd < 0) {
      printf("\nfailed to open %s: %s.\n\n", devname, strerror(errno));
      return fd;
   } else
      printf(
         "\nsuccessfully opened %s as fd %i, entering read loop...\n\n",
         devname, fd
      );

   has_rssi = supports_rssi(fd);

   fflush(stdout);
   signal(SIGINT, sig_handler);
   signal(SIGTERM, sig_handler);
   
   pkt_cnt = 0;
   running = 1;
   do {      
      len = read(fd, buf, RF12_BUF_LEN);
      
      time (&tt);
      
      if (len > 0) {
         printf("%s", ctime(&tt));
         
         if (has_rssi) {
            print_rssi(fd);
         }
         
         printf("\t%i bytes read\n\t\t", len);
         
         for (i=0; i<len; i++) {
            printf("%d ", buf[i]);
         }
         printf("\n");
         
         fflush(stdout);   
   
         pkt_cnt++;
                  
         len = write(fd, buf, len);
         
         printf("\techoed the packet with result: %d.\n", len);
      } else if (len < 0) {
         break;
      }      
   } while (running);
   
   print_stats(fd);
   
   close(fd);
   
   printf("\n\n%lu packet(s) echoed.\n\n", pkt_cnt);
   
   return len;
}