Skip to content

Commit

Permalink
Add additional fingerprints + tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Koenkk authored and Nerivec committed Oct 10, 2024
1 parent f0eacd3 commit e608391
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 15 deletions.
34 changes: 22 additions & 12 deletions src/adapter/adapterDiscovery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,14 +112,15 @@ const USB_FINGERPRINTS: Record<DiscoverableUSBAdapter, USBAdapterFingerprint[]>
vendorId: '0403',
productId: '6015',
manufacturer: 'Electrolama',
pathRegex: '.*electrolame.*', // TODO
pathRegex: '.*electrolama.*',
},
{
// slae.sh cc2652rb
vendorId: '10c4',
productId: 'ea60',
// manufacturer: '',
pathRegex: '.*2652.*',
manufacturer: 'Silicon Labs',
// /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_21_A8_EC_79-if00-port0
pathRegex: '.*slae\.sh_cc2652rb.*',
},
{
// Sonoff ZBDongle-P (CC2652P)
Expand Down Expand Up @@ -147,18 +148,11 @@ const USB_FINGERPRINTS: Record<DiscoverableUSBAdapter, USBAdapterFingerprint[]>
pathRegex: '.*CC2531.*',
},
{
// CC1352P_2
vendorId: '0451',
productId: 'bef3',
manufacturer: 'Texas Instruments',
pathRegex: '.*CC1352P_2.*', // TODO
},
{
// CC26X2R1
// Texas instruments launchpads
vendorId: '0451',
productId: 'bef3',
manufacturer: 'Texas Instruments',
pathRegex: '.*CC26X2R1.*', // TODO
pathRegex: '.*Texas_Instruments.*',
},
{
// SMLight slzb-07p7
Expand All @@ -168,6 +162,22 @@ const USB_FINGERPRINTS: Record<DiscoverableUSBAdapter, USBAdapterFingerprint[]>
// /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_be9faa0786e1ea11bd68dc2d9a583111-if00-port0
pathRegex: '.*SLZB-07p7.*',
},
{
// SMLight slzb-06p7
vendorId: '10c4',
productId: 'ea60',
manufacturer: 'SMLIGHT',
// /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-06p7_82e43faf9872ed118bb924f3fdf7b791-if00-port0
pathRegex: '.*SMLIGHT_SLZB-06p7_.*',
},
{
// SMLight slzb-06p10
vendorId: '10c4',
productId: 'ea60',
manufacturer: 'SMLIGHT',
// /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-06p10_40df2f3e3977ed11b142f6fafdf7b791-if00-port0
pathRegex: '.*SMLIGHT_SLZB-06p10_.*',
},
{
// TubesZB ?
vendorId: '10c4',
Expand Down
24 changes: 23 additions & 1 deletion test/adapter/adapter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {SerialPort} from '../../src/adapter/serialPort';
import {ZStackAdapter} from '../../src/adapter/z-stack/adapter';
import {ZBOSSAdapter} from '../../src/adapter/zboss/adapter';
import {ZiGateAdapter} from '../../src/adapter/zigate/adapter';
import {DECONZ_CONBEE_II, EMBER_SKYCONNECT, EMBER_ZBDONGLE_E, ZBOSS_NORDIC, ZIGATE_PLUSV2, ZSTACK_CC2538, ZSTACK_ZBDONGLE_P} from '../mockAdapters';
import {DECONZ_CONBEE_II, EMBER_SKYCONNECT, EMBER_ZBDONGLE_E, ZBOSS_NORDIC, ZIGATE_PLUSV2, ZSTACK_CC2538, ZSTACK_SMLIGHT_SLZB_06P10, ZSTACK_SMLIGHT_SLZB_07, ZSTACK_ZBDONGLE_P} from '../mockAdapters';

const mockBonjourResult = jest.fn().mockImplementation((type) => ({
name: 'Mock Adapter',
Expand Down Expand Up @@ -307,6 +307,28 @@ describe('Adapter', () => {
path: '/dev/ttyACM0',
adapter: 'zstack',
});

listSpy.mockReturnValueOnce([ZSTACK_SMLIGHT_SLZB_06P10]);

adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, 'test.db.backup', {disableLED: false});

expect(adapter).toBeInstanceOf(ZStackAdapter);
// @ts-expect-error protected
expect(adapter.serialPortOptions).toStrictEqual({
path: ZSTACK_SMLIGHT_SLZB_06P10.path,
adapter: 'zstack',
});

listSpy.mockReturnValueOnce([ZSTACK_SMLIGHT_SLZB_07]);

adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, 'test.db.backup', {disableLED: false});

expect(adapter).toBeInstanceOf(EmberAdapter);
// @ts-expect-error protected
expect(adapter.serialPortOptions).toStrictEqual({
path: ZSTACK_SMLIGHT_SLZB_07.path,
adapter: 'ember',
});
});

it('returns first from list with multiple adapters - nothing to match against', async () => {
Expand Down
18 changes: 16 additions & 2 deletions test/mockAdapters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export const EMBER_ZBDONGLE_E = {
productId: '55d4',
manufacturer: 'ITEAD',
};
// vendorId+productId conflict with ZSTACK_ZBDONGLE_P
// vendorId+productId conflict with all 10c4:ea60
export const EMBER_SKYCONNECT = {
path: '/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_3abe54797c91ed118fc3cad13b20a111-if00-port0',
vendorId: '10c4',
Expand All @@ -23,13 +23,27 @@ export const ZSTACK_CC2538 = {
productId: '16C8', // uppercased for extra coverage
manufacturer: 'Texas Instruments',
};
// vendorId+productId conflict with EMBER_SKYCONNECT
// vendorId+productId conflict with all 10c4:ea60
export const ZSTACK_ZBDONGLE_P = {
path: '/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0111-if00-port0',
vendorId: '10c4',
productId: 'ea60',
manufacturer: 'ITEAD',
};
// vendorId+productId conflict with all 10c4:ea60
export const ZSTACK_SMLIGHT_SLZB_06P10 = {
path: '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-06p10_40df2f3e3977ed11b142f6fafdf7b791-if00-port0',
vendorId: '10c4',
productId: 'ea60',
manufacturer: 'SMLIGHT',
};
// vendorId+productId conflict with all 10c4:ea60
export const ZSTACK_SMLIGHT_SLZB_07 = {
path: '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07_be9faa0786e1ea11bd68dc2d9a583111-if00-port0',
vendorId: '10c4',
productId: 'ea60',
manufacturer: 'SMLIGHT',
};
export const ZBOSS_NORDIC = {
path: '/dev/serial/by-id/usb-ZEPHYR_Zigbee_NCP_54ACCFAFA6DADC49-if00',
vendorId: '2fe3',
Expand Down

0 comments on commit e608391

Please sign in to comment.