У меня есть стандартный термопринтер, работающий по USB и Bluetooth. В настоящее время я создаю приложение, в котором пользователь может печатать через принтер в режиме Bluetooth или USB.
Режим Bluetooth работает нормально. У меня возникли проблемы при использовании этого плагина для печати через USB.
<1>
Я не могу получить подключенный USB-устройство VID и PID любым способом. Возможно, что пользователь не будет использовать ту же модель, что и я, поскольку на рынке доступно множество моделей.
Если бы я смог получить результат сканирования подключенных USB-устройств, это было бы здорово (как я вижу из приложения Serial USB Terminal из магазина Play).
<2>
У меня есть собственное устройство VID и PID. Но запрос разрешения и затем открытие порта, похоже, вызывает много проблем.
Ниже мой код:
checkUSBConnectionStatus(){
let drivers = [
'CdcAcmSerialDriver', // crashed - array out of bound exception //insufficient number off endpoints(2)
'Ch34xSerialDriver', // open serial error: Failed send cmd [init #1]
'Cp21xxSerialDriver', // open serial error: Error setting baud rate.
'FtdiSerialDriver', // open serial error: Reset failed: result=-1
'ProlificSerialDriver', //open serial error: ControlTransfer with value 0x0 failed: -1
];
this.serial.requestPermission({
vid: '0471',
pid: '0055',
driver: 'FtdiSerialDriver' // or any other
})
.then(
res => {
console.log('request serial success: ',res);
this.toastCtrl.show('request serial success: ' + res);
this.openSerial();
},
error => {
console.log('request serial error: ',error);
this.toastCtrl.show('request serial error: ' + error);
}
);
}
openSerial(){
this.serial.open({
baudRate: 9600,
dataBits: 8,
stopBits: 1,
parity: 0,
dtr: false,
rts: false,
sleepOnPause: false
})
.then(
res => {
console.log('open serial success: ',res);
this.toastCtrl.show('open serial success: ' + res);
this.USBConnectionStatus = 'Connected';
},
error => {
console.log('open serial error: ',error);
this.toastCtrl.show('open serial error: ' + error);
const alert = this.alertCtrl.create({
title: 'Error!',
subTitle: 'Error Accessing USB Port',
buttons: ['Ok'],
enableBackdropDismiss: true
});
alert.present();
}
)
}
Часть запроса работает нормально, у меня возникли проблемы с открытием части.
Как видите, я пробовал все 5 доступных драйверов, так как не был в этом уверен. А также я отметил ошибку, брошенную для каждого из них в комментариях рядом с ними.
Также, кажется, есть необработанная ошибка, которая вызывает сбой моего приложения с первым драйвером. Где я предполагаю, что основной причиной является отсутствие необходимой конечной точки в моем принтере.
Кроме того, я попробовал все комбинации с DTR и RTS, которые были истинными и ложными, без разницы в результатах.
И в соответствии с настройками DIP-переключателя моего принтера, скорость BAUD настроена на 9600.
Принтер работает нормально с моими окнами, а также с моим OTG-кабелем все в порядке, поскольку он поддерживает мой флэш-накопитель. И, конечно же, запрашивающая часть работает над этим плагином.
Может кто-нибудь разобраться в этом и помочь мне?