how to send byte array via com

Hi,

I want to send via com from PC(C# application) array of byte (100 elements in array), what is the best method for do this ?

I tray do it in loop, but something is wrong becuse when i read message from arduni i take result that when I send example arrayExampe[30]=220, i receive from arduino message that he has 3 elements 2,2,0.

here is code in PC:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
	  public Form1()
	  {
		InitializeComponent();
	  }

	  private void button1_Click(object sender, EventArgs e)
	  {

		byte[] arrByte= new byte[96]{1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  1, 1, 1, 1, 1, 1, 1, 1,1, 16, 32, 55, 80, 110, 140, 190,190, 190, 190, 190, 190, 190, 190, 190,190, 190, 190, 190, 190, 190, 190, 190,190, 190, 190, 190, 190, 190, 190, 190,190, 190, 190, 190, 190, 190, 190, 190,190, 190, 190, 190, 190, 190, 190, 190, 190, 110, 90, 70, 55, 32, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1};




		SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
		port.ReadBufferSize = 128;
		port.Open();
		string read;
		for (int i = 0; i < arrByte.Length; i++)
		{

		    port.Write(arrByte[i].ToString());
		    read = port.ReadLine();
		    textBox1.Text = textBox1.Text + read+", " + "\r\n";
		    port.Write(",");


		}
	     port.Close();
	  }
    }
}

Here us Arduino simple program:

byte incomingByte = 0;	// for incoming serial data

void setup() {
	Serial.begin(9600);	// opens serial port, sets data rate to 9600 bps
}

void loop() {

	// send data only when you receive data:
	if (Serial.available() > 0) {
		// read the incoming byte:
		incomingByte = Serial.read();

		// say what you got:
		Serial.print("I received: ");
		Serial.println(incomingByte);
	}
}

Thanks for answers.

best regards
malin

Your C# program is converting the byte to a string. So the value 220 becomes the string “220”, and thus the Arduino receives the characters 2, 2, and 0 (not to be confused with the decimal values 2, 2, and 0).