Skip to content
This repository has been archived by the owner on Aug 6, 2024. It is now read-only.

Commit

Permalink
Merge pull request #189 from leaphy-robotics/cleanup
Browse files Browse the repository at this point in the history
fix: clean up code
  • Loading branch information
koen1711 authored Mar 24, 2024
2 parents c1fc2ea + b5d94d7 commit 7bc439c
Show file tree
Hide file tree
Showing 38 changed files with 841 additions and 1,067 deletions.
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,16 @@
"buffer": "^6.0.3",
"chart.js": "^3.8.0",
"chartjs-adapter-moment": "^1.0.0",
"intel-hex": "^0.2.0",
"jquery": "^3.5.1",
"jszip": "^3.10.1",
"moment": "^2.29.4",
"moment": "^2.30.1",
"ng-terminal": "~6.1.0",
"ng2-charts": "3.0.11",
"ngx-matomo": "2.0.0",
"papaparse": "^5.4.1",
"prismjs": "^1.28.0",
"rxjs": "~7.5.5",
"showdown": "^2.1.0",
"stream-browserify": "^3.0.0",
"tslib": "^2.4.0",
"zone.js": "~0.14.3"
},
Expand Down
2 changes: 0 additions & 2 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

import { BackendWiredEffects } from './effects/backend.wired.effects';
import { BlocklyEditorEffects } from './effects/blockly-editor.effects';
import { DialogEffects } from './effects/dialog.effects';
import { AppEffects } from './effects/app.effects';
Expand Down Expand Up @@ -62,7 +61,6 @@ export function createTranslateLoader(http: HttpClient) {
provide: APP_INITIALIZER, deps:
[
AppEffects,
BackendWiredEffects,
BlocklyEditorEffects,
DialogEffects,
CodeEditorEffects,
Expand Down
65 changes: 63 additions & 2 deletions src/app/domain/robot.type.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import BaseProtocol from "../services/arduino-uploader/protocols/base";
import Avrdude from "../services/arduino-uploader/protocols/avrdude";
import DFU from "../services/arduino-uploader/protocols/dfu";
import Pico from "../services/arduino-uploader/protocols/pico";

interface Features {
showLeaphyActuators: boolean;
Expand All @@ -16,20 +19,24 @@ const DEFAULTS: Features = {
showCodeOnStart: false
};

interface ProtocolInformation {
protocol: typeof BaseProtocol;
microcontroller?: string;
}

export class RobotType {
public features: Features;

constructor(
public id: string,
public protocol: typeof BaseProtocol,
public protocol: ProtocolInformation,
public name: string,
public svgname: string,
public background: string,
public fqbn: string,
public core: string,
public libs: string[],
features?: Partial<Features>,
public microcontroller?: string
) {
this.features = Object.assign({}, DEFAULTS, features||{});
}
Expand All @@ -45,3 +52,57 @@ export interface RobotSelector {
intercept: RobotType,
choices: RobotEntry[][],
}


export class BaseUno extends RobotType {
constructor(
id: string,
name: string,
svgname: string,
background: string,
libs: string[],
features?: Partial<Features>,
) {
super(id, {protocol: Avrdude, microcontroller: 'atmega328p'}, name, svgname, background, "arduino:avr:uno", "arduino:avr", libs, features);
}
}

export class BaseNano extends RobotType {
constructor(
id: string,
name: string,
svgname: string,
background: string,
libs: string[],
features?: Partial<Features>,
) {
super(id, {protocol: Avrdude, microcontroller: 'atmega328p'}, name, svgname, background, "arduino:avr:nano", "arduino:avr", libs, features);
}
}

export class BaseNanoESP32 extends RobotType {
constructor(
id: string,
name: string,
svgname: string,
background: string,
libs: string[],
features?: Partial<Features>,
) {
super(id, {protocol: DFU}, name, svgname, background, "arduino:esp32:nano_nora", "arduino:esp32", libs, features);
}
}

export class BaseNanoRP2040 extends RobotType {
constructor(
id: string,
name: string,
svgname: string,
background: string,
libs: string[],
features?: Partial<Features>,
) {
super(id, {protocol: Pico}, name, svgname, background, "arduino:mbed_nano:nanorp2040connect", "arduino:mbed_nano", libs, features);
}
}

181 changes: 181 additions & 0 deletions src/app/domain/robots.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
import Avrdude from "../services/arduino-uploader/protocols/avrdude";
import {BaseNano, BaseNanoESP32, BaseNanoRP2040, BaseUno, RobotType} from "./robot.type";

const defaultLibraries = [
'Leaphy Original Extension', 'Leaphy Extra Extension', 'Servo', 'Adafruit GFX Library', 'Adafruit SSD1306', 'Adafruit LSM9DS1 Library',
'Adafruit Unified Sensor', 'List', 'Adafruit SGP30 Sensor', 'Adafruit_VL53L0X', 'Adafruit BMP280 Library', 'TM1637', 'LedControl'
]

export const leaphyOriginalRobotType = new BaseUno(
'l_original_uno',
'Leaphy Original',
'orig.svg',
'orig_uno.svg',
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyActuators: true,
showLeaphyOperators: false,
showLeaphySensors: true,
},
);


export const leaphyOriginalNanoRobotType = new BaseNano(
'l_original_nano',
'Original Nano',
'orig.svg',
'orig_nano.svg',
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyActuators: true,
showLeaphyOperators: true,
showLeaphySensors: true,
},
);

export const leaphyOriginalNanoESP32RobotType = new BaseNanoESP32(
'l_original_nano_esp32',
'Original Nano ESP32',
'orig.svg',
'orig_nano_esp32.svg',
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyActuators: true,
showLeaphyOperators: true,
showLeaphySensors: true,
},
)

export const leaphyOriginalNanoRP2040RobotType = new BaseNanoRP2040(
'l_original_nano_rp2040',
'Original Nano RP2040',
'orig.svg',
'orig_nano_rp2040.svg',
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyActuators: true,
showLeaphyOperators: true,
showLeaphySensors: true,
},
)

