我有一个Partner Tech CD7220-U 1.0客户显示器,我正在尝试使用C#
开发POS系统。我需要使用客户显示器显示单价和总金额。
所以我搜索了谷歌,发现很少的解决方案在显示屏上显示文字。
这是我遵循的链接,
1)http://www.codeproject.com/Questions/67846/How-to-display-text-on-USB-Posiflex-Customer-Displ
2)http://www.codeproject.com/Tips/658377/PartnerTech-CD-POS-Customer-Display-NET-Class
在示例(1)中
using Microsoft.PointOfService;
private const string WelcomeMessage = "Welcome\r\n";
private PosExplorer posExplorer;
private LineDisplay posLineDisplay;
private DeviceInfo posLineDisplaydevice;
public void LineDisplayUnit()
{
this.posExplorer = new PosExplorer(this);
this.posLineDisplaydevice = this.posExplorer.GetDevice("LineDisplay", "POSIFLEX_LINEDISPLAY");
try
{
this.posLineDisplay = (LineDisplay)this.posExplorer.CreateInstance(this.posLineDisplaydevice);
this.posLineDisplay.Open();
this.posLineDisplay.Claim(1000);
this.posLineDisplay.DeviceEnabled = true;
this.posLineDisplay.DisplayText(WelcomeMessage);
this.posLineDisplay.DisplayTextAt(2, 1, this.LeftAlign("Amount", 7) + this.RightAlign(this.GrandTotalAmount.ToString("0.00"), 12));
this.posLineDisplay.Close();
}
catch (Exception)
{
}
}
我有以下例外情况
在示例中,我可以将文本发送到客户显示器。但我无法清除屏幕。
这是代码
public void WriteSomethingRedToPrinterThroughDisplay()
{
cUSB.OpenPort(); // Open the USB Port
cUSB.WritePort(Strings.Chr(12)); // Clear pole display
cUSB.WritePort(Strings.Chr(27) + Strings.Chr(61) +
Strings.Chr(1)); // Send print through pole display
cUSB.WritePort(Strings.Chr(27) + Strings.Chr(64)); // Initialize printer
cUSB.WritePort(Strings.Chr(27) + Strings.Chr(114) +
Strings.Chr(1)); // Select Red color to print
cUSB.WritePort(string.Format("{0,-10}{1,7:-0.000}
{2,10:0.00}{3,13:-0.00}", tempitemid, tempunits,
tempunitprice, tempsubtotal) + Strings.Chr(10)); // Print text and new line
cUSB.WritePort(Strings.Chr(27) + Strings.Chr(114) +
Strings.Chr(0)); // Set color to default Black
cUSB.WritePort(Strings.Chr(27) + Strings.Chr(61) +
Strings.Chr(2)); // De-select printer and enable pole display
cUSB.ClosePort(); // Close the USB Port
}
请向我发送正确的教程或正确的方法,以在人机界面上显示文字。我们将非常感谢您的帮助。
答案 0 :(得分:3)
使用您上面提到的second link。
您可以原样使用public class USB
。
使用cUSB.WritePort("\f")
清除极点显示。
private void button1_Click(object sender, EventArgs e)
{
cUSB.OpenPort(); // Open the USB Port
cUSB.WritePort("\f"); // Clear pole display
cUSB.ClosePort();
}
我认为以下代码对您也很有用。
\f
- 清除屏幕
\n
- 带标签的新行
\r
- 下一行
\t
- 标签
\v
- 第一行第一列