comment out future stuff

This commit is contained in:
Bane Stojkovic
2026-09-08 15:54:04 +02:00
parent a223ad84ce
commit 27eb259949
42 changed files with 220 additions and 214 deletions
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Character LCD (16x2 / 20x4)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "HD44780-Compatible Character LCD Display (Parallel / I2C Backpack)",
instanceNamePrefix = "LCD", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Character LCD (16x2 / 20x4)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "HD44780-Compatible Character LCD Display (Parallel / I2C Backpack)",
// instanceNamePrefix = "LCD", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class CharacterLCD extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "8x8 LED Matrix (MAX7219)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "MAX7219 Dot LED Matrix Display Module (Cascadable SPI)",
instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "8x8 LED Matrix (MAX7219)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "MAX7219 Dot LED Matrix Display Module (Cascadable SPI)",
// instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class LEDMatrix8x8 extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "0.96\" OLED Display (SSD1306)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "0.96\" Monochrome 128x64 OLED Display Module (I2C / SPI)",
instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "0.96\" OLED Display (SSD1306)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "0.96\" Monochrome 128x64 OLED Display Module (I2C / SPI)",
// instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class OLEDDisplay extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -50,11 +50,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "7-Segment Display", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "7-Segment LED Display (1-Digit, 4-Digit, or TM1637 I2C Driver Module)",
instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "7-Segment Display", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "7-Segment LED Display (1-Digit, 4-Digit, or TM1637 I2C Driver Module)",
// instanceNamePrefix = "DISP", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class SevenSegmentDisplay extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "TFT Touch Screen (ILI9341)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "2.8\" 240x320 Color TFT LCD Display with SPI Interface, Touch, and SD Slot",
instanceNamePrefix = "DISP", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "TFT Touch Screen (ILI9341)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "2.8\" 240x320 Color TFT LCD Display with SPI Interface, Touch, and SD Slot",
// instanceNamePrefix = "DISP", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class TFTDisplay extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -51,11 +51,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "NeoPixel Ring (WS2812B)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "Addressable RGB WS2812B NeoPixel Ring (12/16/24 LEDs)",
instanceNamePrefix = "LED", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "NeoPixel Ring (WS2812B)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "Addressable RGB WS2812B NeoPixel Ring (12/16/24 LEDs)",
// instanceNamePrefix = "LED", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class WS2812BRing extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "NeoPixel Stick (8x WS2812B)", category = "Displays & Outputs",
author = "Branislav Stojkovic", description = "8-LED Addressable RGB WS2812B NeoPixel Stick",
instanceNamePrefix = "LED", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "NeoPixel Stick (8x WS2812B)", category = "Displays & Outputs",
// author = "Branislav Stojkovic", description = "8-LED Addressable RGB WS2812B NeoPixel Stick",
// instanceNamePrefix = "LED", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class WS2812BStick extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Stepper Driver (A4988 / DRV8825)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "A4988 / DRV8825 Microstepping Stepper Motor Driver Carrier",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Stepper Driver (A4988 / DRV8825)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "A4988 / DRV8825 Microstepping Stepper Motor Driver Carrier",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class A4988StepperDriver extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Active Buzzer Module (KY-012)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "KY-012 Active Buzzer Module — produces 2.5kHz continuous tone on HIGH signal",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Active Buzzer Module (KY-012)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "KY-012 Active Buzzer Module — produces 2.5kHz continuous tone on HIGH signal",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class ActiveBuzzerModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Analog Joystick (KY-023)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "KY-023 Dual-Axis PS2 Thumb Joystick Module with Push Switch",
instanceNamePrefix = "JOY", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Analog Joystick (KY-023)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "KY-023 Dual-Axis PS2 Thumb Joystick Module with Push Switch",
// instanceNamePrefix = "JOY", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class AnalogJoystickKY023 extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -50,11 +50,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "GPS Module (NEO-6M)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "u-blox NEO-6M GPS Module with ceramic patch antenna",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "GPS Module (NEO-6M)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "u-blox NEO-6M GPS Module with ceramic patch antenna",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class GPSModuleNEO6M extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Bluetooth Module (HC-05 / HC-06)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "HC-05 / HC-06 Serial Bluetooth SPP Module Breakout",
instanceNamePrefix = "BT", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Bluetooth Module (HC-05 / HC-06)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "HC-05 / HC-06 Serial Bluetooth SPP Module Breakout",
// instanceNamePrefix = "BT", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class HC05Bluetooth extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Current/Power Sensor (INA219)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "INA219 I2C High-Side Current and Power Sensor Breakout",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Current/Power Sensor (INA219)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "INA219 I2C High-Side Current and Power Sensor Breakout",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class INA219CurrentSensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Motor Driver (L298N)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "L298N Dual H-Bridge DC and Stepper Motor Driver Module with Heatsink",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Motor Driver (L298N)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "L298N Dual H-Bridge DC and Stepper Motor Driver Module with Heatsink",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class L298NMotorDriver extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Buck Converter (LM2596)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "LM2596 Adjustable DC-DC Step-Down Buck Converter Module",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Buck Converter (LM2596)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "LM2596 Adjustable DC-DC Step-Down Buck Converter Module",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class LM2596BuckConverter extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Logic Level Converter (3.3V-5V)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "4-Channel Bi-Directional Logic Level Shifter Module",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Logic Level Converter (3.3V-5V)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "4-Channel Bi-Directional Logic Level Shifter Module",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class LogicLevelConverter extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Breadboard Power Supply (MB102)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "MB102 Dual 3.3V/5V Breadboard Power Supply Module",
instanceNamePrefix = "PWR", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Breadboard Power Supply (MB102)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "MB102 Dual 3.3V/5V Breadboard Power Supply Module",
// instanceNamePrefix = "PWR", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class MB102PowerSupply extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "MOSFET Driver Module (IRF520)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "IRF520 High-Current DC MOSFET Power Switch Driver Module",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "MOSFET Driver Module (IRF520)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "IRF520 High-Current DC MOSFET Power Switch Driver Module",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class MOSFETSwitchModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Boost Converter (MT3608)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "MT3608 2A Adjustable DC-DC Step-Up Boost Converter Module",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Boost Converter (MT3608)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "MT3608 2A Adjustable DC-DC Step-Up Boost Converter Module",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class MT3608BoostConverter extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -46,11 +46,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "2.4GHz RF Transceiver (NRF24L01+)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "NRF24L01+ 2.4GHz Wireless SPI Transceiver Module",
instanceNamePrefix = "RF", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "2.4GHz RF Transceiver (NRF24L01+)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "NRF24L01+ 2.4GHz Wireless SPI Transceiver Module",
// instanceNamePrefix = "RF", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class NRF24L01Transceiver extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "16-Channel PWM/Servo Driver (PCA9685)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "PCA9685 16-Channel 12-Bit PWM I2C Servo Controller Board",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "16-Channel PWM/Servo Driver (PCA9685)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "PCA9685 16-Channel 12-Bit PWM I2C Servo Controller Board",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class PCA9685ServoDriver extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "RFID Reader (RC522)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "MFRC522 13.56MHz RFID Reader/Writer SPI Module",
instanceNamePrefix = "RFID", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "RFID Reader (RC522)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "MFRC522 13.56MHz RFID Reader/Writer SPI Module",
// instanceNamePrefix = "RFID", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class RFIDRC522 extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Real-Time Clock (DS3231)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "DS3231 High-Precision I2C Real-Time Clock Module with Battery Backup",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Real-Time Clock (DS3231)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "DS3231 High-Precision I2C Real-Time Clock Module with Battery Backup",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class RTCModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Relay Module (1/2/4-Channel)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "5V Optocoupler-Isolated Relay Module with Screw Terminals",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Relay Module (1/2/4-Channel)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "5V Optocoupler-Isolated Relay Module with Screw Terminals",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class RelayModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Rotary Encoder (KY-040)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "KY-040 Incremental Rotary Encoder Module with Push Button",
instanceNamePrefix = "ENC", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Rotary Encoder (KY-040)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "KY-040 Incremental Rotary Encoder Module with Push Button",
// instanceNamePrefix = "ENC", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class RotaryEncoderKY040 extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "SD Card Reader Module", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "MicroSD Card SPI Interface Module with Level Shifter",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "SD Card Reader Module", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "MicroSD Card SPI Interface Module with Level Shifter",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class SDCardModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "LiPo Charger (TP4056)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "TP4056 1A Li-ion Battery Charging and Protection Module",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "LiPo Charger (TP4056)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "TP4056 1A Li-ion Battery Charging and Protection Module",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class TP4056Charger extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -49,11 +49,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Stepper Driver Board (ULN2003)", category = "Modules & Breakouts",
author = "Branislav Stojkovic", description = "ULN2003 Stepper Motor Driver Board with 4 Status LEDs",
instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Stepper Driver Board (ULN2003)", category = "Modules & Breakouts",
// author = "Branislav Stojkovic", description = "ULN2003 Stepper Motor Driver Board with 4 Status LEDs",
// instanceNamePrefix = "MOD", zOrder = IDIYComponent.BOARD,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class ULN2003Driver extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "DC Motor (130-Size / 3V-6V)", category = "Robotics",
author = "Branislav Stojkovic", description = "Standard 130-Size 3V-6V Toy and Hobby DC Motor with Solder Terminals",
instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "DC Motor (130-Size / 3V-6V)", category = "Robotics",
// author = "Branislav Stojkovic", description = "Standard 130-Size 3V-6V Toy and Hobby DC Motor with Solder Terminals",
// instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class DCHobbyMotor extends AbstractMotor {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Micro Servo (SG90 / 9g)", category = "Robotics",
author = "Branislav Stojkovic", description = "SG90 9g Micro Servo Motor with 3-Pin Lead Connector",
instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Micro Servo (SG90 / 9g)", category = "Robotics",
// author = "Branislav Stojkovic", description = "SG90 9g Micro Servo Motor with 3-Pin Lead Connector",
// instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class MicroServoSG90 extends AbstractMotor {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "NEMA 17 Stepper Motor", category = "Robotics",
author = "Branislav Stojkovic", description = "NEMA 17 42mm Hybrid Bipolar Stepper Motor with 4-Pin Connector",
instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "NEMA 17 Stepper Motor", category = "Robotics",
// author = "Branislav Stojkovic", description = "NEMA 17 42mm Hybrid Bipolar Stepper Motor with 4-Pin Connector",
// instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class NEMA17Stepper extends AbstractMotor {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Stepper Motor (28BYJ-48)", category = "Robotics",
author = "Branislav Stojkovic", description = "28BYJ-48 5V Geared Stepper Motor with 5-Pin Connector",
instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Stepper Motor (28BYJ-48)", category = "Robotics",
// author = "Branislav Stojkovic", description = "28BYJ-48 5V Geared Stepper Motor with 5-Pin Connector",
// instanceNamePrefix = "MTR", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class StepperMotor28BYJ48 extends AbstractMotor {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Temp/Pressure/Humidity Sensor (BME280)", category = "Sensors",
author = "Branislav Stojkovic", description = "BME280 / BMP280 Temperature, Humidity, and Pressure Sensor (I2C/SPI)",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Temp/Pressure/Humidity Sensor (BME280)", category = "Sensors",
// author = "Branislav Stojkovic", description = "BME280 / BMP280 Temperature, Humidity, and Pressure Sensor (I2C/SPI)",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class BME280Sensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Temp/Humidity Sensor (DHT11 / DHT22)", category = "Sensors",
author = "Branislav Stojkovic", description = "DHT11 / DHT22 Digital Temperature and Humidity Sensor Module",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Temp/Humidity Sensor (DHT11 / DHT22)", category = "Sensors",
// author = "Branislav Stojkovic", description = "DHT11 / DHT22 Digital Temperature and Humidity Sensor Module",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class DHTSensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "IR Receiver Module (KY-022)", category = "Sensors",
author = "Branislav Stojkovic", description = "38kHz Infrared Receiver Module (VS1838B) for remote control",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "IR Receiver Module (KY-022)", category = "Sensors",
// author = "Branislav Stojkovic", description = "38kHz Infrared Receiver Module (VS1838B) for remote control",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class IRReceiverModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "LDR / Photoresistor Module", category = "Sensors",
author = "Branislav Stojkovic", description = "Light Dependent Resistor / Photoresistor Sensor Module with Digital/Analog Output",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "LDR / Photoresistor Module", category = "Sensors",
// author = "Branislav Stojkovic", description = "Light Dependent Resistor / Photoresistor Sensor Module with Digital/Analog Output",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class LDRSensorModule extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -47,11 +47,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Gyro/IMU (MPU-6050 / GY-521)", category = "Sensors",
author = "Branislav Stojkovic", description = "MPU-6050 6-Axis Gyroscope and Accelerometer I2C Breakout Board",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Gyro/IMU (MPU-6050 / GY-521)", category = "Sensors",
// author = "Branislav Stojkovic", description = "MPU-6050 6-Axis Gyroscope and Accelerometer I2C Breakout Board",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class MPU6050 extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "PIR Motion Sensor (HC-SR501)", category = "Sensors",
author = "Branislav Stojkovic", description = "HC-SR501 Passive Infrared (PIR) Motion Detector Module",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "PIR Motion Sensor (HC-SR501)", category = "Sensors",
// author = "Branislav Stojkovic", description = "HC-SR501 Passive Infrared (PIR) Motion Detector Module",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class PIRMotionSensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Soil Moisture Sensor (Capacitive)", category = "Sensors",
author = "Branislav Stojkovic", description = "Capacitive Corrosion-Resistant Soil Moisture Sensor Module",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Soil Moisture Sensor (Capacitive)", category = "Sensors",
// author = "Branislav Stojkovic", description = "Capacitive Corrosion-Resistant Soil Moisture Sensor Module",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class SoilMoistureSensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Line / Obstacle Sensor (TCRT5000)", category = "Sensors",
author = "Branislav Stojkovic", description = "TCRT5000 Infrared Line Tracking and Optical Obstacle Avoidance Sensor",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Line / Obstacle Sensor (TCRT5000)", category = "Sensors",
// author = "Branislav Stojkovic", description = "TCRT5000 Infrared Line Tracking and Optical Obstacle Avoidance Sensor",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class TCRT5000Sensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Ultrasonic Sensor (HC-SR04)", category = "Sensors",
author = "Branislav Stojkovic", description = "HC-SR04 Ultrasonic Distance Sensor Module",
instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
enableCache = true)
// @ComponentDescriptor(name = "Ultrasonic Sensor (HC-SR04)", category = "Sensors",
// author = "Branislav Stojkovic", description = "HC-SR04 Ultrasonic Distance Sensor Module",
// instanceNamePrefix = "SEN", zOrder = IDIYComponent.COMPONENT,
// bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME,
// enableCache = true)
public class UltrasonicSensor extends AbstractMakerBoard {
private static final long serialVersionUID = 1L;
@@ -28,6 +28,8 @@ import java.awt.image.BufferedImage;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.diylc.common.ComponentType;
import org.diylc.common.DefaultComponentTransformer;
@@ -58,7 +60,7 @@ public class MakerComponentsTest {
}
}
private final List<Class<? extends IDIYComponent<?>>> allMakerComponentClasses = Arrays.<Class<? extends IDIYComponent<?>>>asList(
private final List<Class<? extends IDIYComponent<?>>> releasedMakerComponentClasses = Arrays.<Class<? extends IDIYComponent<?>>>asList(
// Controllers
ArduinoUno.class,
ArduinoNano.class,
@@ -70,6 +72,13 @@ public class MakerComponentsTest {
ESP8266NodeMCU.class,
WemosD1Mini.class,
// Electro-Mechanical
BatteryHolder18650.class
);
// Staged for a later release: their @ComponentDescriptor annotations are commented out, so
// ComponentProcessor does not discover them and they have no ComponentType yet.
private final List<Class<? extends IDIYComponent<?>>> unreleasedMakerComponentClasses = Arrays.<Class<? extends IDIYComponent<?>>>asList(
// Sensors
UltrasonicSensor.class,
PIRMotionSensor.class,
@@ -113,9 +122,6 @@ public class MakerComponentsTest {
GPSModuleNEO6M.class,
INA219CurrentSensor.class,
// Electro-Mechanical
BatteryHolder18650.class,
// Robotics
MicroServoSG90.class,
NEMA17Stepper.class,
@@ -123,17 +129,17 @@ public class MakerComponentsTest {
DCHobbyMotor.class
);
private final List<Class<? extends IDIYComponent<?>>> allMakerComponentClasses =
Stream.concat(releasedMakerComponentClasses.stream(), unreleasedMakerComponentClasses.stream())
.collect(Collectors.toList());
@Test
public void testAllComponentDiscoveryAndCategories() {
Map<String, List<ComponentType>> categories = ComponentProcessor.getInstance().getComponentTypes();
Assert.assertTrue("Categories should contain 'Controllers'", categories.containsKey("Controllers"));
Assert.assertTrue("Categories should contain 'Sensors'", categories.containsKey("Sensors"));
Assert.assertTrue("Categories should contain 'Displays & Outputs'", categories.containsKey("Displays & Outputs"));
Assert.assertTrue("Categories should contain 'Modules & Breakouts'", categories.containsKey("Modules & Breakouts"));
Assert.assertTrue("Categories should contain 'Robotics'", categories.containsKey("Robotics"));
for (Class<? extends IDIYComponent<?>> clazz : allMakerComponentClasses) {
for (Class<? extends IDIYComponent<?>> clazz : releasedMakerComponentClasses) {
ComponentType type = ComponentProcessor.getInstance().extractComponentTypeFrom(clazz);
Assert.assertNotNull("Component type should be extracted for " + clazz.getSimpleName(), type);
Assert.assertNotNull("Icon should be non-null for " + clazz.getSimpleName(), type.getIcon());