export const leaphyFlitzRobotType = new BaseUno(
'l_flitz_uno',
'Leaphy Flitz',
'flitz.svg',
'flitz_uno.svg',
defaultLibraries,
{
showLeaphyActuators: false,
showLeaphyOperators: false,
},
);

export const leaphyFlitzNanoRobotType = new BaseNano(
'l_flitz_nano',
'Flitz Nano',
'flitz.svg',
'flitz_nano.svg',
defaultLibraries,
{
showLeaphyActuators: false,
showLeaphyOperators: false,
},
);

export const leaphyClickRobotType = new BaseUno(
'l_click',
'Leaphy Click',
'click.svg',
null,
defaultLibraries,
{
showLeaphySensors: true,
},
);

export const arduinoUnoRobotType = new BaseUno(
'l_uno',
'Arduino Uno',
'uno.svg',
null,
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyLists: true,
showLeaphySensors: true,
},
);

export const genericRobotType = new BaseUno(
'l_code',
'Leaphy C++',
"c++.svg",
null,
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{},
);

export const arduinoNanoRobotType = new BaseNano(
'l_nano',
'Arduino Nano',
'nano.svg',
null,
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyLists: true,
showLeaphySensors: true,
},
);

export const arduinoNanoESP32RobotType = new BaseNanoESP32(
'l_nano_esp32',
'Arduino Nano ESP32',
'nano.svg',
null,
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyLists: true,
showLeaphySensors: true,
}
);

export const arduinoNanoRP2040RobotType = new BaseNanoRP2040(
'l_nano_rp2040',
'Arduino Nano RP2040',
'nano.svg',
null,
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyLists: true,
showLeaphySensors: true,
}
);

export const microPythonRobotType = new RobotType(
'l_micropython',
{protocol: Avrdude},
'MicroPython',
'micropython.svg',
null,
'',
'',
[],
{
showLeaphyActuators: false,
showLeaphyOperators: false,
});

export const arduinoMegaRobotType = new RobotType(
'l_mega',
{protocol: Avrdude, microcontroller: 'atmega2560'},
'Arduino Mega',
'mega.svg',
null,
'arduino:avr:mega',
'arduino:avr',
defaultLibraries.concat(['QMC5883LCompass', 'Arduino_APDS9960']),
{
showLeaphyLists: true,
showLeaphySensors: true,
},
)
5 changes: 0 additions & 5 deletions src/app/domain/sketch.status.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export class BackEndMessage {
export class SnackbarMessage {
constructor(public event: string, public message: string, public payload: any, public displayTimeout: number) { }
}
10 changes: 0 additions & 10 deletions src/app/domain/workspace.status.ts

This file was deleted.

Loading

0 comments on commit 7bc439c

Please sign in to comment.