Arduino, RS232 shield and serial device problem

Hi everyone!
I'm stuck with a problem, and I can't figure out how to solve it...

i'm trying to connect a flow meter (TSI 4000 series FlowMeter) to Arduino in order to send specific commands to set flow limits, type of sample (water, air, N2, etc) and so on.
I've bought an RS232 Shield for Arduino (SparkFun RS232) and i'm using an Arduino Mega.

I'm trying to send a simple command, "?", and I should receive an "OK" message from the flow meter. The problem is that I'm receiving a bunch of squares, and I don't know if it's a coding problem or a connection problem.
I've attached the Black and the green wire from the FlowMeter (+5V and Grownd) to the corresponding pins of the shield, the Yellow and White wires of the FlowMeter (RS-232 Out and RS-232 IN) to the TX and RX pins on the shield, and finally I've connected TX1 and RX1 on the Mega to the MTX and MRX pins on the shield (photo attached). Two jumpers connect MRX to TX and MTX to RX on the shield.

Here the code I'm using:

//SERIAL I/O
const int numReadings = 50;
unsigned int flowRead[numReadings]; // string to be read
byte inread; // dum reading variable
byte r1; //first byte to be read
byte r2; //second byte to be read
byte ack; //acknowledgement byte for reading

//RUNNING AVERAGE
int index = 0;        // the index of the current reading
unsigned int flowTot = 0;   // the running total
float flowRunMean = 0;    // the average

void setup() {
  Serial.begin(9600); //USB2SERIAL
  Serial1.begin(38400); //flowmeter
}

void loop() {

//~~~~~~~~~~~~~~~~~~~~~~~~~~//
//  READINGS DEFAULTS
//~~~~~~~~~~~~~~~~~~~~~~~~~~//  

  Serial1.write("?/r");
  while(Serial1.available()>0){
    Serial.write(Serial1.read());
  }
  delay(1000); 
}

What am I doing wrong? Any Help??

Thanks a lot guys!

  Serial1.write("?/r");

This is sending three characters, '?', '/', and 'r'. I suspect that you want to be sending two characters, '?' and '\r'.

  while(Serial1.available()>0){
    Serial.write(Serial1.read());
  }

The write() method takes a byte. The read() method returns an int. The serial monitor application does not know what to do with binary data. Use print() to send data to the serial monitor.

Directly sending Serial.read()'s output is rarely a good idea.

   while(Serial1.available() > 0)
   {
      char c = Serial1.read();
      Serial.print(c);
   }

Hi PaulS, thanks for the reply!
Err, my fault for the slash, it is correct to write "?\r" as you pointed.
I've modified the code as you said, but the serial monitor returns me an empty square.
I don't know if something else not correct is in the code, or if I have to rewire in a different way the flowmeter and the Mega...

Any idea?

Solved!!!

I've wired in a different way.
The jumpers, the wires from Arduino Serial1 (pin 19 and 18), ground and 5v from the TSI Flow Meter are in the same position as before.
I've moved the yellow and white wires from the instrument (RS232 Out and In) to the serial port pins 2 and 3 on the shield.

In this way, and thanks to the code corrections of PaulS, the serial monitor gives me 'OK' as expected.

Urray!