I went to modify the first post and deleted it accidentally.
There is a problem getting on to the previous thread for me -perhaps due to the long title messing something up so I'll continue here .
Here's both programs again as they stand now and they are messy I know with the stuff I am using to see whats going on still in them.
#include <NewOneWire.h>
#include <DallasTemperature.h>
#include <VirtualWire.h>
//transmits on pin 12 by default
// Data wire is plugged into port 8 on the Arduino
static const int ONE_WIRE_PIN = 8;
NewOneWire oneWire(ONE_WIRE_PIN);
DallasTemperature tempSensor(oneWire);
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
tempSensor.begin();
Serial.println("Dallas Temperature IC Control Library");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100 -turns radio off
vw_setup(2000); // Bits per sec
}
void loop()
{ // getTemperature returns a float.
float temperature = tempSensor.getTemperature(); //default C
int temp = temperature * 1000 ;
//Get stuff
char msg[] = "Hello there";
unsigned char addr[8];
for (uint8_t i = 0; i < 8; i++) {
addr=tempSensor.getSlaveAddr(), HEX;
}
uint8_t index = tempSensor.getIndex();
switch(tempSensor.isValid())
{ case 1:
Serial.println("Invalid CRC");
tempSensor.reset(); // Attempts to redetect IC
return;
case 2:
Serial.println("Not a valid device");
tempSensor.reset(); // Attempts to redetect IC
return;
}
//Send stuff
digitalWrite(13, true); // Flash a light to show transmitting
vw_rx_start(); // Start the receiver PLL running
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
vw_send((uint8_t *)msg, strlen(msg));
vw_send((uint8_t *)index,1);
vw_send((uint8_t *)addr,8);
vw_send((uint8_t *)temp, 1);
vw_wait_tx(); // Wait until the whole message is gone
//Serial stuff
Serial.println(msg);
Serial.println((int)index);
for (uint8_t i = 0; i < 8; i++) {
Serial.print(addr,HEX);
Serial.print(" ");}
Serial.println();
Serial.print("temperature ");
Serial.print(temperature);
Serial.println("C\t");
Serial.println(temp);
Serial.println(sizeof (temp));
digitalWrite(13, false);
Serial.println("Message Sent");
Serial.println();
if (vw_get_message(buf, &buflen)) // Non-blocking
{
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(buf, HEX);
Serial.print(" ");
}
Serial.println("");
delay(200);
digitalWrite(13, false);
}
delay(4000);
}
void printId(DallasTemperature &sensor) {
for (uint8_t i = 0; i < 8; i++) {
Serial.print(sensor.getSlaveAddr(), HEX);
}
}
#include <VirtualWire.h>
//Data received wire is on pin 11 by default
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
}
int line=1;
char msg[20];
unsigned char addr[8];
int temp;
int index;
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
line=1;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
switch(line){
case 1 :
for (i = 0; i < buflen; i++)
{ Serial.print(buf, BYTE);
msg=buf;}
Serial.println();
Serial.println(msg);
line=2;
break;
case 2 :
Serial.println((long int)buf);
index=buf[1];
Serial.println(index,BYTE);
line=3;
break;
case 3:
for (i = 0; i < buflen; i++)
{ Serial.print(buf, HEX);
Serial.print(" ");
addr=buf;}
Serial.println();
Serial.print(addr[8]);
line=4;
Serial.println();
break;
default :
for (i = 0; i < buflen; i++)
{ Serial.print(buf, HEX);
Serial.print(" ");
temp=buf[2];}
Serial.println();
for (i = 0; i < buflen; i++)
{ Serial.print(temp, DEC);
Serial.print(" ");
line=1;
break;
}
}
line=1;
digitalWrite(13,