mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Update protos, add fields to core data
This commit is contained in:
parent
09e9e234aa
commit
bcb8eb1c72
5 changed files with 27 additions and 7 deletions
|
|
@ -43,6 +43,7 @@
|
|||
<attribute name="buttonGpio" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="buzzerGpio" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="debugLogEnabled" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
|
||||
<attribute name="doubleTapAsButtonPress" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
|
||||
<attribute name="nodeInfoBroadcastSecs" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="rebroadcastMode" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="role" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
|
|
@ -149,6 +150,7 @@
|
|||
<attribute name="encryptionEnabled" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
|
||||
<attribute name="jsonEnabled" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
|
||||
<attribute name="password" optional="YES" attributeType="String" maxValueString="30"/>
|
||||
<attribute name="tlsEnabled" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
|
||||
<attribute name="username" optional="YES" attributeType="String" maxValueString="30"/>
|
||||
<relationship name="mqttConfigNode" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="NodeInfoEntity" inverseName="mqttConfig" inverseEntity="NodeInfoEntity"/>
|
||||
</entity>
|
||||
|
|
@ -253,6 +255,7 @@
|
|||
<relationship name="rangeTestConfigNode" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="NodeInfoEntity" inverseName="rangeTestConfig" inverseEntity="NodeInfoEntity"/>
|
||||
</entity>
|
||||
<entity name="RouteEntity" representedClassName="RouteEntity" syncable="YES" codeGenerationType="class">
|
||||
<attribute name="color" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
|
||||
<attribute name="id" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<attribute name="name" optional="YES" attributeType="String"/>
|
||||
|
|
|
|||
|
|
@ -21,11 +21,9 @@ fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAP
|
|||
}
|
||||
|
||||
///
|
||||
/// Full settings (center freq, spread factor, pre-shared secret key etc...)
|
||||
/// needed to configure a radio for speaking on a particular channel This
|
||||
/// information can be encoded as a QRcode/url so that other users can configure
|
||||
/// This information can be encoded as a QRcode/url so that other users can configure
|
||||
/// their radio to join the same channel.
|
||||
/// A note about how channel names are shown to users: channelname-Xy
|
||||
/// A note about how channel names are shown to users: channelname-X
|
||||
/// poundsymbol is a prefix used to indicate this is a channel name (idea from @professr).
|
||||
/// Where X is a letter from A-Z (base 26) representing a hash of the PSK for this
|
||||
/// channel - so that if the user changes anything about the channel (which does
|
||||
|
|
@ -35,8 +33,6 @@ fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAP
|
|||
/// The PSK is hashed into this letter by "0x41 + [xor all bytes of the psk ] modulo 26"
|
||||
/// This also allows the option of someday if people have the PSK off (zero), the
|
||||
/// users COULD type in a channel name and be able to talk.
|
||||
/// Y is a lower case letter from a-z that represents the channel 'speed' settings
|
||||
/// (for some future definition of speed)
|
||||
/// FIXME: Add description of multi-channel support and how primary vs secondary channels are used.
|
||||
/// FIXME: explain how apps use channels for security.
|
||||
/// explain how remote settings and remote gpio are managed as an example
|
||||
|
|
@ -57,7 +53,7 @@ struct ChannelSettings {
|
|||
/// because they are listed in this source code.
|
||||
/// Those bytes are mapped using the following scheme:
|
||||
/// `0` = No crypto
|
||||
/// `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0xbf}
|
||||
/// `1` = The special "default" channel key: {0xd4, 0xf1, 0xbb, 0x3a, 0x20, 0x29, 0x07, 0x59, 0xf0, 0xbc, 0xff, 0xab, 0xcf, 0x4e, 0x69, 0x01}
|
||||
/// `2` through 10 = The default channel key, except with 1 through 9 added to the last byte.
|
||||
/// Shown to user as simple1 through 10
|
||||
var psk: Data = Data()
|
||||
|
|
|
|||
|
|
@ -177,6 +177,10 @@ struct Config {
|
|||
/// Defaults to 900 Seconds (15 minutes)
|
||||
var nodeInfoBroadcastSecs: UInt32 = 0
|
||||
|
||||
///
|
||||
/// Treat double tap interrupt on supported accelerometers as a button press if set to true
|
||||
var doubleTapAsButtonPress: Bool = false
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
///
|
||||
|
|
@ -1587,6 +1591,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl
|
|||
5: .standard(proto: "buzzer_gpio"),
|
||||
6: .standard(proto: "rebroadcast_mode"),
|
||||
7: .standard(proto: "node_info_broadcast_secs"),
|
||||
8: .standard(proto: "double_tap_as_button_press"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
|
|
@ -1602,6 +1607,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl
|
|||
case 5: try { try decoder.decodeSingularUInt32Field(value: &self.buzzerGpio) }()
|
||||
case 6: try { try decoder.decodeSingularEnumField(value: &self.rebroadcastMode) }()
|
||||
case 7: try { try decoder.decodeSingularUInt32Field(value: &self.nodeInfoBroadcastSecs) }()
|
||||
case 8: try { try decoder.decodeSingularBoolField(value: &self.doubleTapAsButtonPress) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -1629,6 +1635,9 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl
|
|||
if self.nodeInfoBroadcastSecs != 0 {
|
||||
try visitor.visitSingularUInt32Field(value: self.nodeInfoBroadcastSecs, fieldNumber: 7)
|
||||
}
|
||||
if self.doubleTapAsButtonPress != false {
|
||||
try visitor.visitSingularBoolField(value: self.doubleTapAsButtonPress, fieldNumber: 8)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
|
|
@ -1640,6 +1649,7 @@ extension Config.DeviceConfig: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl
|
|||
if lhs.buzzerGpio != rhs.buzzerGpio {return false}
|
||||
if lhs.rebroadcastMode != rhs.rebroadcastMode {return false}
|
||||
if lhs.nodeInfoBroadcastSecs != rhs.nodeInfoBroadcastSecs {return false}
|
||||
if lhs.doubleTapAsButtonPress != rhs.doubleTapAsButtonPress {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,6 +242,10 @@ struct ModuleConfig {
|
|||
/// Whether to send / consume json packets on MQTT
|
||||
var jsonEnabled: Bool = false
|
||||
|
||||
///
|
||||
/// If true, we attempt to establish a secure connection using TLS
|
||||
var tlsEnabled: Bool = false
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
|
@ -1109,6 +1113,7 @@ extension ModuleConfig.MQTTConfig: SwiftProtobuf.Message, SwiftProtobuf._Message
|
|||
4: .same(proto: "password"),
|
||||
5: .standard(proto: "encryption_enabled"),
|
||||
6: .standard(proto: "json_enabled"),
|
||||
7: .standard(proto: "tls_enabled"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
|
|
@ -1123,6 +1128,7 @@ extension ModuleConfig.MQTTConfig: SwiftProtobuf.Message, SwiftProtobuf._Message
|
|||
case 4: try { try decoder.decodeSingularStringField(value: &self.password) }()
|
||||
case 5: try { try decoder.decodeSingularBoolField(value: &self.encryptionEnabled) }()
|
||||
case 6: try { try decoder.decodeSingularBoolField(value: &self.jsonEnabled) }()
|
||||
case 7: try { try decoder.decodeSingularBoolField(value: &self.tlsEnabled) }()
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
|
@ -1147,6 +1153,9 @@ extension ModuleConfig.MQTTConfig: SwiftProtobuf.Message, SwiftProtobuf._Message
|
|||
if self.jsonEnabled != false {
|
||||
try visitor.visitSingularBoolField(value: self.jsonEnabled, fieldNumber: 6)
|
||||
}
|
||||
if self.tlsEnabled != false {
|
||||
try visitor.visitSingularBoolField(value: self.tlsEnabled, fieldNumber: 7)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
|
|
@ -1157,6 +1166,7 @@ extension ModuleConfig.MQTTConfig: SwiftProtobuf.Message, SwiftProtobuf._Message
|
|||
if lhs.password != rhs.password {return false}
|
||||
if lhs.encryptionEnabled != rhs.encryptionEnabled {return false}
|
||||
if lhs.jsonEnabled != rhs.jsonEnabled {return false}
|
||||
if lhs.tlsEnabled != rhs.tlsEnabled {return false}
|
||||
if lhs.unknownFields != rhs.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ struct DeviceMetricsLog: View {
|
|||
.accessibilityLabel("Line Series")
|
||||
.accessibilityValue("X: \(point.time!), Y: \(point.batteryLevel)")
|
||||
.foregroundStyle(batteryChartColor)
|
||||
.interpolationMethod(.cardinal)
|
||||
|
||||
Plot {
|
||||
PointMark(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue