基本信息
源码名称:条码信息采集系统
源码大小:3.68M
文件格式:.rar
开发语言:C#
更新时间:2021-05-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 20 元×
微信扫码支付:20 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
工业现场总线串口通信,定制化界面,文件处理,参数配置,数据显示,自动检测端口,条码自动获取或手动输入
public partial class frmMain : Form
{
string strBarcodeContext; //条码内容
string strYear; //年
string strMonth; //月
string strDay; //日
string strClass; //班次
string strClassShow; //班次显示
string strFlowNumber; //流水号
string strProductCode; //产品号
string strClientCode; //客户号
string strInnerCode; //内部号
string strProductStatusCode;//产品状态码
string strProductStatusShow;//产品状态显示
string strCompanyCode; //公司代码
string strCompanyShow; //公司代码显示
//string strDateShow; //日期显示
public static char[] hexDigital ={'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F'};//十六进制
string strUser; //用户
string strDate; //日期
DataGridViewColumn dgvColDate = new DataGridViewColumn();
DataGridViewColumn dgvColOpr = new DataGridViewColumn();
DataGridViewColumn dgvColBarcode = new DataGridViewColumn();
DataGridViewColumn dgvColClass = new DataGridViewColumn();
DataGridViewColumn dgvColClientCode = new DataGridViewColumn();
DataGridViewColumn dgvColInnerCode = new DataGridViewColumn();
public string strPortName; //端口号
public string strBaudRate; //波特率
public string strDataBits; //数据位
public string strStopBits; //停止位
public string strParity; //校验
public string strPortNameIndex;
public string strBaudRateIndex;
public string strDataBitsIndex;
public string strStopBitsIndex;
public string strParityIndex;
public string strReceive; //条码接收
public string strApplicationPath;//文件路径
//判断字符串是不是纯数字字符字符串函数
public bool IsPureNumberString(string strSource)
{
int i, intStringLength;
byte bytValue;
intStringLength = strSource.Length;
for (i = 0; i < intStringLength; i )
{
bytValue = Convert.ToByte(strSource[i]);
if ((bytValue < 48) || (bytValue > 57))
{
return false;
}
}
return true;
}
//将字符串以十六进制形式显示
public static string ToHexString(byte[] bytAReceive)
{
int iBytALength;
int i;
int iValue;
iBytALength = bytAReceive.Length;
char[] chAReceive = new char[iBytALength * 3];
for (i = 0; i < iBytALength; i )
{
iValue = bytAReceive[i];
chAReceive[i * 3] = hexDigital[iValue >> 4];
chAReceive[i * 3 1] = hexDigital[iValue & 0xF];
chAReceive[i * 3 2] = ' ';
}
return new string(chAReceive);
}
//串口参数文件-写入
private void SPSWrite()
{
FileStream fsSPS = new FileStream(strApplicationPath "\\SPS.cfg", FileMode.OpenOrCreate);
StreamWriter swSPS = new StreamWriter(fsSPS);
swSPS.WriteLine(strPortName);
swSPS.WriteLine(strBaudRate);
swSPS.WriteLine(strDataBits);
swSPS.WriteLine(strStopBits);
swSPS.WriteLine(strParity);
swSPS.WriteLine(strPortNameIndex);
swSPS.WriteLine(strBaudRateIndex);
swSPS.WriteLine(strDataBitsIndex);
swSPS.WriteLine(strStopBitsIndex);
swSPS.WriteLine(strParityIndex);
swSPS.Close();
}
//串口参数文件-读取
private void SPSRead()
{
FileStream fsSPS = new FileStream(strApplicationPath "\\SPS.cfg", FileMode.OpenOrCreate);
StreamReader srSPS = new StreamReader(fsSPS);
strPortName = srSPS.ReadLine();
strBaudRate = srSPS.ReadLine();
strDataBits = srSPS.ReadLine();
strStopBits = srSPS.ReadLine();
strParity = srSPS.ReadLine();
strPortNameIndex = srSPS.ReadLine();
strBaudRateIndex = srSPS.ReadLine();
strDataBitsIndex = srSPS.ReadLine();
strStopBitsIndex = srSPS.ReadLine();
strParityIndex = srSPS.ReadLine();
srSPS.Close();
}
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
strApplicationPath = Application.StartupPath;
sknColor.SkinFile = strApplicationPath "\\WaveBlue.ssk";
strUser = "Admin";
tssUser.Text = "用户:" strUser;
timMain.Enabled = true;
dgvColDate.Name = "InfoDate";
dgvColDate.HeaderText = "日期 ";
dgvColDate.CellTemplate = new DataGridViewTextBoxCell();
dgvColOpr.Name = "InfoOpr";
dgvColOpr.HeaderText = "操作者";
dgvColOpr.CellTemplate = new DataGridViewTextBoxCell();
dgvColBarcode.Name = "InfoBarcode";
dgvColBarcode.HeaderText = "条码";
dgvColBarcode.CellTemplate = new DataGridViewTextBoxCell();
dgvColClass.Name = "InfoClass";
dgvColClass.HeaderText = "班次";
dgvColClass.CellTemplate = new DataGridViewTextBoxCell();
dgvColClientCode.Name = "InfoClientCode";
dgvColClientCode.HeaderText = "客户号";
dgvColClientCode.CellTemplate = new DataGridViewTextBoxCell();
dgvColInnerCode.Name = "InfoInnerCode";
dgvColInnerCode.HeaderText = "内部号";
dgvColInnerCode.CellTemplate = new DataGridViewTextBoxCell();
dgvDisplay.Columns.Add(dgvColDate);
dgvDisplay.Columns.Add(dgvColOpr);
dgvDisplay.Columns.Add(dgvColBarcode);
dgvDisplay.Columns.Add(dgvColClass);
dgvDisplay.Columns.Add(dgvColClientCode);
dgvDisplay.Columns.Add(dgvColInnerCode);
dgvDisplay.RowHeadersVisible = false;
dgvDisplay.AllowUserToAddRows = false;
dgvDisplay.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgvDisplay.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dgvDisplay.ReadOnly = true;
if (File.Exists(@strApplicationPath "\\SPS.cfg") == false)
{
this.strPortName = "COM1";
this.strBaudRate = "9600";
this.strDataBits = "8";
this.strStopBits = "1";
this.strParity = "None";
}
else
{
SPSRead();
}
srlBarcode.PortName = this.strPortName;
srlBarcode.BaudRate = Convert.ToInt32(this.strBaudRate);
srlBarcode.DataBits = Convert.ToInt16(this.strDataBits);
srlBarcode.Parity = (Parity)Enum.Parse(typeof(Parity), this.strParity);
srlBarcode.StopBits = (StopBits)Enum.Parse(typeof(StopBits), this.strStopBits, true);
if (srlBarcode.IsOpen == false)
{
try
{
srlBarcode.Open();
this.tssPort.Text = "端口状态:" this.strPortName " 已打开";
}
catch
{
MessageBox.Show("串口打开失败了!\n\n可能原因:端口被占用或端口不存在。", "条码采集系统");
}
}
}
private void tlmExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dlrValue = MessageBox.Show("是否要退退出条码采集系统","条码采集系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2);
if (dlrValue == DialogResult.OK)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
private void btnEncode_Click(object sender, EventArgs e)
{
int intBarcodeLength;//定义条码长度变量
strBarcodeContext = txtBarcode.Text.Trim().ToString();//读取条码输入框的内容
intBarcodeLength = strBarcodeContext.Length;
bool bIsNString;
bIsNString = IsPureNumberString(strBarcodeContext);//调用纯数字字符的函数
if (!bIsNString)
{
MessageBox.Show("条码格式错误-包含非数字字符", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (intBarcodeLength != 17)
{
MessageBox.Show("条码长度错误", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
strYear = strBarcodeContext.Substring(0, 4);
this.txtYear.Text = strYear;
strMonth = strBarcodeContext.Substring(4, 2);
this.txtMonth.Text = strMonth;
strDay = strBarcodeContext.Substring(6, 2);
this.txtDay.Text = strDay;
strClass = strBarcodeContext.Substring(8, 1);
strFlowNumber = strBarcodeContext.Substring(9, 4);
this.txtFlowNumber.Text = strFlowNumber;
strProductCode = strBarcodeContext.Substring(13, 2);
this.txtProductCode.Text = strProductCode;
strProductStatusCode = strBarcodeContext.Substring(15, 1);
strCompanyCode = strBarcodeContext.Substring(16, 1);
switch (strClass)
{
case "1":
{
strClassShow = "A班";
this.txtClass.Text = strClassShow;
break;
}
case "2":
{
strClassShow = "B班";
this.txtClass.Text = strClassShow;
break;
}
case "3":
{
strClassShow = "C班";
this.txtClass.Text = strClassShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-班次", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductCode)
{
case "01":
{
strClientCode = "8WD.881.045";
strInnerCode = "3169847";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "02":
{
strClientCode = "8WD.881.046";
strInnerCode = "3169849";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "03":
{
strClientCode = "8WD.881.045.A";
strInnerCode = "3169851";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "04":
{
strClientCode = "8WD.881.045.B";
strInnerCode = "3169857";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "05":
{
strClientCode = "5QD.881.046.F";
strInnerCode = "3169853";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "06":
{
strClientCode = "5QD.881.045.H";
strInnerCode = "3170386";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "07":
{
strClientCode = "5QD.881.046.H";
strInnerCode = "3170387";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "08":
{
strClientCode = "3QD.881.045.A";
strInnerCode = "3170388";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "09":
{
strClientCode = "3QD.881.045.B";
strInnerCode = "3170389";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "10":
{
strClientCode = "3QD.881.046";
strInnerCode = "Undefined";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "11":
{
strClientCode = "3QD.881.045";
strInnerCode = "3170384";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "12":
{
strClientCode = "5QD.881.046.C";
strInnerCode = "3170385";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品号", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductStatusCode)
{
case "1":
{
strProductStatusShow = "03S";
this.txtProductStatus.Text = strProductStatusShow;
break;
}
case "2":
{
strProductStatusShow = "01K";
this.txtProductStatus.Text = strProductStatusShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品状态码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strCompanyCode)
{
case "1":
{
strCompanyShow = "4RP";
this.txtCompanyCode.Text = strCompanyShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-公司代码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
this.dgvDisplay.Rows.Add(this.strDate, this.strUser, this.strBarcodeContext, this.strClassShow, this.strClientCode, this.strInnerCode);
}
}
private void timMain_Tick(object sender, EventArgs e)
{
strDate = DateTime.Now.ToString();
tssDate.Text = "日期:" strDate;
}
private void tsmParameterSerial_Click(object sender, EventArgs e)
{
if (srlBarcode.IsOpen == true)
{
try
{
srlBarcode.Close();
this.tssPort.Text = "端口状态:" this.strPortName "已关闭";
}
catch
{
MessageBox.Show("串口关闭失败了!\n\n可能原因:端口被占用或端口不存在", "条码采集系统");
}
}
frmSPSetting frmSPSDemo = new frmSPSetting();
if (frmSPSDemo.ShowDialog() == DialogResult.OK)
{
this.strPortName = frmSPSDemo.strPortName;
this.strBaudRate = frmSPSDemo.strBaudRate;
this.strDataBits = frmSPSDemo.strDataBits;
this.strStopBits = frmSPSDemo.strStopBits;
this.strParity = frmSPSDemo.strParity;
srlBarcode.PortName = this.strPortName;
srlBarcode.BaudRate = Convert.ToInt32(this.strBaudRate);
srlBarcode.DataBits = Convert.ToInt16(this.strDataBits);
srlBarcode.Parity = (Parity)Enum.Parse(typeof(Parity), this.strParity);
srlBarcode.StopBits = (StopBits)Enum.Parse(typeof(StopBits), this.strStopBits, true);
if (srlBarcode.IsOpen == false)
{
try
{
srlBarcode.Open();
this.tssPort.Text = "端口状态:" this.strPortName " 已打开";
}
catch
{
MessageBox.Show("串口打开失败了!\n\n可能原因:端口被占用或端口不存在。", "条码采集系统");
}
}
}
}
private void srlBarcode_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(50);
this.strReceive = srlBarcode.ReadExisting();
int intReceivedLength;//定义接收数据长度变量
strBarcodeContext = strReceive.Trim().ToString();//接收的内容
intReceivedLength = strBarcodeContext.Length;
bool bIsNString;
bIsNString = IsPureNumberString(strBarcodeContext);//调用纯数字字符的函数
if (!bIsNString)
{
MessageBox.Show("条码格式错误-包含非数字字符", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (intReceivedLength != 17)
{
MessageBox.Show("条码长度错误", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
strYear = strBarcodeContext.Substring(0, 4);
strMonth = strBarcodeContext.Substring(4, 2);
strDay = strBarcodeContext.Substring(6, 2);
strClass = strBarcodeContext.Substring(8, 1);
strFlowNumber = strBarcodeContext.Substring(9, 4);
strProductCode = strBarcodeContext.Substring(13, 2);
strProductStatusCode = strBarcodeContext.Substring(15, 1);
strCompanyCode = strBarcodeContext.Substring(16, 1);
switch (strClass)
{
case "1":
{
strClassShow = "A班";
break;
}
case "2":
{
strClassShow = "B班";
break;
}
case "3":
{
strClassShow = "C班";
break;
}
default:
{
MessageBox.Show("条码不合格规范-班次", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductCode)
{
case "01":
{
strClientCode = "8WD.881.045";
strInnerCode = "3169847";
break;
}
case "02":
{
strClientCode = "8WD.881.046";
strInnerCode = "3169849";
break;
}
case "03":
{
strClientCode = "8WD.881.045.A";
strInnerCode = "3169851";
break;
}
case "04":
{
strClientCode = "8WD.881.045.B";
strInnerCode = "3169857";
break;
}
case "05":
{
strClientCode = "5QD.881.046.F";
strInnerCode = "3169853";
break;
}
case "06":
{
strClientCode = "5QD.881.045.H";
strInnerCode = "3170386";
break;
}
case "07":
{
strClientCode = "5QD.881.046.H";
strInnerCode = "3170387";
break;
}
case "08":
{
strClientCode = "3QD.881.045.A";
strInnerCode = "3170388";
break;
}
case "09":
{
strClientCode = "3QD.881.045.B";
strInnerCode = "3170389";
break;
}
case "10":
{
strClientCode = "3QD.881.046";
strInnerCode = "Undefined";
break;
}
case "11":
{
strClientCode = "3QD.881.045";
strInnerCode = "3170384";
break;
}
case "12":
{
strClientCode = "5QD.881.046.C";
strInnerCode = "3170385";
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品号", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductStatusCode)
{
case "1":
{
strProductStatusShow = "03S";
break;
}
case "2":
{
strProductStatusShow = "01K";
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品状态码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strCompanyCode)
{
case "1":
{
strCompanyShow = "4RP";
break;
}
default:
{
MessageBox.Show("条码不合格规范-公司代码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
}
this.Invoke(new EventHandler(DisplayReceived));
}
private void DisplayReceived(object sender, EventArgs e)
{
this.txtBarcode.Text = this.strReceive.Trim();
this.txtYear.Text = strYear;
this.txtClass.Text = strClassShow;
this.txtClass.Text = strClassShow;
this.txtClass.Text = strClassShow;
this.txtProductCode.Text = strProductCode;
this.txtFlowNumber.Text = strFlowNumber;
this.txtDay.Text = strDay;
this.txtMonth.Text = strMonth;
this.txtClientCode.Text = strClientCode;
this.txtInnerCode.Text = strInnerCode;
this.txtCompanyCode.Text = strCompanyShow;
this.txtProductStatus.Text = strProductStatusShow;
this.dgvDisplay.Rows.Add(this.strDate, this.strUser, this.strBarcodeContext, this.strClassShow, this.strClientCode, this.strInnerCode);
}
private void tsmHelp_Click(object sender, EventArgs e)
{
MessageBox.Show("开发单位:中德合心国际交流学院\n --教研中心\nE-mail:mengqingzhan@xnyhm.com\n e_dream@126.com\nQQ:49518395\n", "条码采集系统",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
}
}
工业现场总线串口通信,定制化界面,文件处理,参数配置,数据显示,自动检测端口,条码自动获取或手动输入
public partial class frmMain : Form
{
string strBarcodeContext; //条码内容
string strYear; //年
string strMonth; //月
string strDay; //日
string strClass; //班次
string strClassShow; //班次显示
string strFlowNumber; //流水号
string strProductCode; //产品号
string strClientCode; //客户号
string strInnerCode; //内部号
string strProductStatusCode;//产品状态码
string strProductStatusShow;//产品状态显示
string strCompanyCode; //公司代码
string strCompanyShow; //公司代码显示
//string strDateShow; //日期显示
public static char[] hexDigital ={'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F'};//十六进制
string strUser; //用户
string strDate; //日期
DataGridViewColumn dgvColDate = new DataGridViewColumn();
DataGridViewColumn dgvColOpr = new DataGridViewColumn();
DataGridViewColumn dgvColBarcode = new DataGridViewColumn();
DataGridViewColumn dgvColClass = new DataGridViewColumn();
DataGridViewColumn dgvColClientCode = new DataGridViewColumn();
DataGridViewColumn dgvColInnerCode = new DataGridViewColumn();
public string strPortName; //端口号
public string strBaudRate; //波特率
public string strDataBits; //数据位
public string strStopBits; //停止位
public string strParity; //校验
public string strPortNameIndex;
public string strBaudRateIndex;
public string strDataBitsIndex;
public string strStopBitsIndex;
public string strParityIndex;
public string strReceive; //条码接收
public string strApplicationPath;//文件路径
//判断字符串是不是纯数字字符字符串函数
public bool IsPureNumberString(string strSource)
{
int i, intStringLength;
byte bytValue;
intStringLength = strSource.Length;
for (i = 0; i < intStringLength; i )
{
bytValue = Convert.ToByte(strSource[i]);
if ((bytValue < 48) || (bytValue > 57))
{
return false;
}
}
return true;
}
//将字符串以十六进制形式显示
public static string ToHexString(byte[] bytAReceive)
{
int iBytALength;
int i;
int iValue;
iBytALength = bytAReceive.Length;
char[] chAReceive = new char[iBytALength * 3];
for (i = 0; i < iBytALength; i )
{
iValue = bytAReceive[i];
chAReceive[i * 3] = hexDigital[iValue >> 4];
chAReceive[i * 3 1] = hexDigital[iValue & 0xF];
chAReceive[i * 3 2] = ' ';
}
return new string(chAReceive);
}
//串口参数文件-写入
private void SPSWrite()
{
FileStream fsSPS = new FileStream(strApplicationPath "\\SPS.cfg", FileMode.OpenOrCreate);
StreamWriter swSPS = new StreamWriter(fsSPS);
swSPS.WriteLine(strPortName);
swSPS.WriteLine(strBaudRate);
swSPS.WriteLine(strDataBits);
swSPS.WriteLine(strStopBits);
swSPS.WriteLine(strParity);
swSPS.WriteLine(strPortNameIndex);
swSPS.WriteLine(strBaudRateIndex);
swSPS.WriteLine(strDataBitsIndex);
swSPS.WriteLine(strStopBitsIndex);
swSPS.WriteLine(strParityIndex);
swSPS.Close();
}
//串口参数文件-读取
private void SPSRead()
{
FileStream fsSPS = new FileStream(strApplicationPath "\\SPS.cfg", FileMode.OpenOrCreate);
StreamReader srSPS = new StreamReader(fsSPS);
strPortName = srSPS.ReadLine();
strBaudRate = srSPS.ReadLine();
strDataBits = srSPS.ReadLine();
strStopBits = srSPS.ReadLine();
strParity = srSPS.ReadLine();
strPortNameIndex = srSPS.ReadLine();
strBaudRateIndex = srSPS.ReadLine();
strDataBitsIndex = srSPS.ReadLine();
strStopBitsIndex = srSPS.ReadLine();
strParityIndex = srSPS.ReadLine();
srSPS.Close();
}
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
strApplicationPath = Application.StartupPath;
sknColor.SkinFile = strApplicationPath "\\WaveBlue.ssk";
strUser = "Admin";
tssUser.Text = "用户:" strUser;
timMain.Enabled = true;
dgvColDate.Name = "InfoDate";
dgvColDate.HeaderText = "日期 ";
dgvColDate.CellTemplate = new DataGridViewTextBoxCell();
dgvColOpr.Name = "InfoOpr";
dgvColOpr.HeaderText = "操作者";
dgvColOpr.CellTemplate = new DataGridViewTextBoxCell();
dgvColBarcode.Name = "InfoBarcode";
dgvColBarcode.HeaderText = "条码";
dgvColBarcode.CellTemplate = new DataGridViewTextBoxCell();
dgvColClass.Name = "InfoClass";
dgvColClass.HeaderText = "班次";
dgvColClass.CellTemplate = new DataGridViewTextBoxCell();
dgvColClientCode.Name = "InfoClientCode";
dgvColClientCode.HeaderText = "客户号";
dgvColClientCode.CellTemplate = new DataGridViewTextBoxCell();
dgvColInnerCode.Name = "InfoInnerCode";
dgvColInnerCode.HeaderText = "内部号";
dgvColInnerCode.CellTemplate = new DataGridViewTextBoxCell();
dgvDisplay.Columns.Add(dgvColDate);
dgvDisplay.Columns.Add(dgvColOpr);
dgvDisplay.Columns.Add(dgvColBarcode);
dgvDisplay.Columns.Add(dgvColClass);
dgvDisplay.Columns.Add(dgvColClientCode);
dgvDisplay.Columns.Add(dgvColInnerCode);
dgvDisplay.RowHeadersVisible = false;
dgvDisplay.AllowUserToAddRows = false;
dgvDisplay.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgvDisplay.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dgvDisplay.ReadOnly = true;
if (File.Exists(@strApplicationPath "\\SPS.cfg") == false)
{
this.strPortName = "COM1";
this.strBaudRate = "9600";
this.strDataBits = "8";
this.strStopBits = "1";
this.strParity = "None";
}
else
{
SPSRead();
}
srlBarcode.PortName = this.strPortName;
srlBarcode.BaudRate = Convert.ToInt32(this.strBaudRate);
srlBarcode.DataBits = Convert.ToInt16(this.strDataBits);
srlBarcode.Parity = (Parity)Enum.Parse(typeof(Parity), this.strParity);
srlBarcode.StopBits = (StopBits)Enum.Parse(typeof(StopBits), this.strStopBits, true);
if (srlBarcode.IsOpen == false)
{
try
{
srlBarcode.Open();
this.tssPort.Text = "端口状态:" this.strPortName " 已打开";
}
catch
{
MessageBox.Show("串口打开失败了!\n\n可能原因:端口被占用或端口不存在。", "条码采集系统");
}
}
}
private void tlmExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dlrValue = MessageBox.Show("是否要退退出条码采集系统","条码采集系统",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2);
if (dlrValue == DialogResult.OK)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
private void btnEncode_Click(object sender, EventArgs e)
{
int intBarcodeLength;//定义条码长度变量
strBarcodeContext = txtBarcode.Text.Trim().ToString();//读取条码输入框的内容
intBarcodeLength = strBarcodeContext.Length;
bool bIsNString;
bIsNString = IsPureNumberString(strBarcodeContext);//调用纯数字字符的函数
if (!bIsNString)
{
MessageBox.Show("条码格式错误-包含非数字字符", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (intBarcodeLength != 17)
{
MessageBox.Show("条码长度错误", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
strYear = strBarcodeContext.Substring(0, 4);
this.txtYear.Text = strYear;
strMonth = strBarcodeContext.Substring(4, 2);
this.txtMonth.Text = strMonth;
strDay = strBarcodeContext.Substring(6, 2);
this.txtDay.Text = strDay;
strClass = strBarcodeContext.Substring(8, 1);
strFlowNumber = strBarcodeContext.Substring(9, 4);
this.txtFlowNumber.Text = strFlowNumber;
strProductCode = strBarcodeContext.Substring(13, 2);
this.txtProductCode.Text = strProductCode;
strProductStatusCode = strBarcodeContext.Substring(15, 1);
strCompanyCode = strBarcodeContext.Substring(16, 1);
switch (strClass)
{
case "1":
{
strClassShow = "A班";
this.txtClass.Text = strClassShow;
break;
}
case "2":
{
strClassShow = "B班";
this.txtClass.Text = strClassShow;
break;
}
case "3":
{
strClassShow = "C班";
this.txtClass.Text = strClassShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-班次", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductCode)
{
case "01":
{
strClientCode = "8WD.881.045";
strInnerCode = "3169847";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "02":
{
strClientCode = "8WD.881.046";
strInnerCode = "3169849";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "03":
{
strClientCode = "8WD.881.045.A";
strInnerCode = "3169851";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "04":
{
strClientCode = "8WD.881.045.B";
strInnerCode = "3169857";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "05":
{
strClientCode = "5QD.881.046.F";
strInnerCode = "3169853";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "06":
{
strClientCode = "5QD.881.045.H";
strInnerCode = "3170386";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "07":
{
strClientCode = "5QD.881.046.H";
strInnerCode = "3170387";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "08":
{
strClientCode = "3QD.881.045.A";
strInnerCode = "3170388";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "09":
{
strClientCode = "3QD.881.045.B";
strInnerCode = "3170389";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "10":
{
strClientCode = "3QD.881.046";
strInnerCode = "Undefined";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "11":
{
strClientCode = "3QD.881.045";
strInnerCode = "3170384";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
case "12":
{
strClientCode = "5QD.881.046.C";
strInnerCode = "3170385";
txtClientCode.Text = strClientCode;
txtInnerCode.Text = strInnerCode;
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品号", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductStatusCode)
{
case "1":
{
strProductStatusShow = "03S";
this.txtProductStatus.Text = strProductStatusShow;
break;
}
case "2":
{
strProductStatusShow = "01K";
this.txtProductStatus.Text = strProductStatusShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品状态码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strCompanyCode)
{
case "1":
{
strCompanyShow = "4RP";
this.txtCompanyCode.Text = strCompanyShow;
break;
}
default:
{
MessageBox.Show("条码不合格规范-公司代码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
this.dgvDisplay.Rows.Add(this.strDate, this.strUser, this.strBarcodeContext, this.strClassShow, this.strClientCode, this.strInnerCode);
}
}
private void timMain_Tick(object sender, EventArgs e)
{
strDate = DateTime.Now.ToString();
tssDate.Text = "日期:" strDate;
}
private void tsmParameterSerial_Click(object sender, EventArgs e)
{
if (srlBarcode.IsOpen == true)
{
try
{
srlBarcode.Close();
this.tssPort.Text = "端口状态:" this.strPortName "已关闭";
}
catch
{
MessageBox.Show("串口关闭失败了!\n\n可能原因:端口被占用或端口不存在", "条码采集系统");
}
}
frmSPSetting frmSPSDemo = new frmSPSetting();
if (frmSPSDemo.ShowDialog() == DialogResult.OK)
{
this.strPortName = frmSPSDemo.strPortName;
this.strBaudRate = frmSPSDemo.strBaudRate;
this.strDataBits = frmSPSDemo.strDataBits;
this.strStopBits = frmSPSDemo.strStopBits;
this.strParity = frmSPSDemo.strParity;
srlBarcode.PortName = this.strPortName;
srlBarcode.BaudRate = Convert.ToInt32(this.strBaudRate);
srlBarcode.DataBits = Convert.ToInt16(this.strDataBits);
srlBarcode.Parity = (Parity)Enum.Parse(typeof(Parity), this.strParity);
srlBarcode.StopBits = (StopBits)Enum.Parse(typeof(StopBits), this.strStopBits, true);
if (srlBarcode.IsOpen == false)
{
try
{
srlBarcode.Open();
this.tssPort.Text = "端口状态:" this.strPortName " 已打开";
}
catch
{
MessageBox.Show("串口打开失败了!\n\n可能原因:端口被占用或端口不存在。", "条码采集系统");
}
}
}
}
private void srlBarcode_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(50);
this.strReceive = srlBarcode.ReadExisting();
int intReceivedLength;//定义接收数据长度变量
strBarcodeContext = strReceive.Trim().ToString();//接收的内容
intReceivedLength = strBarcodeContext.Length;
bool bIsNString;
bIsNString = IsPureNumberString(strBarcodeContext);//调用纯数字字符的函数
if (!bIsNString)
{
MessageBox.Show("条码格式错误-包含非数字字符", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (intReceivedLength != 17)
{
MessageBox.Show("条码长度错误", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
strYear = strBarcodeContext.Substring(0, 4);
strMonth = strBarcodeContext.Substring(4, 2);
strDay = strBarcodeContext.Substring(6, 2);
strClass = strBarcodeContext.Substring(8, 1);
strFlowNumber = strBarcodeContext.Substring(9, 4);
strProductCode = strBarcodeContext.Substring(13, 2);
strProductStatusCode = strBarcodeContext.Substring(15, 1);
strCompanyCode = strBarcodeContext.Substring(16, 1);
switch (strClass)
{
case "1":
{
strClassShow = "A班";
break;
}
case "2":
{
strClassShow = "B班";
break;
}
case "3":
{
strClassShow = "C班";
break;
}
default:
{
MessageBox.Show("条码不合格规范-班次", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductCode)
{
case "01":
{
strClientCode = "8WD.881.045";
strInnerCode = "3169847";
break;
}
case "02":
{
strClientCode = "8WD.881.046";
strInnerCode = "3169849";
break;
}
case "03":
{
strClientCode = "8WD.881.045.A";
strInnerCode = "3169851";
break;
}
case "04":
{
strClientCode = "8WD.881.045.B";
strInnerCode = "3169857";
break;
}
case "05":
{
strClientCode = "5QD.881.046.F";
strInnerCode = "3169853";
break;
}
case "06":
{
strClientCode = "5QD.881.045.H";
strInnerCode = "3170386";
break;
}
case "07":
{
strClientCode = "5QD.881.046.H";
strInnerCode = "3170387";
break;
}
case "08":
{
strClientCode = "3QD.881.045.A";
strInnerCode = "3170388";
break;
}
case "09":
{
strClientCode = "3QD.881.045.B";
strInnerCode = "3170389";
break;
}
case "10":
{
strClientCode = "3QD.881.046";
strInnerCode = "Undefined";
break;
}
case "11":
{
strClientCode = "3QD.881.045";
strInnerCode = "3170384";
break;
}
case "12":
{
strClientCode = "5QD.881.046.C";
strInnerCode = "3170385";
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品号", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strProductStatusCode)
{
case "1":
{
strProductStatusShow = "03S";
break;
}
case "2":
{
strProductStatusShow = "01K";
break;
}
default:
{
MessageBox.Show("条码不合格规范-产品状态码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
switch (strCompanyCode)
{
case "1":
{
strCompanyShow = "4RP";
break;
}
default:
{
MessageBox.Show("条码不合格规范-公司代码", "条码采集系统", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
}
this.Invoke(new EventHandler(DisplayReceived));
}
private void DisplayReceived(object sender, EventArgs e)
{
this.txtBarcode.Text = this.strReceive.Trim();
this.txtYear.Text = strYear;
this.txtClass.Text = strClassShow;
this.txtClass.Text = strClassShow;
this.txtClass.Text = strClassShow;
this.txtProductCode.Text = strProductCode;
this.txtFlowNumber.Text = strFlowNumber;
this.txtDay.Text = strDay;
this.txtMonth.Text = strMonth;
this.txtClientCode.Text = strClientCode;
this.txtInnerCode.Text = strInnerCode;
this.txtCompanyCode.Text = strCompanyShow;
this.txtProductStatus.Text = strProductStatusShow;
this.dgvDisplay.Rows.Add(this.strDate, this.strUser, this.strBarcodeContext, this.strClassShow, this.strClientCode, this.strInnerCode);
}
private void tsmHelp_Click(object sender, EventArgs e)
{
MessageBox.Show("开发单位:中德合心国际交流学院\n --教研中心\nE-mail:mengqingzhan@xnyhm.com\n e_dream@126.com\nQQ:49518395\n", "条码采集系统",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
}
}