mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
337 lines
7.4 KiB
Swift
337 lines
7.4 KiB
Swift
//
|
|
// HardwareModels.swift
|
|
// Meshtastic
|
|
//
|
|
// Copyright(c) Garth Vander Houwen 3/11/23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
enum HardwareModels: String, CaseIterable, Identifiable {
|
|
|
|
case UNSET
|
|
case TLORAV2
|
|
case TLORAV1
|
|
case TLORAV211P6
|
|
case TBEAM
|
|
case HELTECV20
|
|
case TBEAMV0P7
|
|
case TECHO
|
|
case TLORAV11P3
|
|
case RAK4631
|
|
case HELTECV21
|
|
case HELTECV1
|
|
case DIYV1
|
|
case LILYGOTBEAMS3CORE
|
|
case RAK11200
|
|
case NANOG1
|
|
case TLORAV211P8
|
|
case TLORAT3S3
|
|
case NANOG1EXPLORER
|
|
case STATIONG1
|
|
case M5STACK
|
|
case HELTECV3
|
|
case HELTECWSLV3
|
|
case NANOG2ULTRA
|
|
case RAK11310
|
|
case RPIPICO
|
|
case HELTECWIRELESSTRACKER
|
|
case HELTECWIRELESSPAPER
|
|
case TDECK
|
|
case TWATCHS3
|
|
|
|
var id: String { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
|
|
case .UNSET:
|
|
return "unset".localized
|
|
case .TLORAV2:
|
|
return "TLoRa V2"
|
|
case .TLORAV1:
|
|
return "TLoRa V1"
|
|
case .TLORAV211P6:
|
|
return "TLoRa V2.1.1.6"
|
|
case .TBEAM:
|
|
return "TBeam"
|
|
case .HELTECV20:
|
|
return "HELTEC V2.0"
|
|
case .TBEAMV0P7:
|
|
return "TBeam 0.7"
|
|
case .TECHO:
|
|
return "TEcho"
|
|
case .TLORAV11P3:
|
|
return "TLORA V1.1.3"
|
|
case .RAK4631:
|
|
return "RAK 4631 NRF"
|
|
case .HELTECV21:
|
|
return "HELTEC V2.1"
|
|
case .HELTECV1:
|
|
return "HELTEC V1"
|
|
case .DIYV1:
|
|
return "Hydra 1W DIY"
|
|
case .LILYGOTBEAMS3CORE:
|
|
return "TBEAM S3"
|
|
case .RAK11200:
|
|
return "RAK 11200 ESP32"
|
|
case .NANOG1:
|
|
return "Nano G1"
|
|
case .TLORAV211P8:
|
|
return "TLoRa V2.1.1.8"
|
|
case .TLORAT3S3:
|
|
return "TLoRa T3 S3"
|
|
case .NANOG1EXPLORER:
|
|
return "Nano G1 Explorer"
|
|
case .STATIONG1:
|
|
return "Station G1"
|
|
case .M5STACK:
|
|
return "M5 Stack"
|
|
case .HELTECV3:
|
|
return "Heltec V3"
|
|
case .HELTECWSLV3:
|
|
return "Heltec wireless stick lite V3"
|
|
case .NANOG2ULTRA:
|
|
return "Nano G2 Ultra"
|
|
case .RAK11310:
|
|
return "RAK 11310 Pi Pico"
|
|
case .RPIPICO:
|
|
return "Pi Pico"
|
|
case .HELTECWIRELESSTRACKER:
|
|
return "Heltec Wireless Tracker"
|
|
case .HELTECWIRELESSPAPER:
|
|
return "Heltec Wireless Paper"
|
|
case .TDECK:
|
|
return "T-Deck"
|
|
case .TWATCHS3:
|
|
return "T-Watch S3"
|
|
}
|
|
|
|
}
|
|
var firmwareStrings: [String] {
|
|
switch self {
|
|
|
|
case .UNSET:
|
|
return []
|
|
case .TLORAV2:
|
|
return ["firmware-tlora-v2-"]
|
|
case .TLORAV1:
|
|
return ["firmware-tlora-v1-"]
|
|
case .TLORAV211P6:
|
|
return ["firmware-tlora-v2-1-1.6-"]
|
|
case .TBEAM:
|
|
return ["firmware-tbeam-"]
|
|
case .HELTECV20:
|
|
return ["firmware-heltec-v2.0-"]
|
|
case .TBEAMV0P7:
|
|
return ["firmware-tbeam0.7-"]
|
|
case .TECHO:
|
|
return ["firmware-t-echo-"]
|
|
case .TLORAV11P3:
|
|
return ["firmware-tlora_v1_3-"]
|
|
case .RAK4631:
|
|
return ["firmware-rak4631-", "firmware-rak4631_eink-"]
|
|
case .HELTECV21:
|
|
return ["firmware-heltec-v2.1-"]
|
|
case .HELTECV1:
|
|
return ["firmware-heltec-v1-"]
|
|
case .DIYV1:
|
|
return ["firmware-meshtastic-diy-v1"]
|
|
case .LILYGOTBEAMS3CORE:
|
|
return ["firmware-tbeam-s3-core-"]
|
|
case .RAK11200:
|
|
return ["firmware-rak11200-"]
|
|
case .NANOG1:
|
|
return ["firmware-nano-g1-"]
|
|
case .TLORAV211P8:
|
|
return ["firmware-tlora-v2-1-1.8-"]
|
|
case .TLORAT3S3:
|
|
return ["firmware-tlora-t3s3-v1-"]
|
|
case .NANOG1EXPLORER:
|
|
return ["firmware-nano-g1-explorer-"]
|
|
case .STATIONG1:
|
|
return ["firmware-station-g1-"]
|
|
case .M5STACK:
|
|
return ["firmware-m5stack-core-", "firmware-m5stack-coreink-"]
|
|
case .HELTECV3:
|
|
return ["firmware-heltec-v3-"]
|
|
case .HELTECWSLV3:
|
|
return ["firmware-heltec-wsl-v3-"]
|
|
case .NANOG2ULTRA:
|
|
return ["firmware-nano-g2-ultra-"]
|
|
case .RAK11310:
|
|
return ["firmware-rak11310-"]
|
|
case .RPIPICO:
|
|
return ["firmware-pico-"]
|
|
case .HELTECWIRELESSTRACKER:
|
|
return ["firmware-heltec-wireless-tracker-"]
|
|
case .HELTECWIRELESSPAPER:
|
|
return ["firmware-heltec-wireless-paper-"]
|
|
case .TDECK:
|
|
return ["firmware-t-echo-"]
|
|
case .TWATCHS3:
|
|
return ["firmware-t-watch-s3-"]
|
|
}
|
|
|
|
}
|
|
func platform() -> HardwarePlatforms {
|
|
|
|
switch self {
|
|
|
|
case .UNSET:
|
|
return HardwarePlatforms.none
|
|
case .TLORAV2:
|
|
return HardwarePlatforms.esp32
|
|
case .TLORAV1:
|
|
return HardwarePlatforms.esp32
|
|
case .TLORAV211P6:
|
|
return HardwarePlatforms.esp32
|
|
case .TBEAM:
|
|
return HardwarePlatforms.esp32
|
|
case .HELTECV20:
|
|
return HardwarePlatforms.esp32
|
|
case .TBEAMV0P7:
|
|
return HardwarePlatforms.esp32
|
|
case .TECHO:
|
|
return HardwarePlatforms.nrf52
|
|
case .TLORAV11P3:
|
|
return HardwarePlatforms.esp32
|
|
case .RAK4631:
|
|
return HardwarePlatforms.nrf52
|
|
case .HELTECV21:
|
|
return HardwarePlatforms.esp32
|
|
case .HELTECV1:
|
|
return HardwarePlatforms.esp32
|
|
case .DIYV1:
|
|
return HardwarePlatforms.esp32
|
|
case .LILYGOTBEAMS3CORE:
|
|
return HardwarePlatforms.esp32
|
|
case .RAK11200:
|
|
return HardwarePlatforms.esp32
|
|
case .NANOG1:
|
|
return HardwarePlatforms.esp32
|
|
case .TLORAV211P8:
|
|
return HardwarePlatforms.esp32
|
|
case .TLORAT3S3:
|
|
return HardwarePlatforms.esp32
|
|
case .NANOG1EXPLORER:
|
|
return HardwarePlatforms.esp32
|
|
case .STATIONG1:
|
|
return HardwarePlatforms.esp32
|
|
case .M5STACK:
|
|
return HardwarePlatforms.esp32
|
|
case .HELTECV3:
|
|
return HardwarePlatforms.esp32
|
|
case .HELTECWSLV3:
|
|
return HardwarePlatforms.esp32
|
|
case .NANOG2ULTRA:
|
|
return HardwarePlatforms.nrf52
|
|
case .RAK11310:
|
|
return HardwarePlatforms.piPico
|
|
case .RPIPICO:
|
|
return HardwarePlatforms.piPico
|
|
case .HELTECWIRELESSTRACKER:
|
|
return HardwarePlatforms.esp32
|
|
case .HELTECWIRELESSPAPER:
|
|
return HardwarePlatforms.esp32
|
|
case .TDECK:
|
|
return HardwarePlatforms.esp32
|
|
case .TWATCHS3:
|
|
return HardwarePlatforms.esp32
|
|
}
|
|
}
|
|
func protoEnumValue() -> HardwareModel {
|
|
|
|
switch self {
|
|
|
|
case .UNSET:
|
|
return HardwareModel.unset
|
|
case .TLORAV2:
|
|
return HardwareModel.tloraV2
|
|
case .TLORAV1:
|
|
return HardwareModel.tloraV1
|
|
case .TLORAV211P6:
|
|
return HardwareModel.tloraV211P6
|
|
case .TBEAM:
|
|
return HardwareModel.tbeam
|
|
case .HELTECV20:
|
|
return HardwareModel.heltecV20
|
|
case .TBEAMV0P7:
|
|
return HardwareModel.tbeamV0P7
|
|
case .TECHO:
|
|
return HardwareModel.tEcho
|
|
case .TLORAV11P3:
|
|
return HardwareModel.tloraV11P3
|
|
case .RAK4631:
|
|
return HardwareModel.rak4631
|
|
case .HELTECV21:
|
|
return HardwareModel.heltecV21
|
|
case .HELTECV1:
|
|
return HardwareModel.heltecV1
|
|
case .DIYV1:
|
|
return HardwareModel.diyV1
|
|
case .LILYGOTBEAMS3CORE:
|
|
return HardwareModel.lilygoTbeamS3Core
|
|
case .RAK11200:
|
|
return HardwareModel.rak11200
|
|
case .NANOG1:
|
|
return HardwareModel.nanoG1
|
|
case .TLORAV211P8:
|
|
return HardwareModel.tloraV211P8
|
|
case .TLORAT3S3:
|
|
return HardwareModel.tloraT3S3
|
|
case .NANOG1EXPLORER:
|
|
return HardwareModel.nanoG1Explorer
|
|
case .STATIONG1:
|
|
return HardwareModel.stationG1
|
|
case .M5STACK:
|
|
return HardwareModel.m5Stack
|
|
case .HELTECV3:
|
|
return HardwareModel.heltecV3
|
|
case .HELTECWSLV3:
|
|
return HardwareModel.heltecWslV3
|
|
case .NANOG2ULTRA:
|
|
return HardwareModel.nanoG2Ultra
|
|
case .RAK11310:
|
|
return HardwareModel.rak11310
|
|
case .RPIPICO:
|
|
return HardwareModel.rpiPico
|
|
case .HELTECWIRELESSTRACKER:
|
|
return HardwareModel.heltecWirelessTracker
|
|
case .HELTECWIRELESSPAPER:
|
|
return HardwareModel.heltecWirelessPaper
|
|
case .TDECK:
|
|
return HardwareModel.tDeck
|
|
case .TWATCHS3:
|
|
return HardwareModel.tWatchS3
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
enum HardwarePlatforms: String, CaseIterable, Identifiable {
|
|
|
|
case none
|
|
case esp32
|
|
case nrf52
|
|
case stm32
|
|
case piPico
|
|
case linux
|
|
var id: String { self.rawValue }
|
|
var description: String {
|
|
switch self {
|
|
|
|
case .none:
|
|
return "None"
|
|
case .esp32:
|
|
return "Expressif ESP 32"
|
|
case .nrf52:
|
|
return "Nordic NRF52"
|
|
case .stm32:
|
|
return "ARM STM 32"
|
|
case .piPico:
|
|
return "Raspberrry Pi Pico"
|
|
case .linux:
|
|
return "Linux"
|
|
}
|
|
}
|
|
}
|