я канеш не спец в с# (если честно, то я его вообще не знаю
), но если прочитать имена функций, то видно, что это исходник для общения через IR - порт
, что совершенно не нужно вам.
попробую написать исходничек (основан на чистой интуиции, если не запускается я не виноват
)
- Код: Выделить всё
[spoiler]
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Collections;
using System.ComponentModel;
using System.IO.Ports;
using System.IO;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DeviceApplication4
{
public partial class Form1 : Form
{
//initialize the parameters for the SerialPort object
public static String portName = "COM1"; //хардварный порт - ком1, для юсб надо менять
static int baudRate = 115200;
public static Parity parity = Parity.None; //конфигу порта см. в описании устройства
static int dataBits = 7; //которое будете подключать
public static StopBits stopBits = StopBits.One;
SerialPort My_COM = new SerialPort(portName, baudRate, parity, dataBits, stopBits);//поменял имя
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GetName();
}
private void button1_Click(object sender, EventArgs e)
{
//open the port and send data
try
{
if (My_COM.IsOpen == false)
{
My_COM.Open();
}
//message
statusBar2.Text = "port status: open";
//send data
//здесь посылаем данные
//смотрите описание функции Write
//чтобы было понятно как записывать
//вам надо научится записывать строку
My_COM.Write();
//reset the indices
md = 0;
index = 0;
//message
statusBar1.Text = "status: data has been sent";
//close the port
My_COM.Close();
}
//ловим ошибки
catch (ArgumentOutOfRangeException)
{
label1.Text = "Der ьbergebene Parity-Wert oder Stopbit-Wert ist kein gьltiger Wert in der Enumeration.";
}
catch (NullReferenceException nre)
{
label1.Text = nre.ToString();
}
catch (ArgumentNullException)
{
label1.Text = "Der ьbergebene IsOpen-Wert ist NULL (Nothing in Visual Basic).";
}
catch (ArgumentException)
{
label1.Text = "Der ьbergebene IsOpen-Wert ist eine leere Zeichenfolge!";
}
catch (IOException)
{
label1.Text = "Der Port kann nicht geцffnet werden!";
}
}
//получаем имена доступных портов
public void GetName()
{
StringBuilder s = new StringBuilder();
String s1;
//get a list of port names
string[] ports = SerialPort.GetPortNames();
//display port names
foreach (string port in ports)
{
s.Append(port+" ");
}
s1 = s.ToString();
label1.Text = "Port Names: "+s1;
}
}
}[/spoiler]
п.с. а эти самые ф-ии управления колесами делают только одну вещь - посылают в порт определенную строку. на контроллере вы уже будете это дело обрабатывать