feat: show udev rules on missing device screen (#842)
* feat: show udev rules on missing device screen * delete MissingDeviceComponent * feat: change privilege and message device screen texts * feat: change message device screen texts * fix: load config from device * fix: load config when hasPermission = true * fix: load app start info after set permission rules * fix: action dispatch * fix: load config from device when UdevRulesInfo.Ok * fix: load config from device when 0 device available * feat: add extra space between the "old udev rule" and permission button
This commit is contained in:
committed by
László Monda
parent
10cd06c70b
commit
1a9bd7de83
@@ -1,5 +1,7 @@
|
||||
import { Device } from 'node-hid';
|
||||
import { DeviceConnectionState, LogService } from 'uhk-common';
|
||||
import { readFile } from 'fs-extra';
|
||||
import { EOL } from 'os';
|
||||
import { LogService } from 'uhk-common';
|
||||
|
||||
import { Constants, UsbCommand } from './constants';
|
||||
|
||||
@@ -98,13 +100,7 @@ export async function retry(command: Function, maxTry = 3, logService?: LogServi
|
||||
}
|
||||
}
|
||||
|
||||
export const deviceConnectionStateComparer = (a: DeviceConnectionState, b: DeviceConnectionState): boolean => {
|
||||
return a.hasPermission === b.hasPermission
|
||||
&& a.connected === b.connected
|
||||
&& a.bootloaderActive === b.bootloaderActive;
|
||||
};
|
||||
|
||||
export const isUhkDevice = (dev: Device): boolean => {
|
||||
export const isUhkZeroInterface = (dev: Device): boolean => {
|
||||
return dev.vendorId === Constants.VENDOR_ID &&
|
||||
dev.productId === Constants.PRODUCT_ID &&
|
||||
// hidapi can not read the interface number on Mac, so check the usage page and usage
|
||||
@@ -112,3 +108,17 @@ export const isUhkDevice = (dev: Device): boolean => {
|
||||
(dev.usagePage === (0xFF00 | 0x00) && dev.usage === 0x01) || // New firmware
|
||||
dev.interface === 0);
|
||||
};
|
||||
|
||||
export const isUhkDevice = (dev: Device): boolean => {
|
||||
return dev.vendorId === Constants.VENDOR_ID &&
|
||||
(dev.productId === Constants.PRODUCT_ID || dev.productId === Constants.BOOTLOADER_ID);
|
||||
};
|
||||
|
||||
export const getFileContentAsync = async (filePath: string): Promise<Array<string>> => {
|
||||
const fileContent = await readFile(filePath, {encoding: 'utf-8'});
|
||||
|
||||
return fileContent
|
||||
.split(EOL)
|
||||
.map(x => x.trim())
|
||||
.filter(x => !x.startsWith('#') && x.length > 0);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user