implementing the bootp protocol version of digitronic to change ip-adresses on DigiWEB devices
npm install digitronic-bootpImplementation of the bootp protocol version of digitronic to change ip-addresses on DigiWEB devices
you can find devices in the network with the device event.
``typescript`
const bootp = new DigitronicBootpServer();
bootp.on('device', (device)=>{
console.log(device);
})
await bootp.open();
find a device with a specific MAC-address on the network.
The returned promise will be rejected if we cannot find the device on the network.
- mac -> mac address of the device that should be found
- networkInterface -> network interface of the device where the device is connected to.
If this parameter is not passed we're searching on all interfaces
- tries -> since we're communicating via udp broadcast there's high chance to
loose some packets (especially on big networks). So the function retries the
process with the given number before it rejects
`typescript`
const bootp = new DigitronicBootpServer();
await bootp.open();
const foundDevice = await bootp.findDevice('001122334455');
changes the IP of the device.
- mac -> mac address of the device that should be found
- ip -> new ip address of the device as number
- tries -> number of unsuccessful tries before the function rejects
- networkInterface -> network interface of the device where the device is connected to.
If this parameter is not passed we're using on all interfaces
`typescript`
const bootp = new DigitronicBootpServer();
await bootp.open();
const wantedIp = 0xC0A80203; //192.168.2.3
await bootp.setIp('001122334455', wantedIp);
Helper class to get a list of all available devices on the network
`typescript``
const deviceService = new DeviceService();
deviceService.on('change', (devices: Device[]) => {
console.log(devices);
});
deviceService.on('device-updated', (device:Device, devices: Device[]) => {
console.log(device, devices);
});
deviceService.on('device-added', (device:Device, devices: Device[]) => {
console.log(device, devices);
});
await deviceService.open();