mirror of
https://github.com/digistump/DigistumpArduino.git
synced 2025-04-28 07:39:02 -07:00
60 lines
1.4 KiB
Plaintext
60 lines
1.4 KiB
Plaintext
![]() |
// client.pde
|
||
|
//
|
||
|
// Simple example of how to use VirtualWire to send and receive messages
|
||
|
// with a DR3100 module.
|
||
|
// Send a message to another arduino running the 'server' example, which
|
||
|
// should send a reply, which we will check
|
||
|
//
|
||
|
// See VirtualWire.h for detailed API docs
|
||
|
// Author: Mike McCauley (mikem@airspayce.com)
|
||
|
// Copyright (C) 2008 Mike McCauley
|
||
|
// $Id: client.pde,v 1.1 2008/04/20 09:24:17 mikem Exp $
|
||
|
|
||
|
#include <VirtualWire.h>
|
||
|
|
||
|
void setup()
|
||
|
{
|
||
|
Serial.begin(9600); // Debugging only
|
||
|
Serial.println("setup");
|
||
|
|
||
|
// Initialise the IO and ISR
|
||
|
vw_set_ptt_inverted(true); // Required for DR3100
|
||
|
vw_setup(2000); // Bits per sec
|
||
|
vw_rx_start(); // Start the receiver PLL running
|
||
|
}
|
||
|
|
||
|
void loop()
|
||
|
{
|
||
|
const char *msg = "hello";
|
||
|
uint8_t buf[VW_MAX_MESSAGE_LEN];
|
||
|
uint8_t buflen = VW_MAX_MESSAGE_LEN;
|
||
|
|
||
|
digitalWrite(13, true); // Flash a light to show transmitting
|
||
|
vw_send((uint8_t *)msg, strlen(msg));
|
||
|
vw_wait_tx(); // Wait until the whole message is gone
|
||
|
Serial.println("Sent");
|
||
|
digitalWrite(13, false);
|
||
|
|
||
|
// Wait at most 200ms for a reply
|
||
|
if (vw_wait_rx_max(200))
|
||
|
{
|
||
|
if (vw_get_message(buf, &buflen)) // Non-blocking
|
||
|
{
|
||
|
int i;
|
||
|
|
||
|
// Message with a good checksum received, dump it.
|
||
|
Serial.print("Got: ");
|
||
|
|
||
|
for (i = 0; i < buflen; i++)
|
||
|
{
|
||
|
Serial.print(buf[i], HEX);
|
||
|
Serial.print(" ");
|
||
|
}
|
||
|
Serial.println("");
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
Serial.println("Timout");
|
||
|
|
||
|
}
|