Just read the file into a string. Then you can send 1 KB portions by using
SubString(blockNumber * 1024, 1024)
where
blockNumber
is incremented after writing each block until all blocks has been send.
Program flow:
Global objects:
string buffer;
int blockNumber = -1;
Set File / click send file:
buffer = System.IO.File.ReadAllText(this.openFileDialog1.FileName);
if (!buffer.IsNullOrEmpty())
{
if (serialPort1.IsOpen == false)
{
this.serialPort1.Open();
}
blockNumber = 0;
}
Timer event function:
if (blockNumber >= 0)
{
string blockString = buffer.SubString(blockNumber * 1024, 1024);
if (!blockString.IsNullOrEmpty())
{
serialPort1.Write(blockString);
blockNumber++;
}
else
{
blockNumber = -1;
buffer = "";
}
}