本文整理汇总了C#中ComPort类的典型用法代码示例。如果您正苦于以下问题:C# ComPort类的具体用法?C# ComPort怎么用?C# ComPort使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ComPort类属于命名空间,在下文中一共展示了ComPort类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Port
public Port(ref ComPort _drvcport)
{
InitializeComponent();
// Initialize communication port
_port = _drvcport;
InitializePortConfiguration(_port.PortConfig);
}
示例2: ControlSystem
/// <summary>
/// Constructor of the Control System Class. Make sure the constructor always exists.
/// If it doesn't exit, the code will not run on your 3-Series processor.
/// </summary>
public ControlSystem() : base()
{
// subscribe to control system events
CrestronEnvironment.SystemEventHandler += new SystemEventHandler(CrestronEnvironment_SystemEventHandler);
CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(CrestronEnvironment_ProgramStatusEventHandler);
CrestronEnvironment.EthernetEventHandler += new EthernetEventHandler(CrestronEnvironment_EthernetEventHandler);
// Set the number of threads which you want to use in your program - At this point the threads cannot be created but we should
// define the max number of threads which we will use in the system.
// the right number depends on your project; do not make this number unnecessarily large
Thread.MaxNumberOfUserThreads = 20;
if (this.SupportsComPort)
{
MyCOMPort = this.ComPorts[1];
MyCOMPort.SerialDataReceived += new ComPortDataReceivedEvent(myComPort_SerialDataReceived);
if (MyCOMPort.Register() != eDeviceRegistrationUnRegistrationResponse.Success)
ErrorLog.Error("COM Port couldn't be registered. Cause: {0}", MyCOMPort.DeviceRegistrationFailureReason);
if (MyCOMPort.Registered)
MyCOMPort.SetComPortSpec(ComPort.eComBaudRates.ComspecBaudRate9600,
ComPort.eComDataBits.ComspecDataBits8,
ComPort.eComParityType.ComspecParityNone,
ComPort.eComStopBits.ComspecStopBits1,
ComPort.eComProtocolType.ComspecProtocolRS232,
ComPort.eComHardwareHandshakeType.ComspecHardwareHandshakeNone,
ComPort.eComSoftwareHandshakeType.ComspecSoftwareHandshakeNone,
false);
}
// ensure this processor has ethernet then setup the EISC
if (this.SupportsEthernet)
{
myEISC = new EthernetIntersystemCommunications(eISCIPID, eISCIP, this);
if (myEISC.Register() != eDeviceRegistrationUnRegistrationResponse.Success)
{
ErrorLog.Error(">>> The EISC was not registered: {0}", myEISC.RegistrationFailureReason);
}
else
{
// Device has been registered. Now register for the event handlers
myEISC.OnlineStatusChange += new OnlineStatusChangeEventHandler(myEISC_OnlineStatusChange);
myEISC.SigChange += new SigEventHandler(myEISC_SigChange);
ErrorLog.Notice(">>> The EISC has been registered successfully");
}
}
else
{
ErrorLog.Error(">>> This processor does not support ethernet, so this program will not run");
}
}
示例3: CallFunction
// Main Access Point
internal override object CallFunction(string name, string description, ComPort port, object[] param)
{
object value = new object();
OutputData = new byte[0];
ReadedBytes = 0;
if (description == string.Empty)
description = ((Tree)FP_Panel).GetDescription(name);
switch (name)
{
#region Initialization
case "SetPrintParams":
{
break;
}
case "SetDateTime":
{
SetDateTime sdt = new SetDateTime(Protocol_Name, description);
if (sdt.ShowDialog() == System.Windows.Forms.DialogResult.OK)
SetDateTime(port, sdt.NewDateTime);
sdt.Dispose();
break;
}
case "Fiscalize":
{
string[] _errMsgs = new string[9] {
"������� ���������� ������ ���������",
"�� �������� ��������� �����",
"������������ ���������� ����� ��� ���� ���������",
"³������� ���",
"�� ������� ���� �� ���� (������ Z-���)",
"�� ����� �������� ������",
"���������� ����� ���������� � ����",
"���� ������ (����������) ������",
"������� �� ������������"};
break;
}
case "SetTaxRate":
{
SetTaxRate str = new SetTaxRate(Protocol_Name, description);
if (str.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
object[] taxData = SetTaxRate(port, str.Password, str.DecimalPoint, str.UseRates, str.Rates);
string _infotext = string.Empty;
if (Methods.IsEmpty(taxData))
{
_infotext = string.Format("{0}\r\n\r\n{1} - {2}\r\n{3}: {4:0.00} [{5}]\r\n{6}: {7:0.00} [{8}]\r\n{9}: {10:0.00} [{11}]\r\n{12}: {13:0.00} [{14}]",
"�������� ������",
"ʳ������ ����� ���� ����", (byte)taxData[0],
"����� �", (double)taxData[5], (bool)taxData[1] ? "���������" : "�� ���������",
"����� �", (double)taxData[6], (bool)taxData[2] ? "���������" : "�� ���������",
"����� �", (double)taxData[7], (bool)taxData[3] ? "���������" : "�� ���������",
"����� �", (double)taxData[8], (bool)taxData[4] ? "���������" : "�� ���������");
value = taxData;
}
else
_infotext = "���� �����";
System.Windows.Forms.MessageBox.Show(_infotext, Protocol_Name,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Information);
}
str.Dispose();
break;
}
case "SetSaleMode":
{
SetSaleMode ssm = new SetSaleMode(Protocol_Name, description);
if (ssm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
SetSaleMode(port, ssm.SaleMode);
ssm.Dispose();
break;
}
case "SetSerialNum":
{
SetSerialNum ssm = new SetSerialNum(Protocol_Name, description);
if (ssm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
char r = SetSerialNum(port, ssm.CountryCode, ssm.SerialNumber);
string _infotext = string.Empty;
if (r == 'P')
_infotext = "������� �������� ������";
if (r == 'F')
_infotext = "��������������� �������� ������\r\n���������� ����� ��� �����������\r\n�� ����������� ����";
if (r == '\0')
_infotext = "���� ������ �� ��������";
System.Windows.Forms.MessageBox.Show(_infotext, Protocol_Name,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Information);
}
ssm.Dispose();
break;
}
case "SetFixNum":
//.........这里部分代码省略.........
示例4: SubTotal
private double[] SubTotal(ComPort port, bool print, bool indicate, double disc, bool discmode)
{
return new double[0];
}
示例5: SetTaxRate
private object[] SetTaxRate(ComPort port, string pwd, byte dpoint, bool[] userates, double[] rates)
{
lastFuncName = "SetTaxRate";
CMD = 83;
//Creating data
string _data = pwd + ',' + dpoint.ToString() + ',';
foreach (bool a in userates)
_data += a ? '1' : '0';
foreach (double r in rates)
_data += ',' + r.ToString(NumberFormat);
DataForSend = Encoding.GetEncoding(1251).GetBytes(_data);
//Preparing data
InputData = CreateInputData(CMD, DataForSend);
//Sending and reciving data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
// Perform processing recived data
string _taxdata = Encoding.GetEncoding(1251).GetString(OutputData);
object[] _taxInfo = new object[9];
if (_taxdata.Length != 0)
{
string[] _trItems = _taxdata.Split(new char[] { ',' });
_taxInfo[0] = byte.Parse(_trItems[0]);
_taxInfo[1] = _trItems[1][0] == '1' ? true : false;
_taxInfo[2] = _trItems[1][1] == '1' ? true : false; ;
_taxInfo[3] = _trItems[1][2] == '1' ? true : false; ;
_taxInfo[4] = _trItems[1][3] == '1' ? true : false; ;
_taxInfo[5] = double.Parse(_trItems[2], NumberFormat);
_taxInfo[6] = double.Parse(_trItems[3], NumberFormat);
_taxInfo[7] = double.Parse(_trItems[4], NumberFormat);
_taxInfo[8] = double.Parse(_trItems[5], NumberFormat);
}
return _taxInfo;
}
示例6: SetSaleMode
private void SetSaleMode(ComPort port, byte mode)
{
lastFuncName = "SetSaleMode";
CMD = 84;
//Creating data
DataForSend = Encoding.GetEncoding(1251).GetBytes(mode.ToString());
//Preparing data
InputData = CreateInputData(CMD, DataForSend);
//Sending and reciving data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
}
示例7: SetGetArticle
private string[] SetGetArticle(ComPort port, char option, object[] param)
{
lastFuncName = "SetGetArticle";
CMD = 107;
//Creating data
string _data = option.ToString();
if (!Methods.IsEmpty(param))
for (int i = 0; i < param.Length; i++)
_data += param[i].ToString();
DataForSend = Encoding.GetEncoding(1251).GetBytes(_data);
//Preparing data
InputData = CreateInputData(CMD, DataForSend);
//Sending and reciving data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
//Perform processing recived data
string _art = Encoding.GetEncoding(1251).GetString(OutputData);
string[] artInfo = new string[0];
if (_art.Length != 0)
artInfo = _art.Split(new char[1] { ',' });
return artInfo;
}
示例8: SendGetData
private bool SendGetData(ComPort port, int totRead, bool close)
{
string exceptionMsg = "";
if (!port.IsOpen)
try
{
port.Open();
}
catch { }
if (port.IsOpen && port.Write(InputData))
{
//WinAPI.OutputDebugString("W");
int t = totRead;
byte[] buffer = new byte[512];
OutputData = new byte[0];
do
{
Array.Clear(buffer, 0, buffer.Length);
//WinAPI.OutputDebugString("R");
if (port.Read(ref buffer, out ReadedBytes))
{
Array.Resize<byte>(ref OutputData, (int)(OutputData.Length + ReadedBytes));
Array.Copy(buffer, 0, OutputData, OutputData.Length - ReadedBytes, ReadedBytes);
try
{
//WinAPI.OutputDebugString("D");
switch (DecodeAnswer())
{
case "busy":
{
//WinAPI.OutputDebugString("S");
Thread.Sleep(200);
break;
}
case "true":
{
//WinAPI.OutputDebugString("T");
ErrorFlags[lastFuncName] = false;
return true;
}
case "false":
{
//WinAPI.OutputDebugString("F");
t--;
Thread.Sleep(50);
break;
}
case "failed":
{
throw new Exception("������� ��������� ������� \"" + lastFuncName + "\"");
}
}
}
catch (Exception ex)
{
exceptionMsg = "\r\n" + ex.Message;
break;
}
}
else
break;
} while (t > 0);
//WinAPI.OutputDebugString("E");
}
if (close)
port.Close();
ErrorFlags[lastFuncName] = true;
throw new Exception("������� ������� � ���������� ��������" + " " + Protocol_Name + exceptionMsg);
}
示例9: PrintCopy
private void PrintCopy(ComPort port, byte copies)
{
lastFuncName = "PrintCopy";
CMD = 109;
//Creating data
if (copies > 1)
{
DataForSend = new byte[1];
DataForSend[0] = (byte)(copies + 0x30);
}
else
DataForSend = new byte[0];
InputData = CreateInputData(CMD, DataForSend);
//sending and getting data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
}
示例10: OpenNOrder
private ushort[] OpenNOrder(ComPort port)
{
lastFuncName = "OpenNOrder";
CMD = 38;
//Making data
InputData = CreateInputData(CMD, new byte[0]);
//sending and getting data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
// Perform processing recived data
string _noinfo = Encoding.GetEncoding(1251).GetString(OutputData);
ushort[] _noinf = new ushort[4];
if (_noinfo.Length != 0)
{
string[] _noItems = _noinfo.Split(new char[1] { ',' });
_noinf[0] = ushort.Parse(_noItems[0]);
_noinf[1] = ushort.Parse(_noItems[1]);
_noinf[2] = ushort.Parse(_noItems[2]);
if (_noItems.Length == 4)
_noinf[3] = ushort.Parse(_noItems[3]);
}
return _noinf;
}
示例11: OpenFOrder
private ushort[] OpenFOrder(ComPort port, byte uid, string pwd, byte cdno, bool extended)
{
return new ushort[0];
}
示例12: OpenBox
private void OpenBox(ComPort port, byte impulse)
{
lastFuncName = "OpenBox";
CMD = 106;
if (impulse != 0)
DataForSend = Encoding.GetEncoding(1251).GetBytes(impulse.ToString());
else
DataForSend = new byte[0];
//Making data
InputData = CreateInputData(CMD, DataForSend);
//sending and getting data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
}
示例13: LoadLogo
private void LoadLogo(ComPort port, string pwd, byte[][] logo)
{
lastFuncName = "LoadLogo";
CMD = 115;
byte _wCorr = 0;
if (logo[0].Length < 54)
_wCorr += (byte)(54 - logo[0].Length);
byte[] _predata = new byte[0];
for (int _r = 0; _r < logo.Length; _r++)
{
//Creating data
_predata = Encoding.GetEncoding(1251).GetBytes(pwd + ',' + _r + ',');
DataForSend = new byte[_predata.Length + logo[_r].Length + _wCorr];
Array.Copy(_predata, 0, DataForSend, 0, _predata.Length);
Array.Copy(logo[_r], 0, DataForSend, _predata.Length, logo[_r].Length);
//Preparing data
InputData = CreateInputData(CMD, DataForSend);
//Sending and reciving data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
}
}
示例14: LineFeed
private void LineFeed(ComPort port, byte lines)
{
lastFuncName = "LineFeed";
CMD = 44;
DataForSend = Encoding.GetEncoding(1251).GetBytes(lines.ToString());
//Making data
InputData = CreateInputData(CMD, DataForSend);
//sending and getting data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
}
示例15: GetUserInfo
private object[] GetUserInfo(ComPort port, byte uid)
{
lastFuncName = "GetUserInfo";
CMD = 112;
DataForSend = Encoding.GetEncoding(1251).GetBytes(uid.ToString());
//Making data
InputData = CreateInputData(CMD, DataForSend);
//sending and getting data
SendGetData(port, 20, true);
//Next code for command
GetNextCmdCode();
// Perform processing recived data
object[] _user = new object[12];
string _userInfo = Encoding.GetEncoding(1251).GetString(OutputData);
if (_userInfo.Length != 0)
{//0, 0;0.00, 0;0.00, 0;0.00, 0;0.00, 0;0.00, gfdgfdgfd
string[] _userItems = _userInfo.Split(new char[2] { ',', ';' });
_user[0] = uint.Parse(_userItems[0]);
_user[1] = uint.Parse(_userItems[1]);
_user[2] = double.Parse(_userItems[2], NumberFormat);
_user[3] = uint.Parse(_userItems[3]);
_user[4] = double.Parse(_userItems[4], NumberFormat);
_user[5] = uint.Parse(_userItems[5]);
_user[6] = double.Parse(_userItems[6], NumberFormat);
_user[7] = uint.Parse(_userItems[7]);
_user[8] = double.Parse(_userItems[8], NumberFormat);
_user[9] = uint.Parse(_userItems[9]);
_user[10] = double.Parse(_userItems[10], NumberFormat);
_user[11] = _userItems[11];
}
return _user;
}