Hello everyone,
I just stared my first project with arduino. It's a simple "car model" controlled form PC via USB cable. I decided to create my own app to do it.
After long nights of searching some libraries(i forgot to look at arduino page..) and info about serial communication i created this simple test app.
But i have some problem with it.How i can send a specific signal/value to arduino. I mean in my app i want send int value 1, but arduino don't recognise it as 1.
Here is my app code,it's Visual Studio 2010 MFC dialog based
void Ctest_2_mfcDlg::OnBnClickedButton2()
{
port_n=_T("com9");
port.Open(port_n);
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);
if(port.IsConnected())
{
info=_T("Connetion->OK");
}
else
info=_T("Error");
pEdit->SetWindowText(info);
}
void Ctest_2_mfcDlg::OnBnClickedCancel()
{
CDialogEx::OnCancel();
}
void Ctest_2_mfcDlg::OnBnClickedButton1()
{
if(port.IsConnected())
{
int data=1;
port.WriteData(&data,sizeof(data));
if(port.WriteData(&data,sizeof(data)))
info=_T("Signal sent");
else
info=_T("Error");
}
else
info=_T("Error");
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT2);
pEdit->SetWindowText(info);
}
void Ctest_2_mfcDlg::OnBnClickedButton3()
{
if(port.IsConnected())
{
int data=0;
port.WriteData(&data,sizeof(data));
if(port.WriteData(&data,sizeof(data)))
info=_T("Signal sent");
else
info=_T("Error");
}
else
info=_T("Error");
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT2);
pEdit->SetWindowText(info);
}
void Ctest_2_mfcDlg::OnBnClickedButton4()
{
int *odcz=0;
port.ReadData(odcz,10);
info.Format("%d",0,odcz);
CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT3);
pEdit->SetWindowText(info);
}
and test arduino scetch:
int ledG=2;
int syg=1;
void setup()
{
pinMode(ledG,OUTPUT);
}
void loop()
{
Serial.begin(9600);
if(Serial.available()>0)
{
syg=Serial.read();
switch(syg)
{
case '1':
digitalWrite(ledG,HIGH);
break;
case '0':
digitalWrite(ledG,LOW);
break;
}
}
}
in MFC i posted only buttons code, if i miss something important please write it and i'll post it.
I forgot to add i use lib form arduino pages but i modify it a little.