You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

245 lines
8.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Mesnac.Compressor.Data;
using Mesnac.Compressor.Station;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace BusinessTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string GetABarCode(string barcode)
{
string iflag = "";
try
{
StringBuilder sb = new StringBuilder();
if (barcode != "")
{
sb.Append(" SELECT TOP(1) SemiBarcode FROM T_RP_BarcodeRelationShip WHERE ProductBarcode='").Append(barcode).Append("' order by InsertTime desc");
}
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = "";
//ICSharpCode.Core.LoggingService.InfoFormatted("查询上工位信息:{0},{1}", sb.ToString(), barcode);
db.dbHelper.CommandText = sb.ToString();
var obj = db.dbHelper.ToScalar();
if (obj != null)
{
return obj.ToString();
}
else
{
return "";
}
}
catch (Exception ex)
{
return iflag;
}
}
private void button1_Click(object sender, EventArgs e)
{
DbHandler db = new DbHandler();
string aaaa = GetABarCode("E26A00MBB24080609109");
//string LastWorkInfo = LastWorkProductionInfo("E26A00MBB24041215513", "T_RP_StationPara_B140", "ScanBarcode");
//TEST();
//bool bflag = UpdateTraceReStartStation("1", "9", "10", "E26T00MBB24041109028", "AA2404110144");
int codelength = 0;
string code = "A240411014";
//if (code.Length != 0)
//{
// codelength = code.Length + 1;
//}
//code = code.PadRight(20);
object[] bytes = new object[code.Length];
object[] newbytes = new object[20] {0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
byte[] buffer = new byte[bytes.Length];
buffer = System.Text.ASCIIEncoding.Default.GetBytes(code);
byte[] addrby = new byte[2] {0x41,0x32 };
uint aaa = Convert.ToUInt32(addrby);
string ssss = "";
for (int i = 0; i < buffer.Length; i++)
{
string s = ",";
if (i == buffer.Length-2)
{
s = "";
}
ssss += buffer[i].ToString("X") + buffer[i + 1].ToString("X") + s;
i = i + 1;
}
string[] sss2 = ssss.Trim().Split(',');
for (int i = 0; i < sss2.Length; i++)
{
bytes[i] = Convert.ToInt32(sss2[i],16);
}
Array.Copy(bytes,0, newbytes,0, bytes.Length);
string sss = buffer[0].ToString("X") + buffer[1].ToString("X");
bytes[0] = sss;
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = buffer[i] + buffer[i + 1];
}
//string ss = getSemiBarcodeAByDongPanCode("E26A00MBB2");
string ISDis = db.getChongTouStateByBarCode("2403150139");
string dateCode = DateTime.Now.ToString("yyMMdd");
//string year = dateCode.Substring(0, 2);
//string mouth = dateCode.Substring(2, 2);
//string day = dateCode.Substring(4, 2);
//string test = day + mouth + year;
bool isNG = db.GetStationNGBySemiBarCode("A2303220080");
}
private void TEST()
{
string inputString = "A221205018";
inputString.PadRight(20, '0');
byte[] asciiBytes = Encoding.ASCII.GetBytes(inputString); // 将字符串转换为 ASCII 码数组
StringBuilder hexBuilder = new StringBuilder();
foreach (byte b in asciiBytes)
{
hexBuilder.Append(b.ToString("X2")); // 将每个 ASCII 码转换为 2 位的 16 进制表示
}
string hexString = hexBuilder.ToString();
Console.WriteLine(hexString); // 输出 ASCII 码转换为 16 进制后的字符串
// 如果需要将 16 进制字符串转换回 ASCII 码,可以使用以下方法:
byte[] convertedBytes = new byte[hexString.Length / 2];
for (int i = 0; i < hexString.Length; i += 2)
{
convertedBytes[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
}
string convertedString = Encoding.ASCII.GetString(convertedBytes);
Console.WriteLine(convertedString); // 输出将 16 进制字符串转换回 ASCII 码后的字符串
}
public string LastWorkProductionInfo(string barcode, string TableName, string Param)
{
string iflag = "";
try
{
StringBuilder sb = new StringBuilder();
sb.Append(" SELECT TOP(1) State FROM " + TableName + " WHERE ").Append(Param + "='").Append(barcode).Append("' order by InsertTime desc ");
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = "";
db.dbHelper.CommandText = sb.ToString();
var obj = db.dbHelper.ToScalar();
if (obj != null)
{
return obj.ToString();
}
else
{
return "";
}
}
catch (Exception ex)
{
return iflag;
}
}
public bool UpdateTraceReStartStation(string ISDis, string CurrentStationID, string RestartStation, string ProductBarcode, string SemiBarcode_A)
{
StringBuilder sb = new StringBuilder();
try
{
if (string.IsNullOrEmpty(ProductBarcode))
{
sb.Append(" UPDATE dbo.T_SY_TraceState SET ISDis = '").Append(ISDis);
sb.Append("' , RestartStation='").Append(RestartStation).Append("' ,CurrentStationID='").Append(CurrentStationID).Append("'").Append(" WHERE SemiBarcode_A='").Append(SemiBarcode_A).Append("' ");
}
else
{
sb.Append(" UPDATE dbo.T_SY_TraceState SET ProductBarcode = '").Append(ProductBarcode).Append(" ',ISDis = '").Append(ISDis);
sb.Append("' , RestartStation='").Append(RestartStation).Append("' ,CurrentStationID='").Append(CurrentStationID).Append("'").Append(" WHERE SemiBarcode_A='").Append(SemiBarcode_A).Append("' ");
}
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = sb.ToString();
db.dbHelper.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 16进制转换成字符串
/// </summary>
/// <param name="hs">
/// <param name="encode">
/// <returns></returns>
public string HexStringToString(string hs, Encoding encode)
{
StringBuilder strTemp = new StringBuilder();
byte[] b = new byte[hs.Length / 2];
for (int i = 0; i < hs.Length / 2; i++)
{
strTemp.Clear();
strTemp.Append(hs.Substring(i * 2, 2));
b[i] = Convert.ToByte(strTemp.ToString(), 16);
}
return encode.GetString(b);
}
private byte[] ReverseBytesByWord(byte[] buffer, int index, int length)
{
if (buffer == null) return null;
// copy data
byte[] tmp = new byte[length];
for (int i = 0; i < length; i++)
{
tmp[i] = buffer[index + i];
}
// change
for (int i = 0; i < length / 2; i++)
{
byte b = tmp[i * 2 + 0];
tmp[i * 2 + 0] = tmp[i * 2 + 1];
tmp[i * 2 + 1] = b;
}
return tmp;
}
}
}