VirtualWire

Means if I give the function unsigned integer with 8 bits(An array), then I do not need to write the keyword uint8_t ?

Correct ?

No. An unsigned integer is not an array and it isn't 8 bits.

So, if I want to send a number 2, then how do I wrote it in array of 8 bits ??? Thanks

So, if I want to send a number 2, then how do I wrote it in array of 8 bits ??? Thanks

uint8_t msg[1] = 2;
vw_send(msg, 1);

So from this can I say uint8_t is like a data type ?

For example int variable, so uint8_t variable ?

Thanks

PaulS:

So, if I want to send a number 2, then how do I wrote it in array of 8 bits ??? Thanks

uint8_t msg[1] = 2;

vw_send(msg, 1);

So how about the receiving part ?

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

  [b]  if (vw_get_message(buf, &buflen)) // Non-blocking[/b]
    {
	int i;

        digitalWrite(13, true); // Flash a light to show received good message
	// Message with a good checksum received, dump it.
	Serial.print("Got: ");
	
	for (i = 0; i < buflen; i++)
	{
	    Serial.print((char)buf[i]);
	    Serial.print(" ");
	}
	Serial.println("");
        digitalWrite(13, false);
    }
}

What does it means ?

What does it means ?

As you posted it, it means nothing, which is why you should post your code between code tags

Modified ! Thanks . hope you can help me

What does it means ?

In a nutshell, see if there's any data to read, read it if (vw_get_message(buf, &buflen)), and then print it

for (i = 0; i < buflen; i++)
	{
	    Serial.print((char)buf[i]);
	    Serial.print(" ");
	}

.

Is this the syntax ? Thanks

AWOL:

What does it means ?

In a nutshell, see if there's any data to read, read it if (vw_get_message(buf, &buflen)), and then print it

for (i = 0; i < buflen; i++)
{
    Serial.print((char)buf[i]);
    Serial.print(" ");
}

.

Then how about vw_have_message()?

From the reference:

uint8_t vw_have_message ( )

Returns:
true if a message is available to read

OK..so means I can use the idea that vw_have_message () then do something ?

If you don't mind blocking, you could just use "vw_wait_rx", or just use "vw_get_message" as you've shown.

Blocking of what ? Blocking of the signal from transmitter ?

No, blocking of your code, waiting for a message to arrive.

Oh..it means the code sometimes will fail to execute ? Am I correct ?

it means the code sometimes will fail to execute ? Am I correct ?

During development, code will always sometimes fail to execute as we expect it to.
But, no, you are not correct. "Blocking" means the code will loop waiting until a message is received. This may or may not be a problem for you.

The great thing about the Arduino is that you can try things, and if they don't work, try something different.
The frequency of your questions leads me to suspect you're not trying the things you're asking about.

Cool..yea I shall work for it now..thanks so much ..This library is easy to use !

So from this can I say uint8_t is like a data type ?

It isn't "like a data type". It IS a data type, just like int, float, byte, char, long, etc.

The u up front indicates unsigned. The int differentiates the type from floating point types. The 8 explicitly defines the size of the variables, in bits. The _t indicates that the type is a standard type. Every compiler is supposed to recognize the type, and allocate the same space for it.

This is not true of types like int. An int can be 16 bits, 32 bits, or 64 bits (or other unusual sizes), depending on the platform. A uint8_t is always 8 bits. A int32_t is always 32 bits. A uint64_t is always 64 bits.

AWOL:

it means the code sometimes will fail to execute ? Am I correct ?

During development, code will always sometimes fail to execute as we expect it to.
But, no, you are not correct. "Blocking" means the code will loop waiting until a message is received. This may or may not be a problem for you.

The great thing about the Arduino is that you can try things, and if they don't work, try something different.
The frequency of your questions leads me to suspect you're not trying the things you're asking about.

#include <VirtualWire.h>
#undef int
#undef abs
#undef double
#undef float
#undef round
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
    pinMode(13, OUTPUT);
}

void loop()
{
  uint8_t count; 
if(count==true)
{
  count = false;
}
  count = vw_wait_rx_max(2000);// Non-blocking
  if (true)
  {
        digitalWrite(13, HIGH); // Flash a light to show received good message
	delay(500);// Message with a good checksum received, dump it.
	digitalWrite(13, LOW);
        delay(500);
  }
  else if(false)
  {
    digitalWrite(13, HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
  }
        

    
}

I write this code..I want it to be like when it does not receive message for 2s, then it will return false. If it receive message, then return true. Then it will only blink once then the whole system become false again. So what moddification I need to do ?

Thanks