hi,
am developing project on handheld system. now am using two c# applications just for testing whether they are sending /receiving data through serial port.
1st application is on COM5-->port ,first ,1st application will send excel data row by row ,when one row is received by 2nd application that should send $ machID # back to first application.
Here machid is in exceldata whatever it is received.
second thing is : i need to load excel data from 2nd apllication to 1st application.in that case
1st application should read in correct formet and save in excel sheet.
here my question is:upto first thing am somewhat ok, coming to second thing where i need to write the code in 1st application.is it in serialPortDatareceived event or in some where
1st application code is
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 Excel=Microsoft.Office.Interop.Excel;
using System.IO;
using System.Threading;
using System.IO.Ports;
namespace Hand_Held_Data_Transporter
{
public partial class Form1 : Form
{
int[] stream_buffer;
String final = null;
String machId = null, custId = null, name = null, totalBal = null, paid = null, lastPaid = null, due = null;
String inputdata;
public Form1()
{
InitializeComponent();
progressBar1.Enabled = false;
progressBar2.Enabled = false;
}
private void Browse_Click(object sender, EventArgs e)
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Filter = "All Files(*.*)|*.*";
if (fdlg.ShowDialog() == DialogResult.OK)
{
textBox1.Text = fdlg.FileName;
File.ReadAllText(textBox1.Text);
}
}
private void Upload_Click(object sender, EventArgs e)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(textBox1.Text, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
progressBar1.Visible = true;
int k = 100 / rowCount;
for (int i = 2; i <= rowCount; i++)
{
for (int j = 1; j <= colCount; j++)
{
if (j == 1)
machId = xlRange.Cells[i, j].Value.ToString();
if (j == 2)
custId = xlRange.Cells[i, j].Value.ToString();
if (j == 3)
name = xlRange.Cells[i, j].Value.ToString();
if (j == 4)
totalBal= xlRange.Cells[i, j].Value.ToString();
if (j == 5)
paid = xlRange.Cells[i, j].Value.ToString();
if (j == 6)
lastPaid = xlRange.Cells[i, j].Value.ToString("dd/MM/yyyy");
if (j == 7)
due = xlRange.Cells[i, j].Value.ToString();
final = "$ POST," + machId + "," + custId + "," + name + "," + totalBal + "," + paid + "," + lastPaid + "," + due + " # ";
}
if (serialPort1.IsOpen)
{
if(machId.Length<=5 && custId.Length<=10 && name.Length<=15 && totalBal.Length<=7 && paid.Length<=7 && lastPaid.Length<=14 && due.Length<=7 )
serialPort1.Write(final);
} serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
if (progressBar1.Value < 100)
{
Thread.Sleep(100);
progressBar1.Value += k;
}
}
progressBar1.Value = 100;
}
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Visible = false;
progressBar2.Visible = false;
serialPort1.Open();
string[] ArrayComPortsNames = null;
int index = -1;
string ComPortName = null;
ArrayComPortsNames = SerialPort.GetPortNames();
do
{
index += 1;
comboBox1.Items.Add(ArrayComPortsNames[index]);
}
while (!((ArrayComPortsNames[index] == ComPortName)
|| (index == ArrayComPortsNames.GetUpperBound(0))));
Array.Sort(ArrayComPortsNames);
if (index == ArrayComPortsNames.GetUpperBound(0))
{
ComPortName = ArrayComPortsNames[0];
}
comboBox1.Text = ArrayComPortsNames[0];
}
private void Download_Click(object sender, EventArgs e)
{
Excel.Application xlApp = default(Excel.Application);
Excel.Workbook xlWorkBook = default(Excel.Workbook);
Excel.Worksheet xlWorkSheet = default(Excel.Worksheet);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
string fName = @"C:\STL\Download\Download_" + DateTime.Now.ToString("dd MMM YY HH mm").Trim() + ".xls ";
try
{
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "Name";
xlWorkSheet.Cells[1, 2] = "ID Number";
xlWorkSheet.Cells[1, 3] = "Installment";
xlWorkSheet.Cells[1, 4] = "Paid Amount";
xlWorkSheet.Cells[1, 5] = "Due Amount";
xlWorkSheet.Cells[1, 1].Interior.ColorIndex = 39;
xlWorkSheet.Cells[1, 2].Interior.ColorIndex = 39;
xlWorkSheet.Cells[1, 3].Interior.ColorIndex = 39;
xlWorkSheet.Cells[1, 4].Interior.ColorIndex = 39;
xlWorkSheet.Cells[1, 5].Interior.ColorIndex = 39;
xlWorkBook.SaveAs(fName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
finally
{
if (xlApp != null)
releaseObject(xlApp);
if (xlWorkBook != null)
releaseObject(xlWorkBook);
if (xlWorkSheet != null)
releaseObject(xlWorkSheet);
}
if (System.IO.File.Exists(fName))
{
if (MessageBox.Show("Would you like to open the excel file?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
System.Diagnostics.Process.Start(fName);
}
catch (Exception ex)
{
MessageBox.Show("Error opening the excel file." + Environment.NewLine +
ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
inputdata = serialPort1.ReadLine();
MessageBox.Show("value is:" +inputdata);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
MessageBox.Show("Do you want to close this Application");
serialPort1.Close();
}
}
}
and 2nd application is
:
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;
using System.Threading;
using System.IO;
namespace handheld_Responce
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
serialPort1.Open();
serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived);
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort1.IsOpen)
{
String RecievedData;
RecievedData = serialPort1.ReadExisting();
if (!(RecievedData == ""))
{
textBox2.Invoke((MethodInvoker)delegate { textBox2.Text += RecievedData; });
}
Thread.Sleep(100);
serialPort1.WriteLine("$M121,0#");
}
}
private void browse_Click(object sender, EventArgs e)
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Filter = "All Files(*.*)|*.*";
if (fdlg.ShowDialog() == DialogResult.OK)
{
textBox1.Text = fdlg.FileName;
File.ReadAllText(textBox1.Text);
}
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}