我正在尝试设置一个简单的应用程序,我的Raspberry Pi 3可以通过USB向Zebra打印机发送原始打印命令。
我有一个可用的WPF c#应用程序,它将使用类似于https://support.microsoft.com/en-us/kb/322091的RawPrinterHelper
类在我的桌面上运行,但winspool.Drv不会在Pi3上运行,因为ARM处理器(据我所知)。
看到Windows 10 IoT需要UWP应用程序,我试图在UWP中重新编写应用程序。我有应用程序正常工作,但无法通过USB发送原始命令而没有来自winspool.Drv
类的RawPrinterHelper
。
我也尝试过按照此处所述通过蓝牙发送:Windows IoT - Zebra Bluetooth Printer
但似乎无法打开与配对设备的连接,因为var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
并未返回任何设备。这是我的代码:
private async void PrintAsync()
{
textBox.Text = "Searching for devices";
var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
if(devices.Count() == 0)
{
textBox.Text = "No devices found";
return;
}
textBox.Text = "Number of paired devices found: " + devices.Count();
var service = await RfcommDeviceService.FromIdAsync("DepotPrinter");
var socket = new StreamSocket();
await socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);
var writer = new DataWriter(socket.OutputStream);
var command = "^XA"
+ "^FO20,175^A0N,40,25^FD" + "Yo." + "^FS"
+ "^FO20,250^A0N,40,25^FD" + "IT WORKED!" + "^FS"
+ "^XZ";
writer.WriteString(command);
await writer.StoreAsync();
}
如果可行的话,我愿意在mono和Raspbian上运行我的应用程序。
任何帮助或指示都将不胜感激!
提前致谢!
更新:我正在使用RP3的板载蓝牙,而不是加密狗。