ipcHandlers.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. 'use strict';
  2. const scanForPorts = require('./scanForPorts');
  3. const flash = require('./flash');
  4. const {ipcMain} = require('electron');
  5. function onPortScanComplete(err, ports, event) {
  6. if (err) {
  7. event.sender.send('portError', { message: err.message });
  8. }
  9. else if (ports.length === 0) {
  10. event.sender.send('noPortError', { message: 'No serial ports detected.' });
  11. }
  12. else {
  13. event.sender.send('portsFound', ports);
  14. }
  15. }
  16. function setupScanForPorts() {
  17. ipcMain.on('scanForPorts', event => {
  18. scanForPorts(
  19. (err, ports) => {
  20. onPortScanComplete(err, ports.map(port => port.comName), event);
  21. }
  22. );
  23. });
  24. }
  25. function setupFlash() {
  26. ipcMain.on('flash', (event, port, manifestURL) => {
  27. flash(port, manifestURL, err => {
  28. event.sender.send('flashError', {message: err.message});
  29. },
  30. (percent, message) => {
  31. event.sender.send('flashProgress', {percent, message});
  32. },
  33. () => {
  34. event.sender.send('flashComplete');
  35. });
  36. });
  37. }
  38. function initializeIpcHandlers() {
  39. setupScanForPorts();
  40. setupFlash();
  41. }
  42. module.exports = initializeIpcHandlers;