Meshtastic-Apple/Meshtastic/Enums/HardwareModels.swift
2023-04-07 19:47:24 -07:00

274 lines
5.8 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
var id: String { self.rawValue }
var description: String {
switch self {
case .UNSET:
return NSLocalizedString("unset", comment: "UNSET")
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"
}
}
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-"]
}
}
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
}
}
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
}
}
}
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"
}
}
}