|
|
|
|
@ -754,7 +754,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return success
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func sendLocation(destNum: Int64) -> Bool {
|
|
|
|
|
public func sendLocation(destNum: Int64, wantAck: Bool) -> Bool {
|
|
|
|
|
|
|
|
|
|
var success = false
|
|
|
|
|
|
|
|
|
|
@ -764,58 +764,45 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var waypointPacket = Location()
|
|
|
|
|
waypointPacket.latitudeI = Int32(LocationHelper.currentLocation.latitude * 1e7)
|
|
|
|
|
waypointPacket.longitudeI = Int32(LocationHelper.currentLocation.longitude * 1e7)
|
|
|
|
|
|
|
|
|
|
//let fetchNode: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
|
|
|
|
|
//fetchNode.predicate = NSPredicate(format: "num == %lld", fromNodeNum)
|
|
|
|
|
let oneWeekFromNow = Calendar.current.date(byAdding: .day, value: 7, to: Date())
|
|
|
|
|
waypointPacket.expire = UInt32(oneWeekFromNow!.timeIntervalSince1970)
|
|
|
|
|
waypointPacket.name = "Test Waypoint"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var meshPacket = MeshPacket()
|
|
|
|
|
meshPacket.to = UInt32(destNum)
|
|
|
|
|
meshPacket.from = 0 // Send 0 as from from phone to device to avoid warning about client trying to set node num
|
|
|
|
|
meshPacket.wantAck = true//wantAck
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! waypointPacket.serializedData()
|
|
|
|
|
dataMessage.portnum = PortNum.waypointApp
|
|
|
|
|
|
|
|
|
|
meshPacket.decoded = dataMessage
|
|
|
|
|
|
|
|
|
|
//do {
|
|
|
|
|
|
|
|
|
|
// let fetchedNode = try context?.fetch(fetchNode) as! [NodeInfoEntity]
|
|
|
|
|
var toRadio: ToRadio!
|
|
|
|
|
toRadio = ToRadio()
|
|
|
|
|
toRadio.packet = meshPacket
|
|
|
|
|
let binaryData: Data = try! toRadio.serializedData()
|
|
|
|
|
|
|
|
|
|
if meshLoggingEnabled { MeshLogger.log("📍 Sent a Location Packet from the Apple device GPS to node: \(fromNodeNum)") }
|
|
|
|
|
|
|
|
|
|
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
|
|
|
|
|
|
|
|
|
|
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
|
|
|
|
|
success = true
|
|
|
|
|
|
|
|
|
|
// if fetchedNode.count == 1 {
|
|
|
|
|
|
|
|
|
|
var waypointPacket = Location()
|
|
|
|
|
waypointPacket.latitudeI = Int32(LocationHelper.currentLocation.latitude * 1e7)
|
|
|
|
|
waypointPacket.longitudeI = Int32(LocationHelper.currentLocation.longitude * 1e7)
|
|
|
|
|
waypointPacket.expire = UInt32(LocationHelper.currentTimestamp.timeIntervalSince1970)
|
|
|
|
|
waypointPacket.name = "Test Waypoint"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var meshPacket = MeshPacket()
|
|
|
|
|
meshPacket.to = UInt32(destNum)
|
|
|
|
|
meshPacket.from = 0 // Send 0 as from from phone to device to avoid warning about client trying to set node num
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! waypointPacket.serializedData()
|
|
|
|
|
dataMessage.portnum = PortNum.waypointApp
|
|
|
|
|
|
|
|
|
|
meshPacket.decoded = dataMessage
|
|
|
|
|
|
|
|
|
|
var toRadio: ToRadio!
|
|
|
|
|
toRadio = ToRadio()
|
|
|
|
|
toRadio.packet = meshPacket
|
|
|
|
|
let binaryData: Data = try! toRadio.serializedData()
|
|
|
|
|
|
|
|
|
|
if meshLoggingEnabled { MeshLogger.log("📍 Sent a Location Packet from the Apple device GPS to node: \(fromNodeNum)") }
|
|
|
|
|
|
|
|
|
|
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
|
|
|
|
|
|
|
|
|
|
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
|
|
|
|
|
success = true
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//} catch {
|
|
|
|
|
// success = false
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return success
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func sendPosition(destNum: Int64, wantResponse: Bool) -> Bool {
|
|
|
|
|
public func sendPosition(destNum: Int64, wantAck: Bool) -> Bool {
|
|
|
|
|
|
|
|
|
|
var success = false
|
|
|
|
|
|
|
|
|
|
@ -825,58 +812,43 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var positionPacket = Position()
|
|
|
|
|
positionPacket.latitudeI = Int32(LocationHelper.currentLocation.latitude * 1e7)
|
|
|
|
|
positionPacket.longitudeI = Int32(LocationHelper.currentLocation.longitude * 1e7)
|
|
|
|
|
positionPacket.time = UInt32(LocationHelper.currentTimestamp.timeIntervalSince1970)
|
|
|
|
|
positionPacket.altitude = Int32(LocationHelper.currentAltitude)
|
|
|
|
|
|
|
|
|
|
let fetchNode: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
|
|
|
|
|
fetchNode.predicate = NSPredicate(format: "num == %lld", fromNodeNum)
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
|
|
|
|
let fetchedNode = try context?.fetch(fetchNode) as! [NodeInfoEntity]
|
|
|
|
|
// Get Errors without some speed
|
|
|
|
|
if LocationHelper.currentSpeed >= 5 {
|
|
|
|
|
|
|
|
|
|
positionPacket.groundSpeed = UInt32(LocationHelper.currentSpeed)
|
|
|
|
|
positionPacket.groundTrack = UInt32(LocationHelper.currentHeading)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var meshPacket = MeshPacket()
|
|
|
|
|
meshPacket.to = UInt32(destNum)
|
|
|
|
|
meshPacket.from = 0 // Send 0 as from from phone to device to avoid warning about client trying to set node num
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! positionPacket.serializedData()
|
|
|
|
|
dataMessage.portnum = PortNum.positionApp
|
|
|
|
|
|
|
|
|
|
meshPacket.decoded = dataMessage
|
|
|
|
|
|
|
|
|
|
if fetchedNode.count == 1 {
|
|
|
|
|
|
|
|
|
|
var positionPacket = Position()
|
|
|
|
|
positionPacket.latitudeI = Int32(LocationHelper.currentLocation.latitude * 1e7)
|
|
|
|
|
positionPacket.longitudeI = Int32(LocationHelper.currentLocation.longitude * 1e7)
|
|
|
|
|
positionPacket.time = UInt32(LocationHelper.currentTimestamp.timeIntervalSince1970)
|
|
|
|
|
positionPacket.altitude = Int32(LocationHelper.currentAltitude)
|
|
|
|
|
|
|
|
|
|
// Get Errors without some speed
|
|
|
|
|
if LocationHelper.currentSpeed >= 5 {
|
|
|
|
|
|
|
|
|
|
positionPacket.groundSpeed = UInt32(LocationHelper.currentSpeed)
|
|
|
|
|
positionPacket.groundTrack = UInt32(LocationHelper.currentHeading)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var meshPacket = MeshPacket()
|
|
|
|
|
meshPacket.to = UInt32(destNum)
|
|
|
|
|
meshPacket.from = 0 // Send 0 as from from phone to device to avoid warning about client trying to set node num
|
|
|
|
|
meshPacket.wantAck = wantResponse
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! positionPacket.serializedData()
|
|
|
|
|
dataMessage.portnum = PortNum.positionApp
|
|
|
|
|
|
|
|
|
|
meshPacket.decoded = dataMessage
|
|
|
|
|
|
|
|
|
|
var toRadio: ToRadio!
|
|
|
|
|
toRadio = ToRadio()
|
|
|
|
|
toRadio.packet = meshPacket
|
|
|
|
|
let binaryData: Data = try! toRadio.serializedData()
|
|
|
|
|
|
|
|
|
|
if meshLoggingEnabled { MeshLogger.log("📍 Sent a Position Packet from the Apple device GPS to node: \(fromNodeNum)") }
|
|
|
|
|
|
|
|
|
|
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
|
|
|
|
|
|
|
|
|
|
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
|
|
|
|
|
success = true
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var toRadio: ToRadio!
|
|
|
|
|
toRadio = ToRadio()
|
|
|
|
|
toRadio.packet = meshPacket
|
|
|
|
|
let binaryData: Data = try! toRadio.serializedData()
|
|
|
|
|
|
|
|
|
|
if meshLoggingEnabled { MeshLogger.log("📍 Sent a Position Packet from the Apple device GPS to node: \(fromNodeNum)") }
|
|
|
|
|
|
|
|
|
|
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
|
|
|
|
|
|
|
|
|
|
} catch {
|
|
|
|
|
success = false
|
|
|
|
|
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
|
|
|
|
|
success = true
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return success
|
|
|
|
|
@ -890,7 +862,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
// Send a position out to the mesh if "share location with the mesh" is enabled in settings
|
|
|
|
|
if userSettings!.provideLocation {
|
|
|
|
|
|
|
|
|
|
let success = sendPosition(destNum: connectedPeripheral.num, wantResponse: false)
|
|
|
|
|
let success = sendPosition(destNum: connectedPeripheral.num, wantAck: false)
|
|
|
|
|
if !success {
|
|
|
|
|
|
|
|
|
|
print("Failed to send positon to device")
|
|
|
|
|
@ -900,7 +872,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func sendShutdown(destNum: Int64, wantResponse: Bool) -> Bool {
|
|
|
|
|
public func sendShutdown(destNum: Int64) -> Bool {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.shutdownSeconds = 10
|
|
|
|
|
@ -910,7 +882,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantResponse
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! adminPacket.serializedData()
|
|
|
|
|
@ -948,7 +920,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func sendReboot(destNum: Int64, wantResponse: Bool) -> Bool {
|
|
|
|
|
public func sendReboot(destNum: Int64) -> Bool {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.rebootSeconds = 10
|
|
|
|
|
@ -958,7 +930,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantResponse
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -997,7 +969,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func sendFactoryReset(destNum: Int64, wantResponse: Bool) -> Bool {
|
|
|
|
|
public func sendFactoryReset(destNum: Int64) -> Bool {
|
|
|
|
|
|
|
|
|
|
var deviceConfig = Config.DeviceConfig()
|
|
|
|
|
deviceConfig.factoryReset = true
|
|
|
|
|
@ -1010,7 +982,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantResponse
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! adminPacket.serializedData()
|
|
|
|
|
@ -1047,7 +1019,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveUser(config: User, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveUser(config: User, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setOwner = config
|
|
|
|
|
@ -1057,7 +1029,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1076,7 +1048,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveDeviceConfig(config: Config.DeviceConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveDeviceConfig(config: Config.DeviceConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setConfig.device = config
|
|
|
|
|
@ -1086,7 +1058,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1105,7 +1077,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveDisplayConfig(config: Config.DisplayConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveDisplayConfig(config: Config.DisplayConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setConfig.display = config
|
|
|
|
|
@ -1115,7 +1087,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1134,7 +1106,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveLoRaConfig(config: Config.LoRaConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveLoRaConfig(config: Config.LoRaConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setConfig.lora = config
|
|
|
|
|
@ -1145,7 +1117,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1164,7 +1136,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func savePositionConfig(config: Config.PositionConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func savePositionConfig(config: Config.PositionConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setConfig.position = config
|
|
|
|
|
@ -1174,7 +1146,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1193,7 +1165,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveWiFiConfig(config: Config.WiFiConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveWiFiConfig(config: Config.WiFiConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setConfig.wifi = config
|
|
|
|
|
@ -1203,7 +1175,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(connectedPeripheral.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
meshPacket.hopLimit = 0
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
@ -1222,7 +1194,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public func saveCannedMessageModuleConfig(config: ModuleConfig.CannedMessageConfig, fromUser: UserEntity, toUser: UserEntity, wantAck: Bool) -> Int64 {
|
|
|
|
|
public func saveCannedMessageModuleConfig(config: ModuleConfig.CannedMessageConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
adminPacket.setModuleConfig.cannedMessage = config
|
|
|
|
|
@ -1232,7 +1204,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(fromUser.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantAck
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! adminPacket.serializedData()
|
|
|
|
|
@ -1253,7 +1225,6 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
public func saveCannedMessageModuleMessages(messages: String, fromUser: UserEntity, toUser: UserEntity, wantResponse: Bool) -> Int64 {
|
|
|
|
|
|
|
|
|
|
var adminPacket = AdminMessage()
|
|
|
|
|
|
|
|
|
|
adminPacket.setCannedMessageModulePart1 = messages
|
|
|
|
|
|
|
|
|
|
var meshPacket: MeshPacket = MeshPacket()
|
|
|
|
|
@ -1261,7 +1232,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
|
|
|
|
|
meshPacket.from = 0 //UInt32(fromUser.num)
|
|
|
|
|
meshPacket.id = UInt32.random(in: UInt32(UInt8.max)..<UInt32.max)
|
|
|
|
|
meshPacket.priority = MeshPacket.Priority.reliable
|
|
|
|
|
meshPacket.wantAck = wantResponse
|
|
|
|
|
meshPacket.wantAck = true
|
|
|
|
|
|
|
|
|
|
var dataMessage = DataMessage()
|
|
|
|
|
dataMessage.payload = try! adminPacket.serializedData()
|
|
|
|
|
|