Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix type error and pass actual entered baud rate #634

Merged
merged 3 commits into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/api/src/graphql/inputs/SerialConnectionConfigInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default class SerialConnectionConfigInput {
port: string;

@Field(() => String)
baudRate: number;
baudRate: string | number;

constructor() {
this.port = '';
Expand Down
15 changes: 9 additions & 6 deletions src/api/src/graphql/resolvers/SerialMonitor.resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ import {
Subscription,
} from 'type-graphql';
import { Service } from 'typedi';
import SerialMonitorEvent from '../../models/SerialMonitorEvent';
import SerialMonitorLogUpdate from '../../models/SerialMonitorLogUpdate';
import SerialPortInformation from '../../models/SerialPortInformation';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import SerialMonitorService, {
SerialMonitorEventPayload,
SerialMonitorLogUpdatePayload,
} from '../../services/SerialMonitor';
import SerialPortInformation from '../../models/SerialPortInformation';
import SerialPortConnectResult from '../objects/SerialPortConnectResult';
import SerialConnectionConfigInput from '../inputs/SerialConnectionConfigInput';
import SerialPortConnectResult from '../objects/SerialPortConnectResult';
import SerialPortDisconnectResult from '../objects/SerialPortDisconnectResult';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import SerialMonitorLogUpdate from '../../models/SerialMonitorLogUpdate';
import SerialMonitorEvent from '../../models/SerialMonitorEvent';

@Service()
@Resolver()
Expand All @@ -35,7 +35,10 @@ export default class SerialMonitorResolver {
input: SerialConnectionConfigInput
): Promise<SerialPortConnectResult> {
try {
await this.serialMonitorService.connect(input.port, input.baudRate);
await this.serialMonitorService.connect(
input.port,
parseInt(`${input.baudRate}`, 10)
);
return new SerialPortConnectResult(true);
} catch (e) {
return new SerialPortConnectResult(false, `Error occurred: ${e}`);
Expand Down
57 changes: 29 additions & 28 deletions src/api/src/services/BinaryFlashingStrategy/index.ts
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
/* eslint-disable no-bitwise */
import { Service } from 'typedi';
import fs from 'fs';
import { PubSubEngine } from 'graphql-subscriptions';
import * as os from 'os';
import semver from 'semver';
import path from 'path';
import fs from 'fs';
import UserDefine from '../../models/UserDefine';
import FirmwareSource from '../../models/enum/FirmwareSource';
import semver from 'semver';
import { Service } from 'typedi';
import UserDefinesTxtFactory from '../../factories/UserDefinesTxtFactory';
import TargetArgs from '../../graphql/args/Target';
import GitRepository from '../../graphql/inputs/GitRepositoryInput';
import BuildFlashFirmwareResult from '../../graphql/objects/BuildFlashFirmwareResult';
import FirmwareBuilder from '../../library/FirmwareBuilder';
import UserDefineKey from '../../library/FirmwareBuilder/Enum/UserDefineKey';
import {
GitFirmwareDownloader,
findGitExecutable,
} from '../../library/FirmwareDownloader';
import Mutex from '../../library/Mutex';
import Platformio from '../../library/Platformio';
import { LoggerService } from '../../logger';
import Device from '../../models/Device';
import UserDefine from '../../models/UserDefine';
import BuildFirmwareErrorType from '../../models/enum/BuildFirmwareErrorType';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import BuildJobType from '../../models/enum/BuildJobType';
import BuildProgressNotificationType from '../../models/enum/BuildProgressNotificationType';
import BuildFirmwareStep from '../../models/enum/FirmwareBuildStep';
import { LoggerService } from '../../logger';
import UserDefineKey from '../../library/FirmwareBuilder/Enum/UserDefineKey';
import FirmwareSource from '../../models/enum/FirmwareSource';
import UserDefinesMode from '../../models/enum/UserDefinesMode';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import { BuildFlashFirmwareParams } from '../FlashingStrategyLocator/BuildFlashFirmwareParams';
import {
createBinaryCopyWithCanonicalName,
removeDirectoryContents,
} from '../FlashingStrategyLocator/artefacts';
import { FirmwareVersionData } from '../FlashingStrategyLocator/FirmwareVersionData';
import {
FlashingStrategy,
IsCompatibleArgs,
} from '../FlashingStrategyLocator/FlashingStrategy';
import TargetArgs from '../../graphql/args/Target';
import GitRepository from '../../graphql/inputs/GitRepositoryInput';
import Device from '../../models/Device';
import { UserDefineFilters } from '../UserDefinesLoader';
import BuildJobType from '../../models/enum/BuildJobType';
import BuildFlashFirmwareResult from '../../graphql/objects/BuildFlashFirmwareResult';
import {
findGitExecutable,
GitFirmwareDownloader,
} from '../../library/FirmwareDownloader';
import DeviceDescriptionsLoader from './DeviceDescriptionsLoader';
import { FirmwareVersionData } from '../FlashingStrategyLocator/FirmwareVersionData';
import Platformio from '../../library/Platformio';
import FirmwareBuilder from '../../library/FirmwareBuilder';
import UserDefinesMode from '../../models/enum/UserDefinesMode';
import UserDefinesTxtFactory from '../../factories/UserDefinesTxtFactory';
import BinaryConfigurator from './BinaryConfigurator';
createBinaryCopyWithCanonicalName,
removeDirectoryContents,
} from '../FlashingStrategyLocator/artefacts';
import {
maskBuildFlashFirmwareParams,
maskSensitiveData,
} from '../FlashingStrategyLocator/masks';
import { UserDefineFilters } from '../UserDefinesLoader';
import BinaryConfigurator from './BinaryConfigurator';
import CloudBinariesCache from './CloudBinariesCache';
import DeviceDescriptionsLoader from './DeviceDescriptionsLoader';
import { DeviceDescription } from './TargetsJSONLoader';

@Service()
Expand Down Expand Up @@ -577,6 +577,7 @@ export default class BinaryFlashingStrategyService implements FlashingStrategy {
params
);
}
console.log({ flasherArgs });
const binaryConfiguratorResult = await this.binaryConfigurator.run(
flasherPath,
flasherArgs,
Expand Down
9 changes: 5 additions & 4 deletions src/api/src/services/SerialMonitor/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Service } from 'typedi';
import { SerialPort } from 'serialport';
import { PubSubEngine } from 'graphql-subscriptions';
import SerialPortInformation from '../../models/SerialPortInformation';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import { SerialPort } from 'serialport';
import { Service } from 'typedi';
import { LoggerService } from '../../logger';
import SerialPortInformation from '../../models/SerialPortInformation';
import SerialMonitorEventType from '../../models/enum/SerialMonitorEventType';
import PubSubTopic from '../../pubsub/enum/PubSubTopic';
import { insideFlatpak, listPorts } from './flatpak';

export interface SerialMonitorLogUpdatePayload {
Expand Down Expand Up @@ -61,6 +61,7 @@ export default class SerialMonitorService {
await this.disconnect();
}

console.log({ message: 'Connecting to serial device', device, baudRate });
this.port = new SerialPort({
path: device,
baudRate,
Expand Down
19 changes: 10 additions & 9 deletions src/main/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
* When running `yarn build` or `yarn build-main`, this file is compiled to
* `./src/main.js` using webpack. This gives us some performance wins.
*/
import 'reflect-metadata';
import 'core-js/stable';
import 'regenerator-runtime/runtime';
import path from 'path';
import { app, BrowserWindow, dialog, ipcMain, shell, session } from 'electron';
import { mkdirp } from 'mkdirp';
import winston from 'winston';
import { BrowserWindow, app, dialog, ipcMain, session, shell } from 'electron';
import fs from 'fs';
import { mkdirp } from 'mkdirp';
import path from 'path';
import 'reflect-metadata';
import 'regenerator-runtime/runtime';
import { URL } from 'url';
import MenuBuilder from './menu';
import winston from 'winston';
import ApiServer from '../api';
import WinstonLoggerService from '../api/src/logger/WinstonLogger';
import Updater from '../app/updater';
import {
ChooseFolderResponseBody,
IpcRequest,
Expand All @@ -26,8 +27,7 @@ import {
SaveFileResponseBody,
UpdateBuildStatusRequestBody,
} from '../ipc';
import Updater from '../app/updater';
import WinstonLoggerService from '../api/src/logger/WinstonLogger';
import MenuBuilder from './menu';

import packageJson from '../../package.json';

Expand Down Expand Up @@ -394,6 +394,7 @@ const createWindow = async () => {
: path.join(__dirname, '../../.erb/dll/preload.js'),
},
});
// mainWindow.webContents.openDevTools();
mainWindow.on('close', (e) => {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
if (buildInProgress) {
Expand Down
6 changes: 3 additions & 3 deletions src/ui/components/SerialConnectionForm/index.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Box, Button, Grid, TextField } from '@mui/material';
import React, { FunctionComponent, useEffect, useState } from 'react';
import { SxProps, Theme } from '@mui/system';
import React, { FunctionComponent, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import Omnibox, { Option } from '../Omnibox';
import {
SerialPortInformation,
useAvailableDevicesListQuery,
} from '../../gql/generated/types';
import Loader from '../Loader';
import Omnibox, { Option } from '../Omnibox';
import ShowAlerts from '../ShowAlerts';

const styles: Record<string, SxProps<Theme>> = {
Expand Down Expand Up @@ -123,7 +123,7 @@ const SerialConnectionForm: FunctionComponent<SerialConnectionFormProps> = (
}, [data, previousData]);
const onSubmit = () => {
if (currentValue !== null) {
onConnect(currentValue?.value, baudRate);
onConnect(currentValue?.value, currentBaud);
}
};
return (
Expand Down