Meshtastic-Apple/Meshtastic/Enums/HardwareModels.swift

338 lines
7.4 KiB
Swift
Raw Normal View History

//
// HardwareModels.swift
// Meshtastic
//
// Copyright(c) Garth Vander Houwen 3/11/23.
//
import Foundation
2023-03-15 16:18:43 -07:00
2023-03-13 09:50:24 -07:00
enum HardwareModels: String, CaseIterable, Identifiable {
2023-03-13 09:50:24 -07:00
case UNSET
case TLORAV2
case TLORAV1
case TLORAV211P6
2023-03-13 09:50:24 -07:00
case TBEAM
case HELTECV20
case TBEAMV0P7
case TECHO
case TLORAV11P3
2023-03-13 09:50:24 -07:00
case RAK4631
case HELTECV21
case HELTECV1
2023-04-07 19:47:24 -07:00
case DIYV1
case LILYGOTBEAMS3CORE
2023-03-13 09:50:24 -07:00
case RAK11200
case NANOG1
case TLORAV211P8
case TLORAT3S3
case NANOG1EXPLORER
case STATIONG1
2023-03-13 09:50:24 -07:00
case M5STACK
case HELTECV3
case HELTECWSLV3
2023-08-06 17:41:46 -07:00
case NANOG2ULTRA
case RAK11310
case RPIPICO
case HELTECWIRELESSTRACKER
case HELTECWIRELESSPAPER
case TDECK
case TWATCHS3
2023-03-14 12:44:10 -07:00
2023-03-13 09:50:24 -07:00
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"
2023-04-07 19:47:24 -07:00
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"
2023-08-06 17:41:46 -07:00
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"
}
2023-03-14 12:44:10 -07:00
}
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-"]
2023-04-07 19:47:24 -07:00
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-"]
2023-08-06 17:41:46 -07:00
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-"]
}
2023-03-14 12:44:10 -07:00
}
2023-03-15 16:54:06 -07:00
func platform() -> HardwarePlatforms {
switch self {
case .UNSET:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.none
case .TLORAV2:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TLORAV1:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TLORAV211P6:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-03-15 16:54:06 -07:00
case .TBEAM:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .HELTECV20:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TBEAMV0P7:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TECHO:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.nrf52
case .TLORAV11P3:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-03-15 16:54:06 -07:00
case .RAK4631:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.nrf52
case .HELTECV21:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .HELTECV1:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-04-07 19:47:24 -07:00
case .DIYV1:
return HardwarePlatforms.esp32
case .LILYGOTBEAMS3CORE:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-03-15 16:54:06 -07:00
case .RAK11200:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .NANOG1:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TLORAV211P8:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .TLORAT3S3:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .NANOG1EXPLORER:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .STATIONG1:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-03-15 16:54:06 -07:00
case .M5STACK:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .HELTECV3:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
case .HELTECWSLV3:
2023-03-17 23:30:01 -07:00
return HardwarePlatforms.esp32
2023-08-06 17:41:46 -07:00
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
2023-03-15 16:54:06 -07:00
}
}
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
2023-04-07 19:47:24 -07:00
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
2023-08-06 17:41:46 -07:00
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
}
}
}
2023-03-15 16:18:43 -07:00
enum HardwarePlatforms: String, CaseIterable, Identifiable {
2023-03-17 23:30:01 -07:00
case none
case esp32
case nrf52
case stm32
case piPico
2023-04-07 19:47:24 -07:00
case linux
2023-03-15 16:18:43 -07:00
var id: String { self.rawValue }
var description: String {
switch self {
2023-03-17 23:30:01 -07:00
case .none:
2023-03-15 16:54:06 -07:00
return "None"
2023-03-17 23:30:01 -07:00
case .esp32:
2023-03-15 16:18:43 -07:00
return "Expressif ESP 32"
2023-03-17 23:30:01 -07:00
case .nrf52:
2023-03-15 16:18:43 -07:00
return "Nordic NRF52"
2023-03-17 23:30:01 -07:00
case .stm32:
2023-03-15 16:18:43 -07:00
return "ARM STM 32"
2023-03-17 23:30:01 -07:00
case .piPico:
2023-03-15 16:18:43 -07:00
return "Raspberrry Pi Pico"
2023-04-07 19:47:24 -07:00
case .linux:
return "Linux"
2023-03-15 16:18:43 -07:00
}
}
}