From 427a239729dc9f7cc8fdc3ec70c5fcf3dfa83271 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Thu, 24 Nov 2022 02:22:39 -0500 Subject: [PATCH 01/24] streaming over wifi at all times --- .../Rear Rider.xcodeproj/project.pbxproj | 14 +++---- .../UserInterfaceState.xcuserstate | Bin 166890 -> 129127 bytes Rear Rider/Rear Rider/HomeView.swift | 6 +-- Rear Rider/Rear Rider/Rear_RiderApp.swift | 2 + .../CameraTestView.swift | 36 ++---------------- .../MJpegStreamingKit.swift | 1 + 6 files changed, 14 insertions(+), 45 deletions(-) diff --git a/Rear Rider/Rear Rider.xcodeproj/project.pbxproj b/Rear Rider/Rear Rider.xcodeproj/project.pbxproj index e8c2d27..7309aa1 100644 --- a/Rear Rider/Rear Rider.xcodeproj/project.pbxproj +++ b/Rear Rider/Rear Rider.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 20B1A1BF291C04FC0023B920 /* MetricsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B1A1BE291C04FC0023B920 /* MetricsView.swift */; }; + 20B1A1C1291C060F0023B920 /* RideHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B1A1C0291C060E0023B920 /* RideHistoryView.swift */; }; 483E42B4291BE71800B9A3C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 483E42B3291BE71800B9A3C3 /* GoogleService-Info.plist */; }; 483E42B7291BE82200B9A3C3 /* FirebaseAnalyticsSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 483E42B6291BE82200B9A3C3 /* FirebaseAnalyticsSwift */; }; 483E42B9291BE82200B9A3C3 /* FirebaseAnalyticsWithoutAdIdSupport in Frameworks */ = {isa = PBXBuildFile; productRef = 483E42B8291BE82200B9A3C3 /* FirebaseAnalyticsWithoutAdIdSupport */; }; @@ -14,8 +16,6 @@ 483E42BD291BE82200B9A3C3 /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = 483E42BC291BE82200B9A3C3 /* FirebaseCrashlytics */; }; 483E42BF291BE82200B9A3C3 /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = 483E42BE291BE82200B9A3C3 /* FirebaseDatabase */; }; 483E42C1291BE82200B9A3C3 /* FirebaseDatabaseSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 483E42C0291BE82200B9A3C3 /* FirebaseDatabaseSwift */; }; - 20B1A1BF291C04FC0023B920 /* MetricsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B1A1BE291C04FC0023B920 /* MetricsView.swift */; }; - 20B1A1C1291C060F0023B920 /* RideHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B1A1C0291C060E0023B920 /* RideHistoryView.swift */; }; 484558412908941B002D81FC /* OptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 484558402908941B002D81FC /* OptionsView.swift */; }; 4845584929089EAA002D81FC /* UserConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4845584829089EAA002D81FC /* UserConfig.swift */; }; 4845584B2909768E002D81FC /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4845584A2909768E002D81FC /* ColorExtension.swift */; }; @@ -53,9 +53,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 483E42B3291BE71800B9A3C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 20B1A1BE291C04FC0023B920 /* MetricsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetricsView.swift; sourceTree = ""; }; 20B1A1C0291C060E0023B920 /* RideHistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RideHistoryView.swift; sourceTree = ""; }; + 483E42B3291BE71800B9A3C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 484558402908941B002D81FC /* OptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OptionsView.swift; sourceTree = ""; }; 4845584829089EAA002D81FC /* UserConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserConfig.swift; sourceTree = ""; }; 4845584A2909768E002D81FC /* ColorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorExtension.swift; sourceTree = ""; }; @@ -512,7 +512,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Rear Rider/Preview Content\""; - DEVELOPMENT_TEAM = GSVBY5A2AP; + DEVELOPMENT_TEAM = T53AYVVL5N; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "This app requires Bluetooth for connecting to RaspberryPi"; @@ -526,7 +526,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = RearRider; + PRODUCT_BUNDLE_IDENTIFIER = com.Calin.RearRider; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -542,7 +542,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Rear Rider/Preview Content\""; - DEVELOPMENT_TEAM = GSVBY5A2AP; + DEVELOPMENT_TEAM = T53AYVVL5N; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "This app requires Bluetooth for connecting to RaspberryPi"; @@ -556,7 +556,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = RearRider; + PRODUCT_BUNDLE_IDENTIFIER = com.Calin.RearRider; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; diff --git a/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate b/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate index 786e691da78931f5741abb98baf7882ec1b570d0..b59d5d93d6a304f8ac3f604962e074397cbe6e7c 100644 GIT binary patch literal 129127 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⪙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 z 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 Iy!!Y501uBS5dZ)H diff --git a/Rear Rider/Rear Rider/HomeView.swift b/Rear Rider/Rear Rider/HomeView.swift index 0c007da..7f0b3fd 100644 --- a/Rear Rider/Rear Rider/HomeView.swift +++ b/Rear Rider/Rear Rider/HomeView.swift @@ -25,13 +25,9 @@ struct HomeView: View { .foregroundColor(wifiManager.wifiOn ? .green : .red) } TabView { - RiderView() - .tabItem { - Image(systemName: "bicycle") - } CameraTestView() .tabItem { - Image(systemName: "camera") + Image(systemName: "bicycle") } OptionsView() .tabItem { diff --git a/Rear Rider/Rear Rider/Rear_RiderApp.swift b/Rear Rider/Rear Rider/Rear_RiderApp.swift index 8fcc242..2811dbf 100644 --- a/Rear Rider/Rear Rider/Rear_RiderApp.swift +++ b/Rear Rider/Rear Rider/Rear_RiderApp.swift @@ -25,6 +25,7 @@ struct Rear_RiderApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate + @StateObject var mLModel = ImageIdentification() @StateObject var bleManager = BLEManager.shared @StateObject var conf = UserConfig() @StateObject var log = RearRiderLog.shared @@ -33,6 +34,7 @@ struct Rear_RiderApp: App { var body: some Scene { WindowGroup { HomeView() + .environmentObject(mLModel) .environmentObject(bleManager) .environmentObject(log) .environmentObject(conf) diff --git a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift index 2f3f83b..86abf8e 100644 --- a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift +++ b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift @@ -10,13 +10,13 @@ import SwiftUI import AVKit struct CameraTestView: View { + @EnvironmentObject var mLModel: ImageIdentification @EnvironmentObject var bleManager: BLEManager @EnvironmentObject var wifiManager: WifiManager @ObservedObject private var stream = MjpegStreamingController(url: "http://raspberrypi.local:8000/stream.mjpg") - private var mLModel = ImageIdentification() // declare a timer that will call a function every 0.3 seconds - private let timer = Timer.publish(every: 0.3, on: .main, in: .common) + private let timer = Timer.publish(every: 0.3, on: .main, in: .common).autoconnect() @State var timer_set = false var body: some View { @@ -43,34 +43,10 @@ struct CameraTestView: View { .scaledToFit() RecordingView() - - HStack { - Button(action: { - if wifiManager.wifiOn { - stream.play() - if !timer_set { - _ = timer.connect() - timer_set = true - } - } - }) { - Text("Play") - } - - Spacer() - - Button(action: { - mLModel.clearBndRects() - mLModel.detectObjects(image: stream.uiImage) - }) { - Text("Classify") - } - } } .onAppear() { if (bleManager.connected) { bleManager.toggleNotifyCharacteristic(enabled: false) - wifiManager.turnWifiOn() } } .onReceive(timer) { time in @@ -79,18 +55,12 @@ struct CameraTestView: View { mLModel.detectObjects(image: stream.uiImage) } } - .onDisappear() { - if (wifiManager.wifiOn) { - wifiManager.turnWifiOff() - timer.connect().cancel() - timer_set = false - } - } } } struct CameraTest_Previews: PreviewProvider { static var previews: some View { CameraTestView().environmentObject(BLEManager()) + .environmentObject(ImageIdentification()) } } diff --git a/Rear Rider/Rear Rider/StreamingAndRecording/MJpegStreamingKit.swift b/Rear Rider/Rear Rider/StreamingAndRecording/MJpegStreamingKit.swift index 10690c1..2f45e36 100644 --- a/Rear Rider/Rear Rider/StreamingAndRecording/MJpegStreamingKit.swift +++ b/Rear Rider/Rear Rider/StreamingAndRecording/MJpegStreamingKit.swift @@ -41,6 +41,7 @@ open class MjpegStreamingController: NSObject, URLSessionDataDelegate, Observabl super.init() self.session = Foundation.URLSession(configuration: URLSessionConfiguration.default, delegate: self, delegateQueue: nil) self.contentURL = URL(string: url) + self.play() } deinit { From 0eae09dc0b6c177015ab5af2949b246f29872120 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Thu, 24 Nov 2022 21:38:28 -0500 Subject: [PATCH 02/24] the app is notified when lidar detects an object --- .../Rear Rider/BlueTooth/BLEManager.swift | 15 ++++++ rear_rider_device/bluetooth.py | 6 +++ rear_rider_device/lidar_child_proc.py | 5 ++ .../src/services/hello_world.py | 46 +++++++++++++++++++ 4 files changed, 72 insertions(+) diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index d1145cf..a80302d 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -24,6 +24,7 @@ struct CBUUIDs { static let BLEConfigCharacteristicUUID = CBUUID(string: "501beabd-3f66-4cca-ba7a-0fbf4f81870c") static let BLEWifiCharacteristicUUID = CBUUID(string: "cd41b278-6254-4c89-9cd1-fd2578ab8fcc") static let BLEPictureCharacteristicUUID = CBUUID(string: "cd41b278-6254-4c89-9cd1-fd2578ab8abb") + static let BLELiDARCharacteristicUUID = CBUUID(string: "92cb916f-d996-4f30-8cba-cf3ab8aede56") } /// The purpose of this class is to set the iPhone as a central manager and connect to the RaspberryPi as a peripheral @@ -36,6 +37,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph private var configCharacteristic: CBCharacteristic! private var wifiCharacteristic: CBCharacteristic! private var picCharacteristic: CBCharacteristic! + private var lidarCharacteristic: CBCharacteristic! //mostly for testing purposes var ConfigCharacteristic: CBCharacteristic { @@ -217,6 +219,12 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph log.addLog(from: "BT", message: "Picture Characteristic set") connected = true } + else if characteristic.uuid.isEqual(CBUUIDs.BLELiDARCharacteristicUUID) { + lidarCharacteristic = characteristic + log.addLog(from: "BT", message: "LiDAR Characteristic set") + peripheral.setNotifyValue(true, for: lidarCharacteristic) + connected = true + } } } @@ -267,6 +275,11 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph } } } + else if characteristic == lidarCharacteristic { + print("LiDAR") + let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) + print(d!) + } } /// Called when the state of the connection changes @@ -276,6 +289,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph func peripheral(_ peripheral: CBPeripheral, didModifyServices invalidatedServices: [CBService]) { connected = false log.addLog(from: "BT", message: "RPi disconnected") + startScanning() // try to reconnect } /// Called when the peripheral disconnects @@ -289,6 +303,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph print("RPi disconnected") log.addLog(from: "BT", message: "RPi disconnected") connected = false + startScanning() // try to reconnect } } diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 317ab00..3c554d4 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -66,6 +66,12 @@ async def on_set_data(self): nums = data.split(',') self.rear_rider_bt.sensors_svc.accelerometer_characteristic.vector = ( float(nums[0]),float(nums[1]),float(nums[2])) + + elif data_type_line == 'lidar': + data = await self.readline() + self.rear_rider_bt.hello_world_svc.lidar_chr.value = data + self.rear_rider_bt.hello_world_svc.lidar_chr.set_in_range() + else: # TODO: Add critical section guard here # self.writeline('set_data_ack') diff --git a/rear_rider_device/lidar_child_proc.py b/rear_rider_device/lidar_child_proc.py index 331aab6..ee6bcfc 100644 --- a/rear_rider_device/lidar_child_proc.py +++ b/rear_rider_device/lidar_child_proc.py @@ -20,6 +20,7 @@ def __init__(self, led_child_proc: LedsChildProcess): super().__init__('python {}/lidar_proc.py'.format(dir_path)) self.ready = asyncio.Future() self.led_child_proc = led_child_proc + self.in_range = False async def on_ready(self): @@ -42,8 +43,12 @@ async def on_data(self): unsafe_distance = 50 if int(lidar_distance) < unsafe_distance: + if not self.in_range: + await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) + self.in_range = True await self.led_child_proc.led_strobe_on() else: + self.in_range = False await self.led_child_proc.led_strobe_off() await asyncio.sleep(1.0/100) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index a4caa38..6732eb6 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -39,15 +39,18 @@ def __init__(self, bus, index): config_chr = ConfigCharacteristic(bus, 2, self) wifi_chr = WifiCharacteristic(bus, 3, self) pic_chr = PictureCharacteristic(bus, 4, self) + lidar_chr = LiDARCharacteristic(bus, 5, self) self.add_characteristic(reverse_text_chr) self.add_characteristic(append_counter_chr) self.add_characteristic(config_chr) self.add_characteristic(wifi_chr) self.add_characteristic(pic_chr) + self.add_characteristic(lidar_chr) self.reverse_text_chr = reverse_text_chr self.config_chr = config_chr + self.lidar_chr = lidar_chr class ReverseTextCharacteristic(Characteristic): """ @@ -272,3 +275,46 @@ def ReadValue(self, options): def WriteValue(self, value, options): self.value = int(value[0]) + +class LiDARCharacteristic(Characteristic): + """ + Notifies the iOS app when an object is detected by the LiDAR sensor and sends + the distance. + """ + UUID = '92cb916f-d996-4f30-8cba-cf3ab8aede56' + value: dbus.ByteArray + def __init__(self, bus, index, service): + Characteristic.__init__( + self, bus, index, + self.UUID, + ['notify'], + service) + self.notifying = False + self.value = 0 + self.in_range = False + + def set_in_range(self): + self.in_range = True + + def StartNotify(self): + if self.notifying: + print('Already in a notifying state.') + return + self.notifying = True + self._start_notifying() + + def StopNotify(self): + if not self.notifying: + print('Not in a notifying state.') + return + self.notifying = False + + def _start_notifying(self): + GObject.timeout_add(500, self._check_object_in_range) + + def _check_object_in_range(self): + if self.in_range: + value = dbus.ByteArray(self.value.encode('utf8')) + self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) + self.in_range = False + return self.notifying From c0b2eadc925960030ddb84e8c580b841f6d87bd5 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Sun, 27 Nov 2022 01:50:58 -0500 Subject: [PATCH 03/24] sound is played when object detected by LiDAR --- Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift | 2 +- Rear Rider/Rear Rider/BlueTooth/BLEManager.swift | 4 +++- Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift | 2 +- Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index 66ac490..47da467 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -82,7 +82,7 @@ class RearRiderAlerts: ObservableObject { do { try AVAudioSession.sharedInstance().setCategory( - AVAudioSession.Category.playback, + AVAudioSession.Category.multiRoute, // this setting allows the sound to be played on the speaker instead of Bluetooth options: AVAudioSession.CategoryOptions.duckOthers ) diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index a80302d..8155d06 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -278,7 +278,9 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph else if characteristic == lidarCharacteristic { print("LiDAR") let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) - print(d!) + if d?.count ?? 0 > 0 { + RearRiderAlerts.shared.playAudioAlert() + } } } diff --git a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift index 82e6560..433892c 100644 --- a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift +++ b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift @@ -31,7 +31,7 @@ struct OptionsView: View { let lightPatterns: [ConfigOptions.LightPattern] = ConfigOptions.LightPattern.allCases let lightBrightness: [ConfigOptions.LightBrightness] = ConfigOptions.LightBrightness.allCases - let alert = RearRiderAlerts() + let alert = RearRiderAlerts.shared var body: some View { VStack { diff --git a/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift b/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift index 08a921a..99c75a9 100644 --- a/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift +++ b/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift @@ -116,6 +116,8 @@ class UserConfig: ObservableObject { self.lightBrightness = savedData.lightBrightness self.lightColor = savedData.lightColor + try! RearRiderAlerts.shared.loadSoundFile(fileName: self.audioFile) + print("LOADED: \(savedData)") log.addLog(from: "UserConfig", message: "Loaded config: \(savedData)") } else { From 182307f7bd48483538d744a6444d098062a98a74 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Sun, 27 Nov 2022 12:28:00 -0500 Subject: [PATCH 04/24] play different sounds when an object is at different distances --- .../Rear Rider/Alerts/RearRiderAlerts.swift | 48 +++++++++++++----- Rear Rider/Rear Rider/Alerts/beep.mp3 | Bin 0 -> 6318 bytes .../Rear Rider/BlueTooth/BLEManager.swift | 12 ++++- rear_rider_device/bluetooth.py | 1 + rear_rider_device/lidar_child_proc.py | 18 +++++-- .../src/services/hello_world.py | 6 +-- 6 files changed, 62 insertions(+), 23 deletions(-) create mode 100644 Rear Rider/Rear Rider/Alerts/beep.mp3 diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index 47da467..8126b64 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -13,7 +13,6 @@ enum AlertErrors: Error { case fileNotFound(String) } - /** * Class for managing any audio and visual alerts for the rider */ @@ -22,6 +21,12 @@ class RearRiderAlerts: ObservableObject { var player: AVAudioPlayer! var soundFile: URL! = nil + // this sound is played when an object is very close + var beep_player: AVAudioPlayer! + var beep_file: URL! = nil + var dist_far: Int = 900 + var dist_close: Int = 100 + @Published var frame: UIImage = UIImage() static var shared = RearRiderAlerts() @@ -29,6 +34,34 @@ class RearRiderAlerts: ObservableObject { var pic_size:Int = 0 var pic_first_time:Bool = true + init() { + try! loadBeepSound() + + do { + try AVAudioSession.sharedInstance().setCategory( + AVAudioSession.Category.multiRoute, // this setting allows the sound to be played on the speaker instead of Bluetooth + options: AVAudioSession.CategoryOptions.duckOthers) + + try AVAudioSession.sharedInstance().setActive(true) + } catch let error { + print(error) + } + } + + func loadBeepSound() throws { + beep_file = Bundle.main.url(forResource: "beep", withExtension: "mp3") + + if beep_file == nil { + throw AlertErrors.fileNotFound("File \("beep").mp3 not found on device!") + } + + beep_player = try! AVAudioPlayer(contentsOf: beep_file) + } + + func playBeepSound() { + if beep_file == nil { return } + beep_player.play() + } /// When this is set, the transfer of the packets will commence var pic_packets:Int = 0 { @@ -79,18 +112,7 @@ class RearRiderAlerts: ObservableObject { func playAudioAlert() { // do nothing if we don't have a sound file configured if soundFile == nil { return } - - do { - try AVAudioSession.sharedInstance().setCategory( - AVAudioSession.Category.multiRoute, // this setting allows the sound to be played on the speaker instead of Bluetooth - options: AVAudioSession.CategoryOptions.duckOthers - ) - - try AVAudioSession.sharedInstance().setActive(true) - player.play() - } catch let error { - print(error) - } + player.play() } /// Asks the RPi for the picture's metadata (size and number of packets) diff --git a/Rear Rider/Rear Rider/Alerts/beep.mp3 b/Rear Rider/Rear Rider/Alerts/beep.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..cd3a3ecded0158e5ececd0520a73cfe59915e2a3 GIT binary patch literal 6318 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 literal 0 HcmV?d00001 diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index 8155d06..88f7e79 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -276,10 +276,18 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph } } else if characteristic == lidarCharacteristic { - print("LiDAR") let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) if d?.count ?? 0 > 0 { - RearRiderAlerts.shared.playAudioAlert() + guard let distance = Int(d!) else { return } + // when an object is very close a beeping sound will continuously play to alert the rider + if distance <= RearRiderAlerts.shared.dist_close { RearRiderAlerts.shared.playBeepSound() } + + // if an object is detected further away, an alert will be played once + else if distance <= RearRiderAlerts.shared.dist_far && + distance > RearRiderAlerts.shared.dist_close + { + RearRiderAlerts.shared.playAudioAlert() + } } } } diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 3c554d4..8cbf209 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -71,6 +71,7 @@ async def on_set_data(self): data = await self.readline() self.rear_rider_bt.hello_world_svc.lidar_chr.value = data self.rear_rider_bt.hello_world_svc.lidar_chr.set_in_range() + self.rear_rider_bt.hello_world_svc.lidar_chr.check_object_in_range() else: # TODO: Add critical section guard here diff --git a/rear_rider_device/lidar_child_proc.py b/rear_rider_device/lidar_child_proc.py index ee6bcfc..9de3b03 100644 --- a/rear_rider_device/lidar_child_proc.py +++ b/rear_rider_device/lidar_child_proc.py @@ -39,10 +39,22 @@ async def on_data(self): lidar_data = (await self.readline()).split(' ') lidar_distance = lidar_data[0] signal_strength = lidar_data[1] - self._print('Lidar_distance:{}\n\tSignal_strength:{}\n'.format(lidar_distance, signal_strength)) + #self._print('Lidar_distance:{}\n\tSignal_strength:{}\n'.format(lidar_distance, signal_strength)) - unsafe_distance = 50 - if int(lidar_distance) < unsafe_distance: + unsafe_distance = 900 + very_close = 100 + dist = int(lidar_distance) + + # if the object detected is very close send data to iPhone continuously + if dist <= very_close: + await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) + self.in_range = False + await self.led_child_proc.led_strobe_on() + else: + await self.led_child_proc.led_strobe_off() + + # if the object detected is at a safer distance, alert only once + if dist <= unsafe_distance and dist > very_close: if not self.in_range: await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) self.in_range = True diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index 6732eb6..c611517 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -301,18 +301,14 @@ def StartNotify(self): print('Already in a notifying state.') return self.notifying = True - self._start_notifying() def StopNotify(self): if not self.notifying: print('Not in a notifying state.') return self.notifying = False - - def _start_notifying(self): - GObject.timeout_add(500, self._check_object_in_range) - def _check_object_in_range(self): + def check_object_in_range(self): if self.in_range: value = dbus.ByteArray(self.value.encode('utf8')) self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) From d37bb2c232622f76ba0ade503549af59381a43c4 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Sun, 27 Nov 2022 14:14:59 -0500 Subject: [PATCH 05/24] added medium distance and text label for distance in the main view --- Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift | 3 +++ Rear Rider/Rear Rider/BlueTooth/BLEManager.swift | 3 ++- Rear Rider/Rear Rider/Rear_RiderApp.swift | 2 ++ .../Rear Rider/StreamingAndRecording/CameraTestView.swift | 4 ++++ rear_rider_device/lidar_child_proc.py | 3 ++- 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index 8126b64..0bfd880 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -25,7 +25,9 @@ class RearRiderAlerts: ObservableObject { var beep_player: AVAudioPlayer! var beep_file: URL! = nil var dist_far: Int = 900 + var dist_medium: Int = 500 var dist_close: Int = 100 + @Published var distance: Int @Published var frame: UIImage = UIImage() static var shared = RearRiderAlerts() @@ -35,6 +37,7 @@ class RearRiderAlerts: ObservableObject { var pic_first_time:Bool = true init() { + self.distance = 0 try! loadBeepSound() do { diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index 88f7e79..1d34c91 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -279,12 +279,13 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) if d?.count ?? 0 > 0 { guard let distance = Int(d!) else { return } + RearRiderAlerts.shared.distance = distance // when an object is very close a beeping sound will continuously play to alert the rider if distance <= RearRiderAlerts.shared.dist_close { RearRiderAlerts.shared.playBeepSound() } // if an object is detected further away, an alert will be played once else if distance <= RearRiderAlerts.shared.dist_far && - distance > RearRiderAlerts.shared.dist_close + distance >= RearRiderAlerts.shared.dist_medium { RearRiderAlerts.shared.playAudioAlert() } diff --git a/Rear Rider/Rear Rider/Rear_RiderApp.swift b/Rear Rider/Rear Rider/Rear_RiderApp.swift index 2811dbf..2694ba8 100644 --- a/Rear Rider/Rear Rider/Rear_RiderApp.swift +++ b/Rear Rider/Rear Rider/Rear_RiderApp.swift @@ -30,6 +30,7 @@ struct Rear_RiderApp: App { @StateObject var conf = UserConfig() @StateObject var log = RearRiderLog.shared @StateObject var wifiManager = WifiManager.shared + @StateObject var alert = RearRiderAlerts.shared var body: some Scene { WindowGroup { @@ -39,6 +40,7 @@ struct Rear_RiderApp: App { .environmentObject(log) .environmentObject(conf) .environmentObject(wifiManager) + .environmentObject(alert) } } } diff --git a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift index 86abf8e..0045ab1 100644 --- a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift +++ b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift @@ -13,6 +13,7 @@ struct CameraTestView: View { @EnvironmentObject var mLModel: ImageIdentification @EnvironmentObject var bleManager: BLEManager @EnvironmentObject var wifiManager: WifiManager + @EnvironmentObject var alert: RearRiderAlerts @ObservedObject private var stream = MjpegStreamingController(url: "http://raspberrypi.local:8000/stream.mjpg") // declare a timer that will call a function every 0.3 seconds @@ -42,6 +43,8 @@ struct CameraTestView: View { } .scaledToFit() + Text(String(alert.distance) + "cm") + RecordingView() } .onAppear() { @@ -62,5 +65,6 @@ struct CameraTest_Previews: PreviewProvider { static var previews: some View { CameraTestView().environmentObject(BLEManager()) .environmentObject(ImageIdentification()) + .environmentObject(RearRiderAlerts()) } } diff --git a/rear_rider_device/lidar_child_proc.py b/rear_rider_device/lidar_child_proc.py index 9de3b03..6c6cb68 100644 --- a/rear_rider_device/lidar_child_proc.py +++ b/rear_rider_device/lidar_child_proc.py @@ -42,6 +42,7 @@ async def on_data(self): #self._print('Lidar_distance:{}\n\tSignal_strength:{}\n'.format(lidar_distance, signal_strength)) unsafe_distance = 900 + medium_distance = 500 very_close = 100 dist = int(lidar_distance) @@ -54,7 +55,7 @@ async def on_data(self): await self.led_child_proc.led_strobe_off() # if the object detected is at a safer distance, alert only once - if dist <= unsafe_distance and dist > very_close: + if dist <= unsafe_distance and dist >= medium_distance: if not self.in_range: await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) self.in_range = True From f06fa8cb51646e74eca97662f4eaceff0c584103 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Sun, 27 Nov 2022 20:51:03 -0500 Subject: [PATCH 06/24] reverted to one distance on the Pi; send all distances over BT --- .../Rear Rider/Alerts/RearRiderAlerts.swift | 4 ++-- .../Rear Rider/BlueTooth/BLEManager.swift | 4 ++-- .../CameraTestView.swift | 2 +- rear_rider_device/bluetooth.py | 1 - rear_rider_device/lidar_child_proc.py | 20 ++----------------- .../src/services/hello_world.py | 10 ++-------- 6 files changed, 9 insertions(+), 32 deletions(-) diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index 0bfd880..ec743dc 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -26,8 +26,8 @@ class RearRiderAlerts: ObservableObject { var beep_file: URL! = nil var dist_far: Int = 900 var dist_medium: Int = 500 - var dist_close: Int = 100 - @Published var distance: Int + var dist_close: Int = 200 + @Published var distance: Int = 0 @Published var frame: UIImage = UIImage() static var shared = RearRiderAlerts() diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index 1d34c91..b3fa67e 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -277,8 +277,8 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph } else if characteristic == lidarCharacteristic { let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) - if d?.count ?? 0 > 0 { - guard let distance = Int(d!) else { return } + if d != nil { + let distance: Int = Int(d ?? "0") ?? 0 RearRiderAlerts.shared.distance = distance // when an object is very close a beeping sound will continuously play to alert the rider if distance <= RearRiderAlerts.shared.dist_close { RearRiderAlerts.shared.playBeepSound() } diff --git a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift index 0045ab1..4a7d055 100644 --- a/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift +++ b/Rear Rider/Rear Rider/StreamingAndRecording/CameraTestView.swift @@ -43,7 +43,7 @@ struct CameraTestView: View { } .scaledToFit() - Text(String(alert.distance) + "cm") + Text(String(alert.distance) + " cm") RecordingView() } diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 8cbf209..2e2e62b 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -70,7 +70,6 @@ async def on_set_data(self): elif data_type_line == 'lidar': data = await self.readline() self.rear_rider_bt.hello_world_svc.lidar_chr.value = data - self.rear_rider_bt.hello_world_svc.lidar_chr.set_in_range() self.rear_rider_bt.hello_world_svc.lidar_chr.check_object_in_range() else: diff --git a/rear_rider_device/lidar_child_proc.py b/rear_rider_device/lidar_child_proc.py index 6c6cb68..47156f4 100644 --- a/rear_rider_device/lidar_child_proc.py +++ b/rear_rider_device/lidar_child_proc.py @@ -41,27 +41,11 @@ async def on_data(self): signal_strength = lidar_data[1] #self._print('Lidar_distance:{}\n\tSignal_strength:{}\n'.format(lidar_distance, signal_strength)) - unsafe_distance = 900 - medium_distance = 500 - very_close = 100 - dist = int(lidar_distance) - - # if the object detected is very close send data to iPhone continuously - if dist <= very_close: + unsafe_distance = 200 + if int(lidar_distance) <= unsafe_distance: await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) - self.in_range = False - await self.led_child_proc.led_strobe_on() - else: - await self.led_child_proc.led_strobe_off() - - # if the object detected is at a safer distance, alert only once - if dist <= unsafe_distance and dist >= medium_distance: - if not self.in_range: - await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) - self.in_range = True await self.led_child_proc.led_strobe_on() else: - self.in_range = False await self.led_child_proc.led_strobe_off() await asyncio.sleep(1.0/100) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index c611517..e05ea1b 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -291,10 +291,6 @@ def __init__(self, bus, index, service): service) self.notifying = False self.value = 0 - self.in_range = False - - def set_in_range(self): - self.in_range = True def StartNotify(self): if self.notifying: @@ -309,8 +305,6 @@ def StopNotify(self): self.notifying = False def check_object_in_range(self): - if self.in_range: - value = dbus.ByteArray(self.value.encode('utf8')) - self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) - self.in_range = False + value = dbus.ByteArray(self.value.encode('utf8')) + self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) return self.notifying From c64800431fce6b7632c7ea72c5ad61b85a8cbadb Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Fri, 2 Dec 2022 05:13:19 -0500 Subject: [PATCH 07/24] some changes for alerts and user configuration --- .../Rear Rider/Alerts/RearRiderAlerts.swift | 42 ++++++++----------- .../Rear Rider/BlueTooth/BLEManager.swift | 11 +---- .../ConfigurationOptions/OptionsView.swift | 39 ++++++++++++++++- .../ConfigurationOptions/UserConfig.swift | 26 +++++++++++- 4 files changed, 82 insertions(+), 36 deletions(-) diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index ec743dc..2cc7f24 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -21,13 +21,10 @@ class RearRiderAlerts: ObservableObject { var player: AVAudioPlayer! var soundFile: URL! = nil - // this sound is played when an object is very close - var beep_player: AVAudioPlayer! - var beep_file: URL! = nil - var dist_far: Int = 900 - var dist_medium: Int = 500 - var dist_close: Int = 200 + var unsafe_distance: Int = 900 @Published var distance: Int = 0 + var alert_enabled: Bool = true + var vehicles_only: Bool = true @Published var frame: UIImage = UIImage() static var shared = RearRiderAlerts() @@ -37,9 +34,6 @@ class RearRiderAlerts: ObservableObject { var pic_first_time:Bool = true init() { - self.distance = 0 - try! loadBeepSound() - do { try AVAudioSession.sharedInstance().setCategory( AVAudioSession.Category.multiRoute, // this setting allows the sound to be played on the speaker instead of Bluetooth @@ -51,21 +45,6 @@ class RearRiderAlerts: ObservableObject { } } - func loadBeepSound() throws { - beep_file = Bundle.main.url(forResource: "beep", withExtension: "mp3") - - if beep_file == nil { - throw AlertErrors.fileNotFound("File \("beep").mp3 not found on device!") - } - - beep_player = try! AVAudioPlayer(contentsOf: beep_file) - } - - func playBeepSound() { - if beep_file == nil { return } - beep_player.play() - } - /// When this is set, the transfer of the packets will commence var pic_packets:Int = 0 { didSet { @@ -124,4 +103,19 @@ class RearRiderAlerts: ObservableObject { mLModel.clearBndRects() BLEManager.shared.getPicInfo() } + + /// Play an alert sound when necessary + /// - Parameter d: Distance of the object detected by LiDAR + func alert_rider(distance d: Int) { + self.distance = d + + if d <= unsafe_distance && alert_enabled { + if vehicles_only { + print("hi") + } + else { + playAudioAlert() + } + } + } } diff --git a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift index b3fa67e..702a575 100644 --- a/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift +++ b/Rear Rider/Rear Rider/BlueTooth/BLEManager.swift @@ -279,16 +279,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph let d = String(data: characteristic.value ?? Data(), encoding: String.Encoding.utf8) if d != nil { let distance: Int = Int(d ?? "0") ?? 0 - RearRiderAlerts.shared.distance = distance - // when an object is very close a beeping sound will continuously play to alert the rider - if distance <= RearRiderAlerts.shared.dist_close { RearRiderAlerts.shared.playBeepSound() } - - // if an object is detected further away, an alert will be played once - else if distance <= RearRiderAlerts.shared.dist_far && - distance >= RearRiderAlerts.shared.dist_medium - { - RearRiderAlerts.shared.playAudioAlert() - } + RearRiderAlerts.shared.alert_rider(distance: distance) } } } diff --git a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift index 433892c..e7b048c 100644 --- a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift +++ b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift @@ -26,6 +26,13 @@ struct OptionsView: View { @State var confLightPattern: Int = 1 @State var confLightBrightness: Int = 1 @State var confLightColor: Color = .white + @State var confAlertToggle: Bool = true + @State var confVehiclesOnly: Bool = true + @State var confUnsafeDistance: Float = 17.0 // this index represents 900 in the array below + + var distance_text = ["50", "100", "150", "200", "250", "300", + "350", "400", "450", "500", "550", "600", + "650", "700", "750", "800", "850", "900", "950", "1000"] let audioFiles: [ConfigOptions.AudioFile] = ConfigOptions.AudioFile.allCases let lightPatterns: [ConfigOptions.LightPattern] = ConfigOptions.LightPattern.allCases @@ -44,8 +51,14 @@ struct OptionsView: View { audioFile in Text(audioFile.description).tag(audioFile.rawValue) } }) + Toggle("Sound", isOn: $confAlertToggle.onChange(setAlert)) + Toggle("Vehicles Only", isOn: $confVehiclesOnly.onChange(setVehiclesOnly)) + HStack { + Slider(value: $confUnsafeDistance.onChange(setDistance), in: 0...19, step: 1) + Text("Distance: \(distance_text[Int(confUnsafeDistance)])") + } } header: { - Text("Audio") + Text("LiDAR") } Section { Picker("Pattern", selection: $confLightPattern.onChange(setLights), content: { @@ -79,6 +92,9 @@ struct OptionsView: View { confLightBrightness = conf.lightBrightness confLightPattern = conf.lightPattern confLightColor = Color.fromRGBString(rgbString: conf.lightColor) + confAlertToggle = conf.alertToggle + confVehiclesOnly = conf.vehiclesOnly + confUnsafeDistance = Float(distance_text.lastIndex(of: String(conf.unsafeDistance)) ?? 0) } } @@ -96,6 +112,27 @@ struct OptionsView: View { } } + /// Enable alerts + /// - Parameter value: true to enable + func setAlert(to value: Bool) { + conf.alertToggle = confAlertToggle + saveConf() + } + + /// Set the unsafe distance + /// - Parameter value: the index of distance_text array + func setDistance(to value: Float) { + conf.unsafeDistance = Int(distance_text[Int(confUnsafeDistance)]) ?? 0 + saveConf() + } + + /// Alerts will be played only if the object detected is a vehicle + /// - Parameter value: true or false + func setVehiclesOnly(to value: Bool) { + conf.vehiclesOnly = confVehiclesOnly + saveConf() + } + /** * Sets the config object's light pattern to the new selection and saves it */ diff --git a/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift b/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift index 99c75a9..395532d 100644 --- a/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift +++ b/Rear Rider/Rear Rider/ConfigurationOptions/UserConfig.swift @@ -16,6 +16,9 @@ struct ConfigData: Codable { let lightPattern: Int let lightBrightness: Int let lightColor: String + let alertToggle: Bool + let vehiclesOnly: Bool + let unsafeDistance: Int } /** @@ -24,12 +27,15 @@ struct ConfigData: Codable { enum ConfigOptions { enum AudioFile: String, CaseIterable, Equatable { case honk = "vehicleAlert" + case beep = "beep" case off = "" var description: String { switch self { case .honk: return "Honk" + case .beep: + return "Beep" case .off: return "None" } @@ -88,6 +94,9 @@ class UserConfig: ObservableObject { var lightPattern: Int = ConfigOptions.LightPattern.strobe.rawValue var lightColor: String = "rgb(255,255,255)" var lightBrightness: Int = 1 + var alertToggle: Bool = true + var vehiclesOnly: Bool = true + var unsafeDistance: Int = 900 var colorRGB: [CGFloat]? // use this for sending rgb values to RPi @@ -115,8 +124,14 @@ class UserConfig: ObservableObject { self.lightPattern = savedData.lightPattern self.lightBrightness = savedData.lightBrightness self.lightColor = savedData.lightColor + self.alertToggle = savedData.alertToggle + self.vehiclesOnly = savedData.vehiclesOnly + self.unsafeDistance = savedData.unsafeDistance try! RearRiderAlerts.shared.loadSoundFile(fileName: self.audioFile) + RearRiderAlerts.shared.alert_enabled = self.alertToggle + RearRiderAlerts.shared.vehicles_only = self.vehiclesOnly + RearRiderAlerts.shared.unsafe_distance = self.unsafeDistance print("LOADED: \(savedData)") log.addLog(from: "UserConfig", message: "Loaded config: \(savedData)") @@ -146,7 +161,10 @@ class UserConfig: ObservableObject { audioFile: audioFile, lightPattern: lightPattern, lightBrightness: lightBrightness, - lightColor: lightColor + lightColor: lightColor, + alertToggle: alertToggle, + vehiclesOnly: vehiclesOnly, + unsafeDistance: unsafeDistance ) let encoder = JSONEncoder() if let encodedData = try? encoder.encode(data) { @@ -155,6 +173,10 @@ class UserConfig: ObservableObject { log.addLog(from: "UserConfig", message: "Saved config: \(data)") } + RearRiderAlerts.shared.alert_enabled = self.alertToggle + RearRiderAlerts.shared.vehicles_only = self.vehiclesOnly + RearRiderAlerts.shared.unsafe_distance = self.unsafeDistance + /* Prepare data to be sent over BT * The format is as follows: * 1st byte - light pattern @@ -170,12 +192,14 @@ class UserConfig: ObservableObject { var red: UInt8 = UInt8(colorRGB[0] * 255) var green: UInt8 = UInt8(colorRGB[1] * 255) var blue: UInt8 = UInt8(colorRGB[2] * 255) + var distance: UInt16 = UInt16(self.unsafeDistance) bytes.append(withUnsafeBytes(of: &pat) { Data($0) }) bytes.append(withUnsafeBytes(of: &br) { Data($0) }) bytes.append(withUnsafeBytes(of: &red) { Data($0) }) bytes.append(withUnsafeBytes(of: &green) { Data($0) }) bytes.append(withUnsafeBytes(of: &blue) { Data($0) }) + bytes.append(withUnsafeBytes(of: &distance) { Data($0) }) bleManager.sendConfigToPi(data: bytes) } From c4795cd33fa9a8ba17932426df7f433446b3e21d Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Fri, 2 Dec 2022 12:47:21 -0500 Subject: [PATCH 08/24] option to detect vehicles only --- .../Rear Rider/Alerts/RearRiderAlerts.swift | 10 ++++--- .../ImageIdentification.swift | 30 +++++++++++++++++-- Rear Rider/Rear Rider/Rear_RiderApp.swift | 2 +- Rear Rider/Rear Rider/RiderView.swift | 2 +- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift index 2cc7f24..8577325 100644 --- a/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift +++ b/Rear Rider/Rear Rider/Alerts/RearRiderAlerts.swift @@ -17,7 +17,7 @@ enum AlertErrors: Error { * Class for managing any audio and visual alerts for the rider */ class RearRiderAlerts: ObservableObject { - var mLModel = ImageIdentification() + var mLModel = ImageIdentification.shared var player: AVAudioPlayer! var soundFile: URL! = nil @@ -61,7 +61,7 @@ class RearRiderAlerts: ObservableObject { mLModel.detectObjects(image: frame) pic_first_time = true picData = NSMutableData() - if mLModel.detected_objs.isEmpty { askForPic() } // if no objects detect ask for another pic + if mLModel.bndRectsCopy.isEmpty { askForPic() } // if no objects detect ask for another pic } else { BLEManager.shared.getPicPacket(index: packet_recv) @@ -99,7 +99,7 @@ class RearRiderAlerts: ObservableObject { /// Asks the RPi for the picture's metadata (size and number of packets) func askForPic() { - mLModel.detected_objs.removeAll() + //mLModel.detected_objs.removeAll() mLModel.clearBndRects() BLEManager.shared.getPicInfo() } @@ -111,7 +111,9 @@ class RearRiderAlerts: ObservableObject { if d <= unsafe_distance && alert_enabled { if vehicles_only { - print("hi") + if mLModel.checkForVehicles() { + playAudioAlert() + } } else { playAudioAlert() diff --git a/Rear Rider/Rear Rider/ObjectIdentification/ImageIdentification.swift b/Rear Rider/Rear Rider/ObjectIdentification/ImageIdentification.swift index 0066631..ad625f3 100644 --- a/Rear Rider/Rear Rider/ObjectIdentification/ImageIdentification.swift +++ b/Rear Rider/Rear Rider/ObjectIdentification/ImageIdentification.swift @@ -14,10 +14,13 @@ import Vision struct BoundingRect: Identifiable { var id: Int var rect: CGRect + var object: String + var confidence: Float } /// A class for detecting object using a Core ML model class ImageIdentification: ObservableObject { + static var shared = ImageIdentification() private var visionModel: VNCoreMLModel! private var bndRects = [BoundingRect]() { didSet { @@ -27,7 +30,9 @@ class ImageIdentification: ObservableObject { } } @Published var bndRectsCopy = [BoundingRect]() - var detected_objs = [String]() + //var detected_objs = [String]() + + private var locked: Bool = false init() { self.visionModel = initVisionModel() @@ -56,11 +61,13 @@ class ImageIdentification: ObservableObject { let detectedObject = result.labels.first?.identifier ?? "Nothing" let detectedObjectConfidence = result.labels.first?.confidence ?? 0 - self.detected_objs.append(detectedObject) + //self.detected_objs.append(detectedObject) let temp = CGRect(x: result.boundingBox.origin.x, y: 1 - result.boundingBox.origin.y, width: result.boundingBox.width, height: result.boundingBox.height) // 389x288 is the size of the Image and ZStack views in CameraTestView with scaledToFit property - self.bndRects.append(BoundingRect(id: self.bndRects.count, rect: VNImageRectForNormalizedRect(temp, 389, 288))) + if !self.locked { + self.bndRects.append(BoundingRect(id: self.bndRects.count, rect: VNImageRectForNormalizedRect(temp, 389, 288), object: detectedObject, confidence: detectedObjectConfidence)) + } print("\(detectedObject) detected with \(detectedObjectConfidence) confidence") } @@ -99,4 +106,21 @@ class ImageIdentification: ObservableObject { self.bndRects.removeAll() self.bndRectsCopy.removeAll() } + + /// Check the labels of the detected object and compare it them with the allowed ones + /// - Returns: true or false + func checkForVehicles() -> Bool { + let labels: [String] = ["person", "bicycle", "car", "motorcycle", "bus", "truck"] + locked = true + + for obj in bndRects { + if labels.contains(obj.object) { + locked = false + return true + } + } + + locked = false + return false + } } diff --git a/Rear Rider/Rear Rider/Rear_RiderApp.swift b/Rear Rider/Rear Rider/Rear_RiderApp.swift index 2694ba8..2a829f9 100644 --- a/Rear Rider/Rear Rider/Rear_RiderApp.swift +++ b/Rear Rider/Rear Rider/Rear_RiderApp.swift @@ -25,7 +25,7 @@ struct Rear_RiderApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate - @StateObject var mLModel = ImageIdentification() + @StateObject var mLModel = ImageIdentification.shared @StateObject var bleManager = BLEManager.shared @StateObject var conf = UserConfig() @StateObject var log = RearRiderLog.shared diff --git a/Rear Rider/Rear Rider/RiderView.swift b/Rear Rider/Rear Rider/RiderView.swift index 526ff2b..4e4d7f2 100644 --- a/Rear Rider/Rear Rider/RiderView.swift +++ b/Rear Rider/Rear Rider/RiderView.swift @@ -15,7 +15,7 @@ struct RiderView: View { var body: some View { VStack { ZStack { - ForEach (RearRiderAlerts.shared.mLModel.bndRectsCopy) { rect in + ForEach (ImageIdentification.shared.bndRectsCopy) { rect in Rectangle() .frame(width: rect.rect.width, height: rect.rect.height) .border(.yellow, width: 1) From fd8527b4543bdd10510661a0640940330f0e845d Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Fri, 2 Dec 2022 12:49:11 -0500 Subject: [PATCH 09/24] xcode stuff --- .../Rear Rider.xcodeproj/project.pbxproj | 4 ++++ .../UserInterfaceState.xcuserstate | Bin 129127 -> 139473 bytes 2 files changed, 4 insertions(+) diff --git a/Rear Rider/Rear Rider.xcodeproj/project.pbxproj b/Rear Rider/Rear Rider.xcodeproj/project.pbxproj index 7309aa1..cda1984 100644 --- a/Rear Rider/Rear Rider.xcodeproj/project.pbxproj +++ b/Rear Rider/Rear Rider.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ C36AA2E728FC80B2001F24A3 /* ShareSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C36AA2E428FC80B2001F24A3 /* ShareSheet.swift */; }; C36AA2E828FC80B2001F24A3 /* RecordingExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C36AA2E528FC80B2001F24A3 /* RecordingExtension.swift */; }; C36AA2EC28FC8278001F24A3 /* RiderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C36AA2EB28FC8278001F24A3 /* RiderView.swift */; }; + C39C7C2D2933C2AD007A5884 /* beep.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C39C7C2C2933C2AD007A5884 /* beep.mp3 */; }; C3A64EB329172F2A0067FDF0 /* BLETests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A64EB229172F2A0067FDF0 /* BLETests.swift */; }; C3BD658328E8DB3B0042CEB4 /* BLEManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3BD658228E8DB3B0042CEB4 /* BLEManager.swift */; }; C3FC5C66290C64B800929D1D /* yolov5m.mlmodel in Sources */ = {isa = PBXBuildFile; fileRef = C3FC5C65290C64B800929D1D /* yolov5m.mlmodel */; }; @@ -80,6 +81,7 @@ C36AA2E428FC80B2001F24A3 /* ShareSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareSheet.swift; sourceTree = ""; }; C36AA2E528FC80B2001F24A3 /* RecordingExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecordingExtension.swift; sourceTree = ""; }; C36AA2EB28FC8278001F24A3 /* RiderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RiderView.swift; sourceTree = ""; }; + C39C7C2C2933C2AD007A5884 /* beep.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = beep.mp3; sourceTree = ""; }; C3A64EB229172F2A0067FDF0 /* BLETests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BLETests.swift; sourceTree = ""; }; C3BD658228E8DB3B0042CEB4 /* BLEManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BLEManager.swift; sourceTree = ""; }; C3FC5C65290C64B800929D1D /* yolov5m.mlmodel */ = {isa = PBXFileReference; lastKnownFileType = file.mlmodel; path = yolov5m.mlmodel; sourceTree = ""; }; @@ -135,6 +137,7 @@ 4845584329089489002D81FC /* Alerts */ = { isa = PBXGroup; children = ( + C39C7C2C2933C2AD007A5884 /* beep.mp3 */, 48CB852E2902EF5200283DBD /* vehicleAlert.mp3 */, 48CB852C2902E60700283DBD /* RearRiderAlerts.swift */, ); @@ -326,6 +329,7 @@ buildActionMask = 2147483647; files = ( 4851CE1028E49485003B5B76 /* Preview Assets.xcassets in Resources */, + C39C7C2D2933C2AD007A5884 /* beep.mp3 in Resources */, 483E42B4291BE71800B9A3C3 /* GoogleService-Info.plist in Resources */, 4851CE0D28E49485003B5B76 /* Assets.xcassets in Resources */, 48CB852F2902EF5200283DBD /* vehicleAlert.mp3 in Resources */, diff --git a/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate b/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate index b59d5d93d6a304f8ac3f604962e074397cbe6e7c..aa281f44deb33bbf489ff2bbd9ce47130905a192 100644 GIT binary patch literal 139473 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 kSr$YwoEZH73jgZ*oDpYJ6KQJA7B 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⪙&Y76N}vrX-XS(IiwR^kaWHRN@iXNdOh4&8i-k}|Fe?$8*fG2RzLo9TRQL<&NXZl&+;xZ4_l9Zhn?dW{z6Z~en$=W z?%`GO%;7y4$RGwYl<_=+I~ndyhU;m#o`z3nF7x>U-~HiB*vKy2&+t9SGTi2dpTRv3 zzr#~Le8^I4aD+S~eh)$;1N1SnEcJ-P&yTc?k+1SLA2Sc#j$Fn{R^yx_ z{k|HxjU9OINM{;Vg67CLsw*;%>O~*=F@!Pbbd*j?*GcaB&V-sU+ zVvJ3Uxs3kCM$iD6$LeY9lf1+myv-Ee$Nt8C$}Hxhx3TVMth*VPhWi-jY~!45+&6rO zGmdk{an3l-8OPn>KF&AZ`Nlinc;_3R13AW5$Ni0e1@|!CJ&fPVZk%Pj?BjpnXRhG6 zW1vw_z(S$zqV+5nn z(S)ah&_vIlSb|b`?! Date: Wed, 23 Nov 2022 12:55:04 -0500 Subject: [PATCH 10/24] Refactor test to test directory for consistency. --- .../bluetooth_server_child_proc.py | 22 ------------- .../test_bluetooth_server_child_proc.py | 33 +++++++++++++++++++ 2 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 test/test_rear_rider_device/test_ipc/child_processes/test_bluetooth_server_child_proc.py diff --git a/rear_rider_device/bluetooth_server_child_proc.py b/rear_rider_device/bluetooth_server_child_proc.py index 8947442..7a927be 100644 --- a/rear_rider_device/bluetooth_server_child_proc.py +++ b/rear_rider_device/bluetooth_server_child_proc.py @@ -1,7 +1,4 @@ -import asyncio -import concurrent.futures from rear_rider_device.ipc.child_process import ChildProcess -from rear_rider_device.ipc.parent_process import ParentProcess import os @@ -104,22 +101,3 @@ async def on_led_config(self): line = await self.readline() self._print(f'led_config: {line}') await self._leds_child_process.add_led_effect(line) - - - -if __name__ == '__main__': - leds_proc = LedsChildProcess() - proc = BluetoothServerChildProcess(leds_child_process=leds_proc) - # parent = TestParent(leds_proc) - processes: list = [ - proc, - leds_proc - ] - futures = [] - with concurrent.futures.ThreadPoolExecutor() as executor: - # We create a thread for each to-be-executed child process - # so that asyncio manages one child process per thread. - for process in processes: - futures.append(executor.submit(asyncio.run, process.begin())) - print(len(futures)) - concurrent.futures.wait(futures) diff --git a/test/test_rear_rider_device/test_ipc/child_processes/test_bluetooth_server_child_proc.py b/test/test_rear_rider_device/test_ipc/child_processes/test_bluetooth_server_child_proc.py new file mode 100644 index 0000000..eb25f88 --- /dev/null +++ b/test/test_rear_rider_device/test_ipc/child_processes/test_bluetooth_server_child_proc.py @@ -0,0 +1,33 @@ +""" +Refactored from `rear_rider_device/bluetooth_server_child_proces.py`. +""" +import asyncio +import concurrent.futures +import sys +import os +PROJECT_ROOT = os.path.abspath(os.path.join( + os.path.dirname(__file__), + # This file should be in `test/rear_rider_device/test_ipc/child_processes` so we need to travel + # up 3 directories. + f'{os.pardir}/../../..') +) +sys.path.append(PROJECT_ROOT) +from rear_rider_device.bluetooth_server_child_proc import BluetoothServerChildProcess +from rear_rider_device.leds_child_proc import LedsChildProcess + +if __name__ == '__main__': + leds_proc = LedsChildProcess() + proc = BluetoothServerChildProcess(leds_child_process=leds_proc) + # parent = TestParent(leds_proc) + processes: list = [ + proc, + leds_proc + ] + futures = [] + with concurrent.futures.ThreadPoolExecutor() as executor: + # We create a thread for each to-be-executed child process + # so that asyncio manages one child process per thread. + for process in processes: + futures.append(executor.submit(asyncio.run, process.begin())) + print(len(futures)) + concurrent.futures.wait(futures) From a94732216ed3bbc1d77df93b731602ff0ad4ec3b Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:02:37 -0500 Subject: [PATCH 11/24] Various modifications: - Remove some whitespace - Add a docstring to the class. - Convert string formatting to f-format variant. --- .../bluetooth_server_child_proc.py | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/rear_rider_device/bluetooth_server_child_proc.py b/rear_rider_device/bluetooth_server_child_proc.py index 7a927be..520944c 100644 --- a/rear_rider_device/bluetooth_server_child_proc.py +++ b/rear_rider_device/bluetooth_server_child_proc.py @@ -1,23 +1,21 @@ -from rear_rider_device.ipc.child_process import ChildProcess - import os - +from rear_rider_device.ipc.child_process import ChildProcess from rear_rider_device.leds_child_proc import LedsChildProcess dir_path = os.path.dirname(os.path.realpath(__file__)) - - class BluetoothServerChildProcess(ChildProcess): + ''' + This class handles the messages received from the bluetooth server child process. + ''' def __init__(self, leds_child_process: LedsChildProcess): - super().__init__("python {}/bluetooth.py".format(dir_path)) + super().__init__(f'python {dir_path}/bluetooth.py') self._leds_child_process = leds_child_process - + def _get_name(self) -> str: return 'BluetoothServerChildProcess' - def _print_header(self, message: str): - return super()._print('==== Bluetooth Process ====\n{}'.format(message)) + return super()._print(f'==== Bluetooth Process ====\n{message}') async def on_wait_ready(self): while True: @@ -33,9 +31,8 @@ def on_done(self): async def on_sensor_data_stream_ready(self): self._print_header('sensor_data_stream begin') - self._print_header('sensor_data_stream_end') - + async def on_set_data_ack(self): self._print('on_set_data_ack') @@ -61,30 +58,28 @@ async def on_led_strobe_off(self): """ self._print('on_led_strobe_off') await self._leds_child_process.led_strobe_off() - + async def is_strobe_on(self): self._print('is_strobe_on') - + async def is_strobe_on_response(self, strobe_on: bool): await self.writeline( 'strobe_on\n' - '{}'.format(strobe_on)) - # await self._wait_ack('strobe_on') - + f'{strobe_on}') + async def on_no_on_handler(self): line = await self.readline() - self._print('on no on handler: {}'.format(line)) + self._print(f'on no on handler: {line}') async def on_help(self): while True: line = await self.readline() if line == '== help_string_end ==': break - pass def no_on_handler(self, on_command, err): - self._print('no on handler s: {}\n,{}'.format(on_command, err)) - + self._print(f'no on handler s: {on_command}\n,{err}') + async def on_discoverable(self): """ The handler for when bluetooth changes its discoverability to other devices. @@ -96,7 +91,7 @@ async def on_discoverable(self): await self._leds_child_process.set_discoverable_effect(True) elif discoverable == '0': await self._leds_child_process.set_discoverable_effect(False) - + async def on_led_config(self): line = await self.readline() self._print(f'led_config: {line}') From d83b5eb9719ec454b815476ea0ac538e33f76687 Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:55:38 -0500 Subject: [PATCH 12/24] Work around for an edge case when connecting... A device will connect, but then will get kicked off because the callback was called twice. This fixes the bug by introducing a check for the currently connected device. Also fix a bug in the BluetoothDevice class where `self._device` was not being assigned the correct dbus interface object. --- .../src/bluetooth_device.py | 25 +++++++++++++------ .../rear_rider_bluetooth_server/src/main.py | 8 +++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/bluetooth_device.py b/rear_rider_device/rear_rider_bluetooth_server/src/bluetooth_device.py index 1a0509f..9bdb9ec 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/bluetooth_device.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/bluetooth_device.py @@ -10,15 +10,26 @@ class BluetoothDevice: Represents a bluetooth device. """ def __init__(self, bus: dbus.Bus, device_path: str): - self._device = dbus.Interface( + self._props = dbus.Interface( bus.get_object(BLUEZ_SERVICE_NAME, device_path), DBUS_PROPS_IFACE) + self._device = dbus.Interface( + bus.get_object(BLUEZ_SERVICE_NAME, device_path), + BLUEZ_DEVICE_1) + + def get_address(self): + ''' + Return the bluetooth MAC address of this device. + ''' + return str(self._props.Get(BLUEZ_DEVICE_1, 'Address')) - def address(self): - return str(self._device.Get('org.bluez.Device1', 'Address')) - - def get_object_path(self): - return str(self._device.object_path) - def disconnect(self): + ''' + Disconnect this device. + ''' self._device.Disconnect() + + def __str__(self) -> str: + return ( + f'Address: {self.get_address()}' + ) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/main.py b/rear_rider_device/rear_rider_bluetooth_server/src/main.py index 1292a77..8df8de9 100755 --- a/rear_rider_device/rear_rider_bluetooth_server/src/main.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/main.py @@ -106,9 +106,11 @@ def _set_pairable(self, value: bool): self._adapter_props.Set('org.bluez.Adapter1', 'Pairable', dbus.Boolean(value)) def _on_device_connection_change(self, connected: bool, device_path: str): + device = BluetoothDevice(self._bus, device_path) if connected: - device = BluetoothDevice(self._bus, device_path) if self._connected_device is not None: + if device.get_address() == self._connected_device.get_address(): + return device.disconnect() raise Exception('We only want one device at a time to be connected.') # Disable pairing since we only want one device at a time to be connected. @@ -119,11 +121,11 @@ def _on_device_connection_change(self, connected: bool, device_path: str): return # connect == False, therefore this device was just disconnected. if (self._connected_device is not None and - self._connected_device.get_object_path() != device_path): + self._connected_device.get_address() != device.get_address()): # Since we only expect one device to be connected, we do not expect to reach this. raise Exception( 'Expected _connected_device to be not None and the object paths to be the same.\n' - f'{self._connected_device.get_object_path()} {device_path}') + f'{self._connected_device.get_address()} {device.get_address()}') self._connected_device = None self._set_pairable(True) self.set_discoverable('1') From 2f5eb8528ea0e253621bc93024bdceba40d9e53e Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Wed, 23 Nov 2022 15:04:44 -0500 Subject: [PATCH 13/24] Refactor: - Move accelerometer characteristic into seperate file. --- .../accelerometer_characteristic.py | 53 ++++++++++++++++++ .../src/services/sensors.py | 56 +------------------ 2 files changed, 56 insertions(+), 53 deletions(-) create mode 100644 rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py new file mode 100644 index 0000000..9fc6d59 --- /dev/null +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py @@ -0,0 +1,53 @@ +from sys import stdout +import dbus +from typing import Callable +from rear_rider_device.rear_rider_bluetooth_server.src.bluez.example_gatt_server import GATT_CHRC_IFACE, Characteristic, Service, GObject + +class AccelerometerCharacteristic(Characteristic): + UUID = '6df2bcb1-a775-42ea-91c2-14d22c1c8f48' + def __init__(self, bus, index, service, read_data: Callable[[], str]): + super().__init__(bus, index, self.UUID, + ['read', 'write', 'notify'], service) + self.notifying = False + self.read_data = read_data + self.value = [] + self.vector: tuple[float, float, float] = (0.0,0.0,0.0) + + def StartNotify(self): + if self.notifying: + return + self.notifying = True + def notify(): + value = self._get_vector_data() + self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) + # print('DATA: {}'.format(value)) + return self.notifying + + GObject.timeout_add(1000, notify) + + def StopNotify(self): + if not self.notifying: + return + self.notifying = False + + def ReadValue(self, options): + # TODO: Move this into a callback function. + line = 'accelerometer' + if line != 'accelerometer': + return + stdout.write('read_accelerometer\n') + stdout.flush() + nums = self.vector + + data = self._get_vector_data() + # print(data) + return data + + def _get_vector_data(self): + """ + As a byte string in ut8. + """ + nums = self.vector + return dbus.ByteArray('{},{},{}'.format( + nums[0], nums[1], nums[2] + ).encode('utf8')) \ No newline at end of file diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py index 66c6781..c4c9538 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py @@ -1,6 +1,7 @@ -from sys import stdin, stdout from typing import Callable -from rear_rider_device.rear_rider_bluetooth_server.src.bluez.example_gatt_server import dbus, GATT_CHRC_IFACE, Characteristic, Service, GObject +from rear_rider_device.rear_rider_bluetooth_server.src.bluez.example_gatt_server import Service +from rear_rider_device.rear_rider_bluetooth_server.src.services.characteristics.\ + accelerometer_characteristic import AccelerometerCharacteristic class SensorsService(Service): """ @@ -18,54 +19,3 @@ def __init__(self, bus, index, read_data: Callable[[], str]): # self.add_characteristic(RadarCharacteristic(bus, 2, self)) self.accelerometer_characteristic = accelerometer_characteristic - -class AccelerometerCharacteristic(Characteristic): - UUID = '6df2bcb1-a775-42ea-91c2-14d22c1c8f48' - def __init__(self, bus, index, service, read_data: Callable[[], str]): - super().__init__(bus, index, self.UUID, - ['read', 'write', 'notify'], service) - self.notifying = False - self.read_data = read_data - self.value = [] - self.vector: tuple[float, float, float] = (0.0,0.0,0.0) - - def StartNotify(self): - if self.notifying: - return - self.notifying = True - def notify(): - value = self._get_vector_data() - self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) - print('DATA: {}'.format(value)) - return self.notifying - - GObject.timeout_add(1000, notify) - - def StopNotify(self): - if not self.notifying: - return - self.notifying = False - - def ReadValue(self, options): - # TODO: Move this into a callback function. - line = 'accelerometer' - if line != 'accelerometer': - return - stdout.write('read_accelerometer\n') - stdout.flush() - nums = self.vector - - data = self._get_vector_data() - print(data) - return data - - def _get_vector_data(self): - """ - As a byte string in ut8. - """ - nums = self.vector - return dbus.ByteArray('{},{},{}'.format( - nums[0], nums[1], nums[2] - ).encode('utf8')) - - From 06ef4e960a6b679a12485c97a58f60a2475691c3 Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Thu, 24 Nov 2022 15:26:14 -0500 Subject: [PATCH 14/24] Modifications to the accelerometer code. The rate at which the accelerometer data is sent to the connected device through bluetooth notifications can be configured through a GATT descriptor. --- rear_rider_device/accelerometer_child_proc.py | 22 ++- rear_rider_device/bluetooth.py | 46 ++++-- .../bluetooth_server_child_proc.py | 16 +++ .../rear_rider_bluetooth_server/src/main.py | 6 +- .../src/rearrider_app.py | 4 +- .../accelerometer_characteristic.py | 132 +++++++++++++----- .../src/services/sensors.py | 4 +- rear_rider_device/utils/threaded_repeat.py | 19 +++ 8 files changed, 177 insertions(+), 72 deletions(-) create mode 100644 rear_rider_device/utils/threaded_repeat.py diff --git a/rear_rider_device/accelerometer_child_proc.py b/rear_rider_device/accelerometer_child_proc.py index 1d3fabf..25615dc 100644 --- a/rear_rider_device/accelerometer_child_proc.py +++ b/rear_rider_device/accelerometer_child_proc.py @@ -1,4 +1,5 @@ import asyncio +import threading from datetime import datetime from rear_rider_device.ipc.child_process import ChildProcess from typing import Deque @@ -18,16 +19,17 @@ def __init__(self, bt_server_proc: BluetoothServerChildProcess, buf_size: int = self.fps = fps self.ready = asyncio.Future() self.bt_server_proc = bt_server_proc + self._data_cond = threading.Condition() async def on_ready(self): self.start_time = datetime.now() self._print('AccelerometerChildProcess is ready.') - # try: - # await self.writeline('ready_ack') - try: + async def read_accelerometer(): await self.writeline('get_data') - except: - pass + with self._data_cond: + self._data_cond.wait(0.016) + return self.cyclic_buff.pop() + self.bt_server_proc.set_read_accelerometer_cb(read_accelerometer) self.ready.set_result(None) self._print('after_on_ready') @@ -59,13 +61,9 @@ async def on_data(self): float(component[1]), float(component[2]) ) - self.cyclic_buff.append(data) - await self.bt_server_proc.writeline( - 'set_data\n' - 'accelerometer\n' - '{},{},{}'.format(data[0], data[1], data[2])) - await asyncio.sleep(1.0/self.fps) - await self.writeline('get_data') + with self._data_cond: + self.cyclic_buff.append(data) + self._data_cond.notify_all() def _get_name(self) -> str: return 'AccelerometerChildProcess' diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 2e2e62b..8d4af61 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -1,5 +1,6 @@ import sys import os +import threading PROJECT_ROOT = os.path.abspath(os.path.join( os.path.dirname(__file__), # This file should be in `rear_rider_device/` so we need to travel up one directory. @@ -10,13 +11,18 @@ import asyncio import concurrent.futures from concurrent.futures import Future, ThreadPoolExecutor -from typing import Any, Callable +from typing import Any, Callable, Union from rear_rider_device.ipc.parent_process import ParentProcess from rear_rider_device.rear_rider_bluetooth_server.src.services.characteristics.strobe_light import StrobeLight import rear_rider_device.rear_rider_bluetooth_server.src.main as bt_server_main from rear_rider_device.rear_rider_bluetooth_server.src.services.hello_world import LedConfig +DATA_FUTURE_TIMEOUT = 0.016 +''' +The amount of seconds to wait for future data. +''' + class BluetoothParentProcess(ParentProcess): rear_rider_bt: bt_server_main.RearRiderBluetooth strobe_light: StrobeLight @@ -27,6 +33,9 @@ class BluetoothParentProcess(ParentProcess): def __init__(self, bluetooth_ready: Future, create_strobe_light: Callable[[Any],StrobeLight]): self._bluetooth_ready = bluetooth_ready self.strobe_light = create_strobe_light(self) + self._accel_data_cond = threading.Condition() + self._accel_data: Union[None, tuple[float, float, float]] = None + async def pre_ready(self): print('pre_ready') @@ -39,6 +48,7 @@ async def pre_ready(self): def on_led_config(cfg: LedConfig): self.writeline(f'led_config\n{cfg.pattern} {cfg.brightness} {cfg.color[0]} {cfg.color[1]} {cfg.color[2]}') self.rear_rider_bt.hello_world_svc.config_chr.set_on_led_config(on_led_config) + self.rear_rider_bt.sensors_svc.accelerometer_characteristic.set_read_accelerometer_cb(self.read_accelerometer) self.writeline('bluetooth_is_ready') async def pre_loop(self): @@ -60,18 +70,15 @@ async def on_set_data(self): data_type_line = await self.readline() if data_type_line == 'accelerometer': - data = await self.readline() # TODO: Add critical section guard here # self.writeline('set_data_ack') - nums = data.split(',') - self.rear_rider_bt.sensors_svc.accelerometer_characteristic.vector = ( - float(nums[0]),float(nums[1]),float(nums[2])) - + with self._accel_data_cond: + self._accel_data = _parse_acceleration_data(await self.readline()) + self._accel_data_cond.notify_all() elif data_type_line == 'lidar': data = await self.readline() self.rear_rider_bt.hello_world_svc.lidar_chr.value = data self.rear_rider_bt.hello_world_svc.lidar_chr.check_object_in_range() - else: # TODO: Add critical section guard here # self.writeline('set_data_ack') @@ -97,8 +104,24 @@ def is_strobe_on(self): def discoverable_changed(self, value: str): timeout = self.rear_rider_bt.get_discoverable_timeout() self.writeline(f'discoverable\n{value} {timeout}') - + def read_accelerometer(self) -> tuple[float, float, float]: + ''' + This action could timeout. + ''' + with self._accel_data_cond: + self.writeline('read_accelerometer') + try: + self._accel_data_cond.wait(DATA_FUTURE_TIMEOUT) + if self._accel_data is None: + raise Exception('Acceleration data was None') + return self._accel_data + finally: + self._accel_data = None + +def _parse_acceleration_data(line: str): + nums = line.split(',') + return (float(nums[0]),float(nums[1]),float(nums[2])) if __name__ == '__main__': # TODO: Synchronize writes to stdout using `with` keyword: @@ -128,15 +151,8 @@ def bluetooth_is_ready(rear_rider_bt: bt_server_main.RearRiderBluetooth): proc.rear_rider_bt = rear_rider_bt proc._bluetooth_ready.set_result(None) - x=0 - y=0 - def on_read(): - x = x + 1 - y = y + 1 - return '{},{}'.format(x, y) bt_server_main.main(print, on_ready=bluetooth_is_ready, - on_read=on_read, strobe_light=proc.strobe_light, ) diff --git a/rear_rider_device/bluetooth_server_child_proc.py b/rear_rider_device/bluetooth_server_child_proc.py index 520944c..b68a9b9 100644 --- a/rear_rider_device/bluetooth_server_child_proc.py +++ b/rear_rider_device/bluetooth_server_child_proc.py @@ -1,4 +1,5 @@ import os +from typing import Awaitable, Callable, Union from rear_rider_device.ipc.child_process import ChildProcess from rear_rider_device.leds_child_proc import LedsChildProcess dir_path = os.path.dirname(os.path.realpath(__file__)) @@ -10,6 +11,7 @@ class BluetoothServerChildProcess(ChildProcess): def __init__(self, leds_child_process: LedsChildProcess): super().__init__(f'python {dir_path}/bluetooth.py') self._leds_child_process = leds_child_process + self._read_accelerometer_cb: Union[None, Callable[[], Awaitable[tuple[float, float, float]]]] = None def _get_name(self) -> str: return 'BluetoothServerChildProcess' @@ -38,6 +40,20 @@ async def on_set_data_ack(self): async def on_read_accelerometer(self): self._print('on_read_accelerometer') + accel = await self._read_accelerometer() + await self.writeline( + 'set_data\n' + 'accelerometer\n' + f'{accel[0]},{accel[1]},{accel[2]}') + + async def _read_accelerometer(self): + read_accelerometer_cb = self._read_accelerometer_cb + if read_accelerometer_cb is None: + raise Exception('The read_accelerometer_cb is None') + return await read_accelerometer_cb() + + def set_read_accelerometer_cb(self, callback: Callable[[], Awaitable[tuple[float, float, float]]]): + self._read_accelerometer_cb = callback ############# # LED STUFF # diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/main.py b/rear_rider_device/rear_rider_bluetooth_server/src/main.py index 8df8de9..e4f3162 100755 --- a/rear_rider_device/rear_rider_bluetooth_server/src/main.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/main.py @@ -134,15 +134,13 @@ def has_connected_device(self): return self._connected_device is not None -def main(print, on_ready: Union[None, Callable[[RearRiderBluetooth], None]], on_read: Callable[[], str], - strobe_light: StrobeLight): +def main(print, on_ready: Union[None, Callable[[RearRiderBluetooth], None]], strobe_light: StrobeLight): """ """ # First check all the variables are not none in order to ensure the main is valid. try: assert(print != None) assert(on_ready != None) - assert(on_read != None) assert(strobe_light != None) except AssertionError: print('Condition for main function not met!') @@ -167,7 +165,7 @@ def main(print, on_ready: Union[None, Callable[[RearRiderBluetooth], None]], on_ ad_manager = get_object_interface(LE_ADVERTISING_MANAGER_IFACE) - app = RearRiderApplication(bus, read_data=on_read, + app = RearRiderApplication(bus, strobe_light=strobe_light ) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/rearrider_app.py b/rear_rider_device/rear_rider_bluetooth_server/src/rearrider_app.py index f3f6e3b..44c0a61 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/rearrider_app.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/rearrider_app.py @@ -9,13 +9,13 @@ class RearRiderApplication(dbus.service.Object): org.bluez.GattApplication1 interface implementation """ services: list[Service] - def __init__(self, bus, read_data, strobe_light: StrobeLight): + def __init__(self, bus, strobe_light: StrobeLight): self.path = '/' self.services = [] dbus.service.Object.__init__(self, bus, self.path) hello_world_service = HelloWorldService(bus, 0) - sensors_service = SensorsService(bus, 1, read_data) + sensors_service = SensorsService(bus, 1) actuators_service = ActuatorsService(bus, 2, strobe_light) self.add_service(hello_world_service) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py index 9fc6d59..2adcc06 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/characteristics/accelerometer_characteristic.py @@ -1,53 +1,111 @@ -from sys import stdout +from typing import Callable, Union import dbus -from typing import Callable -from rear_rider_device.rear_rider_bluetooth_server.src.bluez.example_gatt_server import GATT_CHRC_IFACE, Characteristic, Service, GObject +from rear_rider_device.rear_rider_bluetooth_server.src.bluez.example_gatt_server import \ + GATT_CHRC_IFACE, Characteristic, Descriptor, FailedException +from rear_rider_device.utils.threaded_repeat import ThreadedRepeat + class AccelerometerCharacteristic(Characteristic): UUID = '6df2bcb1-a775-42ea-91c2-14d22c1c8f48' - def __init__(self, bus, index, service, read_data: Callable[[], str]): + def __init__(self, bus, index, service): super().__init__(bus, index, self.UUID, ['read', 'write', 'notify'], service) - self.notifying = False - self.read_data = read_data - self.value = [] - self.vector: tuple[float, float, float] = (0.0,0.0,0.0) - + self._read_accelerometer_cb: Union[None, Callable[[], tuple[float, float, float]]] = None + self._accel: tuple[float, float, float] = (0.0,0.0,0.0) + self._notifier: Union[None, ThreadedRepeat] = None + self._accelerometer_notify_interval = AccelerometerNotifyIntervalDescriptor( + bus, 0, self + ) + def on_accel_notify_interval_change(interval_ms: int): + try: + self._notifier.update_interval(interval_seconds=interval_ms/1000.0) # type: ignore + except: + # try block may throw if _notifier is None. Since it may be set to None by another + # thread let's avoid using a mutex lock by just catching and passing the exception. + pass + self._accelerometer_notify_interval.set_on_change_cb(on_accel_notify_interval_change) + self.descriptors.append(self._accelerometer_notify_interval) + + def StartNotify(self): - if self.notifying: + if self._notifier is not None: return - self.notifying = True def notify(): - value = self._get_vector_data() - self.PropertiesChanged(GATT_CHRC_IFACE, { 'Value': value }, []) - # print('DATA: {}'.format(value)) - return self.notifying - - GObject.timeout_add(1000, notify) - + self.PropertiesChanged(GATT_CHRC_IFACE, { + 'Value': self._read_accelerometer() + }, []) + self._notifier = ThreadedRepeat(self._accelerometer_notify_interval.get_interval()/1000, + notify) + self._notifier.start() + def StopNotify(self): - if not self.notifying: + if self._notifier is None: return - self.notifying = False + self._notifier.cancel() + self._notifier = None def ReadValue(self, options): - # TODO: Move this into a callback function. - line = 'accelerometer' - if line != 'accelerometer': - return - stdout.write('read_accelerometer\n') - stdout.flush() - nums = self.vector - - data = self._get_vector_data() - # print(data) - return data + return self._read_accelerometer() + + def _read_accelerometer(self): + ''' + Raises an 'org.bluez.Error.Failed' error if there was no callback assigned via + `self.set_read_accelerometer_cb(...)`. + + The value is read, `self.vector` is set to that value, then it is formatted as a dbus byte + array type (which is encoded as a utf8 string) and returned. + ''' + if self._read_accelerometer_cb is None: + raise FailedException('The callback to read the accelerometer data is None.') + self._accel = self._read_accelerometer_cb() + return _dbus_format_accel_vector(self._accel) + + def set_read_accelerometer_cb(self, callback: Callable[[],tuple[float, float, float]]): + ''' + Sets the callback function for when the bluetooth characteristic is being accessed for + reads or for acquire-notifications. + ''' + self._read_accelerometer_cb = callback + +def _dbus_format_accel_vector(vector: tuple[float, float, float]): + ''' + Format a 3 vector tuple as a dbus ByteArray type (a utf 8 string). + ''' + return dbus.ByteArray(f'{vector[0]},{vector[1]},{vector[2]}'.encode('utf8')) + +class AccelerometerNotifyIntervalDescriptor(Descriptor): + UUID = 'e01f9dab-64c6-429f-8e89-3f185392c327' + + def __init__(self, bus, index, characteristic, interval_ms=1000): + super().__init__(bus, index, self.UUID, + ['read', 'write'], + characteristic) + self._interval_ms = interval_ms + ''' + In milliseconds. + ''' + self._on_change_cb: Union[None, Callable[[int], None]] = None - def _get_vector_data(self): + def ReadValue(self, options): + try: + return dbus.ByteArray(dbus.UInt16(self._interval_ms).to_bytes(2, 'big')) + except Exception as e: + print(e) + + def WriteValue(self, value, options): """ - As a byte string in ut8. + Expects bytes representing a uint16 in big-endian ordering. """ - nums = self.vector - return dbus.ByteArray('{},{},{}'.format( - nums[0], nums[1], nums[2] - ).encode('utf8')) \ No newline at end of file + interval = int.from_bytes(value, 'big') + self._interval_ms = interval + if self._on_change_cb is not None: + self._on_change_cb(interval) + + def set_on_change_cb(self, callback: Callable[[int], None]): + self._on_change_cb = callback + + def get_interval(self): + ''' + Get the interval in milliseconds. + ''' + return self._interval_ms diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py index c4c9538..b5c88b2 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/sensors.py @@ -9,10 +9,10 @@ class SensorsService(Service): """ SENSORS_SVC_UUID = 'f0135e21-ad28-46e3-af7a-6e0829ab4c4a' - def __init__(self, bus, index, read_data: Callable[[], str]): + def __init__(self, bus, index): Service.__init__(self, bus, index, self.SENSORS_SVC_UUID, True) accelerometer_characteristic = AccelerometerCharacteristic( - bus, 0, self, read_data=read_data) + bus, 0, self) # self.add_characteristic(CameraFeedCharacteristic(bus, 0, self)) self.add_characteristic(accelerometer_characteristic) diff --git a/rear_rider_device/utils/threaded_repeat.py b/rear_rider_device/utils/threaded_repeat.py new file mode 100644 index 0000000..a5c4a5f --- /dev/null +++ b/rear_rider_device/utils/threaded_repeat.py @@ -0,0 +1,19 @@ +import threading +from typing import Callable + +class ThreadedRepeat(threading.Timer): + ''' + Repeat a function at a set interval. + ''' + def __init__(self, interval_seconds: float, function: Callable[[], None]): + super().__init__(interval_seconds, function) + + def run(self): + while not self.finished.wait(self.interval): + self.function() + + def update_interval(self, interval_seconds: float): + ''' + The interval in seconds. + ''' + self.interval = interval_seconds From f262879a9d1ee184866d1d328f69f8e3b101c584 Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Sun, 27 Nov 2022 19:52:17 -0500 Subject: [PATCH 15/24] Instructions to disable unused bluetooth plugins. --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 6e20886..3f53128 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,25 @@ Now the Bluetooth server starts when the Pi boots. Also, Bluetooth has to be in The application has three tabs. The first tab is the main view. Here the rider can see alerts when an object is approaching (TBD). The next view is the Live Streaming. The app will connect to the Pi over Wi-Fi and stream a live feed from the camera. The user has the option to record the streaming and to use ML to detect the objects in the feed. The last tab is the settings tab (TBD). At the top of the screen there are two icons that show if the Bluetooth and Wi-Fi connections are available by turning green. +## Disabling Unnecessary Bluetooth Services + +By default Raspbian's bluetooth service includes AVRCP, which is for the capability of streaming audio to the raspberry pi, but we do not require this. Also, the bluetooth service includes SAP (Sim Access Profile) which we do not make use of. Do the following to disable those features: + +```bash +sudo systemctl edit bluetooth.service +``` + +Then, add the following lines to the indicated regions. + +```conf +[Service] +# First clear the responsible variable. +ExecStart= +# Then reassign it with the aforemention plugins disabled. +ExecStart=/usr/libexec/bluetooth/bluetoothd --noplugin=sap,avrcp +``` + + ## Contributing ### Updating requirements.txt From 7d06cebc81a39c9733b1efcb13fbe859f1ae7dba Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Thu, 1 Dec 2022 22:31:25 -0500 Subject: [PATCH 16/24] Update to device configuration via bluetooth. --- rear_rider_device/bluetooth.py | 7 +++--- .../bluetooth_server_child_proc.py | 25 ++++++++++++++++++- .../src/services/hello_world.py | 23 +++++++++++------ .../test_config_characteristic.py | 8 +++--- 4 files changed, 48 insertions(+), 15 deletions(-) diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 8d4af61..67528ea 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -16,7 +16,7 @@ from rear_rider_device.ipc.parent_process import ParentProcess from rear_rider_device.rear_rider_bluetooth_server.src.services.characteristics.strobe_light import StrobeLight import rear_rider_device.rear_rider_bluetooth_server.src.main as bt_server_main -from rear_rider_device.rear_rider_bluetooth_server.src.services.hello_world import LedConfig +from rear_rider_device.rear_rider_bluetooth_server.src.services.hello_world import RearRiderConfig DATA_FUTURE_TIMEOUT = 0.016 ''' @@ -45,9 +45,10 @@ async def pre_ready(self): # self._bluetooth_ready.result() # FOR DEBUGGING ONLY # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #################################################### - def on_led_config(cfg: LedConfig): + def on_rear_rider_config(cfg: RearRiderConfig): self.writeline(f'led_config\n{cfg.pattern} {cfg.brightness} {cfg.color[0]} {cfg.color[1]} {cfg.color[2]}') - self.rear_rider_bt.hello_world_svc.config_chr.set_on_led_config(on_led_config) + self.writeline(f'lidar_config\b{cfg.lidar_unsafe_distance}') + self.rear_rider_bt.hello_world_svc.config_chr.set_on_config(on_rear_rider_config) self.rear_rider_bt.sensors_svc.accelerometer_characteristic.set_read_accelerometer_cb(self.read_accelerometer) self.writeline('bluetooth_is_ready') diff --git a/rear_rider_device/bluetooth_server_child_proc.py b/rear_rider_device/bluetooth_server_child_proc.py index b68a9b9..3c08522 100644 --- a/rear_rider_device/bluetooth_server_child_proc.py +++ b/rear_rider_device/bluetooth_server_child_proc.py @@ -10,8 +10,9 @@ class BluetoothServerChildProcess(ChildProcess): ''' def __init__(self, leds_child_process: LedsChildProcess): super().__init__(f'python {dir_path}/bluetooth.py') - self._leds_child_process = leds_child_process + self._leds_child_process: LedsChildProcess = leds_child_process self._read_accelerometer_cb: Union[None, Callable[[], Awaitable[tuple[float, float, float]]]] = None + self._lidar_config_cb: Union[None, Callable[[int], None]] = None def _get_name(self) -> str: return 'BluetoothServerChildProcess' @@ -112,3 +113,25 @@ async def on_led_config(self): line = await self.readline() self._print(f'led_config: {line}') await self._leds_child_process.add_led_effect(line) + + async def on_lidar_config(self): + ''' + The handler for the configuration data received from the bluetooth side. + + This handler function will use the callback set in `self.set_lidar_config_cb(...)` + ''' + line = await self.readline() + self._print(f'lidar_config: {line}') + self.__set_lidar_config(int(line)) + + def __set_lidar_config(self, dist_cfg: int): + if self._lidar_config_cb is None: + return + self._lidar_config_cb(dist_cfg) + + def set_lidar_config_cb(self, callback: Callable[[int], None]): + ''' + Set the callback `BluetoothServerChildProcess` will call when a new configuration value for + the lidar sensor is received. + ''' + self._lidar_config_cb = callback \ No newline at end of file diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index e05ea1b..6b64873 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -119,7 +119,7 @@ def _increment_counter(self): return self.notifying @dataclass -class LedConfig: +class RearRiderConfig: pattern: int = 0 """ 0 - no pattern @@ -134,13 +134,21 @@ class LedConfig: """ (r, g, b) """ + lidar_unsafe_distance: int = 1 + """ + Far = 2: (9 meters) + Medium = 1: (5 meters) + Close = 0: (1 meter) + """ def to_bytes(self): - return [self.pattern, self.brightness, *self.color] + return [self.pattern, self.brightness, *self.color, self.lidar_unsafe_distance] class ConfigCharacteristic(Characteristic): """ Configure the LED lights. + + TODO: Move this into seperate file. """ TEST_CHRC_UUID = '501beabd-3f66-4cca-ba7a-0fbf4f81870c' @@ -150,12 +158,12 @@ def __init__(self, bus, index, service): self.TEST_CHRC_UUID, ['write'], service) - self.value: LedConfig - self._on_led_config: Union[None, Callable[[LedConfig], None]] = None + self.value: RearRiderConfig + self._on_led_config: Union[None, Callable[[RearRiderConfig], None]] = None self._config_characteristic__init__() def _config_characteristic__init__(self): - self.value = LedConfig() + self.value = RearRiderConfig() def WriteValue(self, value, options): pattern = int(value[0]) @@ -163,12 +171,13 @@ def WriteValue(self, value, options): r = int(value[2]) g = int(value[3]) b = int(value[4]) + lidar_unsafe_distance = int(value[5]) # print(f'ConfigCharacteristic Write: {pattern} {brightness} {r} {g} {b}') - self.value = LedConfig(pattern, brightness, (r, g, b)) + self.value = RearRiderConfig(pattern, brightness, (r, g, b), lidar_unsafe_distance) if self._on_led_config is not None: self._on_led_config(self.value) - def set_on_led_config(self, callback: Callable[[LedConfig], None]): + def set_on_config(self, callback: Callable[[RearRiderConfig], None]): self._on_led_config = callback diff --git a/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py b/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py index b790f9b..18496c1 100644 --- a/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py +++ b/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py @@ -1,4 +1,4 @@ -from rear_rider_device.rear_rider_bluetooth_server.src.services.hello_world import ConfigCharacteristic, LedConfig +from rear_rider_device.rear_rider_bluetooth_server.src.services.hello_world import ConfigCharacteristic, RearRiderConfig import dbus import unittest @@ -12,13 +12,13 @@ def __init__(self): #pylint: disable=super-init-not-called class TestConfigCharacteristic(unittest.TestCase): def test_set_on_led_config(self): callback_called = False - config_val = [0x01, 0x01, 0xFF, 0xFF, 0xFF] - def callback(new_led_config: LedConfig): + config_val = [0x01, 0x01, 0xFF, 0xFF, 0xFF, 0x02] + def callback(new_led_config: RearRiderConfig): nonlocal callback_called callback_called = True self.assertEqual(new_led_config.to_bytes(), config_val) test_cfg_chara = StubbedConfigCharacteristic() - test_cfg_chara.set_on_led_config(callback=callback) + test_cfg_chara.set_on_config(callback=callback) test_cfg_chara.WriteValue(dbus.ByteArray(config_val), None) self.assertTrue(callback_called, 'The on_led_config callback was not called.') From 04bff2e5d3bc34256740d23715f5d1b9986b7d90 Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Fri, 2 Dec 2022 18:29:56 -0500 Subject: [PATCH 17/24] lidar config changes --- rear_rider_device/bluetooth.py | 2 +- rear_rider_device/lidar_child_proc.py | 14 ++++++++++++-- rear_rider_device/main.py | 9 +++++---- .../src/services/hello_world.py | 9 ++++----- .../test_bluetooth/test_config_characteristic.py | 3 ++- 5 files changed, 24 insertions(+), 13 deletions(-) mode change 100644 => 100755 rear_rider_device/main.py diff --git a/rear_rider_device/bluetooth.py b/rear_rider_device/bluetooth.py index 67528ea..e08e10b 100644 --- a/rear_rider_device/bluetooth.py +++ b/rear_rider_device/bluetooth.py @@ -47,7 +47,7 @@ async def pre_ready(self): #################################################### def on_rear_rider_config(cfg: RearRiderConfig): self.writeline(f'led_config\n{cfg.pattern} {cfg.brightness} {cfg.color[0]} {cfg.color[1]} {cfg.color[2]}') - self.writeline(f'lidar_config\b{cfg.lidar_unsafe_distance}') + self.writeline(f'lidar_config\n{cfg.lidar_unsafe_distance}') self.rear_rider_bt.hello_world_svc.config_chr.set_on_config(on_rear_rider_config) self.rear_rider_bt.sensors_svc.accelerometer_characteristic.set_read_accelerometer_cb(self.read_accelerometer) self.writeline('bluetooth_is_ready') diff --git a/rear_rider_device/lidar_child_proc.py b/rear_rider_device/lidar_child_proc.py index 47156f4..f7587cd 100644 --- a/rear_rider_device/lidar_child_proc.py +++ b/rear_rider_device/lidar_child_proc.py @@ -2,18 +2,22 @@ from concurrent.futures import ThreadPoolExecutor import concurrent.futures from datetime import datetime +from rear_rider_device.bluetooth_server_child_proc import BluetoothServerChildProcess from rear_rider_device.ipc.child_process import ChildProcess from rear_rider_device.leds_child_proc import LedsChildProcess import os dir_path = os.path.dirname(os.path.realpath(__file__)) +DEFAULT_UNSAFE_DISTANCE = 500 + class LidarChildProcess(ChildProcess): lidar_distance = 0 # default unit is cm signal_strength = 0 # signal unreliable under 100 - def __init__(self, led_child_proc: LedsChildProcess): + def __init__(self, led_child_proc: LedsChildProcess, + bt_child_proc: BluetoothServerChildProcess): """ Default `buf_size` of 64 frame datapoints at 60 `fps`. """ @@ -21,6 +25,12 @@ def __init__(self, led_child_proc: LedsChildProcess): self.ready = asyncio.Future() self.led_child_proc = led_child_proc self.in_range = False + self.bt_child_proc = bt_child_proc + self._unsafe_distance = DEFAULT_UNSAFE_DISTANCE + def set_lidar_config(dist_cfg: int): + self._unsafe_distance = dist_cfg + self._print(f'Distance config: {self._unsafe_distance} cm') + self.bt_child_proc.set_lidar_config_cb(set_lidar_config) async def on_ready(self): @@ -41,7 +51,7 @@ async def on_data(self): signal_strength = lidar_data[1] #self._print('Lidar_distance:{}\n\tSignal_strength:{}\n'.format(lidar_distance, signal_strength)) - unsafe_distance = 200 + unsafe_distance = self._unsafe_distance if int(lidar_distance) <= unsafe_distance: await self.bt_child_proc.writeline('set_data\nlidar\n{}'.format(lidar_distance)) await self.led_child_proc.led_strobe_on() diff --git a/rear_rider_device/main.py b/rear_rider_device/main.py old mode 100644 new mode 100755 index 012981d..860c054 --- a/rear_rider_device/main.py +++ b/rear_rider_device/main.py @@ -23,14 +23,15 @@ def main(): leds_child_process=leds_child_proc) accelerometer_proc = AccelerometerChildProcess(buf_size=32, fps=1, bt_server_proc=bt_server_process) - lidar_child_proc = LidarChildProcess(led_child_proc=leds_child_proc) - # camera_proc = CameraChildProcess(bt_server_proc=bt_server_process) + lidar_child_proc = LidarChildProcess(led_child_proc=leds_child_proc, + bt_child_proc=bt_server_process) + camera_proc = CameraChildProcess() child_processes: list[Process] = [ leds_child_proc, accelerometer_proc, bt_server_process, - lidar_child_proc - # camera_proc + lidar_child_proc, + camera_proc ] futures = [] with concurrent.futures.ThreadPoolExecutor() as executor: diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index 6b64873..8b597f2 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -136,13 +136,12 @@ class RearRiderConfig: """ lidar_unsafe_distance: int = 1 """ - Far = 2: (9 meters) - Medium = 1: (5 meters) - Close = 0: (1 meter) + Distance represented in centimeters. """ def to_bytes(self): - return [self.pattern, self.brightness, *self.color, self.lidar_unsafe_distance] + return [self.pattern, self.brightness, *self.color, + *self.lidar_unsafe_distance.to_bytes(length=2, byteorder='little')] class ConfigCharacteristic(Characteristic): """ @@ -171,7 +170,7 @@ def WriteValue(self, value, options): r = int(value[2]) g = int(value[3]) b = int(value[4]) - lidar_unsafe_distance = int(value[5]) + lidar_unsafe_distance = int.from_bytes([value[5], value[6]], byteorder='little') # print(f'ConfigCharacteristic Write: {pattern} {brightness} {r} {g} {b}') self.value = RearRiderConfig(pattern, brightness, (r, g, b), lidar_unsafe_distance) if self._on_led_config is not None: diff --git a/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py b/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py index 18496c1..31db624 100644 --- a/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py +++ b/test/test_rear_rider_device/test_bluetooth/test_config_characteristic.py @@ -12,7 +12,8 @@ def __init__(self): #pylint: disable=super-init-not-called class TestConfigCharacteristic(unittest.TestCase): def test_set_on_led_config(self): callback_called = False - config_val = [0x01, 0x01, 0xFF, 0xFF, 0xFF, 0x02] + little_endian_int = [0x00, 0x02] + config_val = [0x01, 0x01, 0xFF, 0xFF, 0xFF, *little_endian_int] def callback(new_led_config: RearRiderConfig): nonlocal callback_called callback_called = True From 7b87e0a49a006e3b2c2ab2da87cad41f349ee95f Mon Sep 17 00:00:00 2001 From: jon-dez <48642222+jon-dez@users.noreply.github.com> Date: Fri, 2 Dec 2022 18:30:14 -0500 Subject: [PATCH 18/24] update --- rear_rider_device/camera_proc.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rear_rider_device/camera_proc.py b/rear_rider_device/camera_proc.py index 17cdec0..8fc7964 100644 --- a/rear_rider_device/camera_proc.py +++ b/rear_rider_device/camera_proc.py @@ -1,9 +1,18 @@ +import sys +import os +PROJECT_ROOT = os.path.abspath(os.path.join( + os.path.dirname(__file__), + # This file should be in `rear_rider_device/` so we need to travel up one directory. + f'{os.pardir}') +) +sys.path.append(PROJECT_ROOT) + import asyncio from pkgutil import get_data import readline from sys import stdout -from ipc.parent_process import ParentProcess -import rear_rider_sensors.camera as camera +from rear_rider_device.ipc.parent_process import ParentProcess +import rear_rider_device.rear_rider_sensors.camera as camera import os from datetime import datetime from datetime import date From dfe09aa5c3bb46914307204bd212296b80cf84e8 Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Fri, 2 Dec 2022 21:32:49 -0500 Subject: [PATCH 19/24] small changes --- Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift | 2 +- Rear Rider/Rear Rider/Rear_RiderApp.swift | 1 - rear_rider_device/main.py | 5 +++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift index 8b4cdb3..7015c92 100644 --- a/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift +++ b/Rear Rider/Rear Rider/ConfigurationOptions/OptionsView.swift @@ -56,7 +56,7 @@ struct OptionsView: View { Toggle("Vehicles Only", isOn: $confVehiclesOnly.onChange(setVehiclesOnly)) HStack { Slider(value: $confUnsafeDistance.onChange(setDistance), in: 0...19, step: 1) - Text("Distance: \(distance_text[Int(confUnsafeDistance)])") + Text("Distance: \(distance_text[Int(confUnsafeDistance)]) cm") } } header: { Text("LiDAR") diff --git a/Rear Rider/Rear Rider/Rear_RiderApp.swift b/Rear Rider/Rear Rider/Rear_RiderApp.swift index e16519c..07efc67 100644 --- a/Rear Rider/Rear Rider/Rear_RiderApp.swift +++ b/Rear Rider/Rear Rider/Rear_RiderApp.swift @@ -32,7 +32,6 @@ struct Rear_RiderApp: App { @StateObject var log = RearRiderLog.shared @StateObject var alert = RearRiderAlerts.shared @StateObject var wifiManager = WifiManager.shared - @StateObject var alert = RearRiderAlerts.shared @StateObject var auth = AuthModel() @StateObject var db = FirestoreModel() diff --git a/rear_rider_device/main.py b/rear_rider_device/main.py index 860c054..1ee97f7 100755 --- a/rear_rider_device/main.py +++ b/rear_rider_device/main.py @@ -1,5 +1,10 @@ +#!/usr/bin/env python3 import os import sys +import subprocess + +subprocess.run(['source', '/home/pi/.venv/bin/activate'], shell=True) + PROJECT_ROOT = os.path.abspath(os.path.join( os.path.dirname(__file__), f'{os.pardir}') From f1b9497de663998cc127f2d79ea855c17e953b05 Mon Sep 17 00:00:00 2001 From: calin-pescaru <89864474+calin-pescaru@users.noreply.github.com> Date: Sat, 3 Dec 2022 15:01:58 -0500 Subject: [PATCH 20/24] Update rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py Co-authored-by: Jonathan Mendez <48642222+jon-dez@users.noreply.github.com> --- .../rear_rider_bluetooth_server/src/services/hello_world.py | 1 - 1 file changed, 1 deletion(-) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index 8b597f2..bb3d37a 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -308,7 +308,6 @@ def StartNotify(self): def StopNotify(self): if not self.notifying: - print('Not in a notifying state.') return self.notifying = False From a6870a8064352fe5595abe1a3c884035d79d561a Mon Sep 17 00:00:00 2001 From: calin-pescaru <89864474+calin-pescaru@users.noreply.github.com> Date: Sat, 3 Dec 2022 15:02:05 -0500 Subject: [PATCH 21/24] Update rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py Co-authored-by: Jonathan Mendez <48642222+jon-dez@users.noreply.github.com> --- .../rear_rider_bluetooth_server/src/services/hello_world.py | 1 - 1 file changed, 1 deletion(-) diff --git a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py index bb3d37a..aec2de2 100644 --- a/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py +++ b/rear_rider_device/rear_rider_bluetooth_server/src/services/hello_world.py @@ -302,7 +302,6 @@ def __init__(self, bus, index, service): def StartNotify(self): if self.notifying: - print('Already in a notifying state.') return self.notifying = True From d4525e4cc88c4de7d27a7914eb6e2a6dd6341a49 Mon Sep 17 00:00:00 2001 From: calin-pescaru <89864474+calin-pescaru@users.noreply.github.com> Date: Sat, 3 Dec 2022 15:02:13 -0500 Subject: [PATCH 22/24] Update rear_rider_device/main.py Co-authored-by: Jonathan Mendez <48642222+jon-dez@users.noreply.github.com> --- rear_rider_device/main.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rear_rider_device/main.py b/rear_rider_device/main.py index 1ee97f7..9e9de7b 100755 --- a/rear_rider_device/main.py +++ b/rear_rider_device/main.py @@ -1,10 +1,6 @@ #!/usr/bin/env python3 import os import sys -import subprocess - -subprocess.run(['source', '/home/pi/.venv/bin/activate'], shell=True) - PROJECT_ROOT = os.path.abspath(os.path.join( os.path.dirname(__file__), f'{os.pardir}') From 072b0a6095490848fb5925b8925d0226b150f6aa Mon Sep 17 00:00:00 2001 From: Calin Pescaru Date: Sat, 3 Dec 2022 17:04:22 -0500 Subject: [PATCH 23/24] fixed crashing bug --- .../UserInterfaceState.xcuserstate | Bin 139473 -> 137173 bytes .../Rear Rider/Alerts/RearRiderAlerts.swift | 2 +- .../ImageIdentification.swift | 14 +------------- Rear Rider/Rear Rider/RiderView.swift | 2 +- .../CameraTestView.swift | 2 +- 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate b/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate index aa281f44deb33bbf489ff2bbd9ce47130905a192..75799f6398c25751b2ab4fd6ed628f03fd81d9cb 100644 GIT binary patch literal 137173 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

w}ohuN>fd z5Q@!-eTpqe7)23(VY>DWHfemgw97y`o?Pg9bUsQ_l_oT& z6>aH&u19yHCw=J8>&QD=-=ilJkIqM@U_VCBU>5H(5BWzg!9I_^6@|r(fim(k$>!y=zFXg#_D@)LBa^980Hvj_s2%l4%x@bK34Xz{m}VX zosZS|*l{>}th{6G$k;i^Irc+7;Zqi}l0Bqz5N~m;I~{uhJ&!%ZIsW2O5E}Oo@{W^t zoV?@Y9rp~+@d7WBm;A^-t|s2jxCuCO+y>4Eq47B=gF6`?gYU%gZ{j;;{21)X_*CQ{ zukZ2t9&d*6bNQUF_?88jWBej^aunIe%RXNA@mX9%=i{#ip$P$In4sSYc4UGbnIP)~ zJx?e?QHo<hT&)X+dk+VYesR zzlnBYqMevHm|+ZO1|K8SM42W!XQDh4f8-~AVLhAJMF#qusLzRZVd7t0!~RaZ!ENpY zp-FkEPBY9fNnexP?WBPWVFbFGq^n6|NoF2;nk3I8`!VTrWSS($BsnJi%JLxeb_2}! zw$FXL6J6A4$4npr_;}IUmzP^(mcl=HXN>h%CtY8CsIKW}d{Z1yQ zF#9`axx_y~XmWP!`{Y-sMHigyH^W1d-(@aloBTdsq2I~+o%}OPSjAe_vxzP2=O9P; zJqS(7Ng=`r$Nf)nms7lvDPtJVMC6_#_mp(}`zikYl>hzv`=Vi@jfrU zGIgkjZsQ|qh+T@;alCtrcW?3TE#7(Y?knDT@$uN_cr(SXLFV{BIE{Yd?P~l5^pv3Q zgxuuAcR_-46N>OMI#1ADLN#h4OF~`jPC`fe;mm{yOky$#*qMZ>%wRTpPSA0}59l{R zzX^-^mF28L&k1@?&~w68ws8PC6CXjxiSi^y(~SX`HSt|O!QUt9H}M$eOuWq9Ae5xn zB)ul-HR&my=SA{T0H2#=rX>9(eTIxli;ywN4kRsO1sm9oE|U(Ci7u1mOS;Yf&bl9j zl0!UaH6S9;J3eI@(+WS^gGhGd_ge4cCk6NFN-VJ}ji#%HFy zfO|^`Bb;KCqzvU~L~kZwo)lfDtVYi%`c2u*K6IRNn4_2{#ZIJLvL#&6N5W zdQ7cEPh?J=%X@su0v7TUi&@DU*0GVzI5+hmCxXxnXU(|6y&yEx9?s0cv$&&~?r5ev zn(2;anro)HW}0heMP8vQ)v=c|bvSbh&Yo$OnSYSQ-`og7vt*w29J$chET20|U$cDf ztkU@0Sw44`_cqI2&8ka%B58_!pVfkn3}zT37|9sMGm&?QCy7+1@gX1cDW3 qSGv=SzCmb?Y;#_sFfUU)_`m=2aJK*VpJD(0zyJLI|2s5i=l=mB!!hFk literal 139473 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 kSr$YwoEZH73jg Date: Sat, 3 Dec 2022 20:37:45 -0500 Subject: [PATCH 24/24] added app icon --- .../UserInterfaceState.xcuserstate | Bin 137173 -> 139167 bytes .../AppIcon.appiconset/Contents.json | 1 + .../AppIcon.appiconset/rearrider_180x180.png | Bin 0 -> 8065 bytes rearrider_180x180.png | Bin 0 -> 8065 bytes 4 files changed, 1 insertion(+) create mode 100644 Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/rearrider_180x180.png create mode 100644 rearrider_180x180.png diff --git a/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate b/Rear Rider/Rear Rider.xcodeproj/project.xcworkspace/xcuserdata/lydiapescaru.xcuserdatad/UserInterfaceState.xcuserstate index 75799f6398c25751b2ab4fd6ed628f03fd81d9cb..cddf4a0128f1b740b269fe522a9dcf26839551c6 100644 GIT binary patch literal 139167 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 literal 137173 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

w}ohuN>fd z5Q@!-eTpqe7)23(VY>DWHfemgw97y`o?Pg9bUsQ_l_oT& z6>aH&u19yHCw=J8>&QD=-=ilJkIqM@U_VCBU>5H(5BWzg!9I_^6@|r(fim(k$>!y=zFXg#_D@)LBa^980Hvj_s2%l4%x@bK34Xz{m}VX zosZS|*l{>}th{6G$k;i^Irc+7;Zqi}l0Bqz5N~m;I~{uhJ&!%ZIsW2O5E}Oo@{W^t zoV?@Y9rp~+@d7WBm;A^-t|s2jxCuCO+y>4Eq47B=gF6`?gYU%gZ{j;;{21)X_*CQ{ zukZ2t9&d*6bNQUF_?88jWBej^aunIe%RXNA@mX9%=i{#ip$P$In4sSYc4UGbnIP)~ zJx?e?QHo<hT&)X+dk+VYesR zzlnBYqMevHm|+ZO1|K8SM42W!XQDh4f8-~AVLhAJMF#qusLzRZVd7t0!~RaZ!ENpY zp-FkEPBY9fNnexP?WBPWVFbFGq^n6|NoF2;nk3I8`!VTrWSS($BsnJi%JLxeb_2}! zw$FXL6J6A4$4npr_;}IUmzP^(mcl=HXN>h%CtY8CsIKW}d{Z1yQ zF#9`axx_y~XmWP!`{Y-sMHigyH^W1d-(@aloBTdsq2I~+o%}OPSjAe_vxzP2=O9P; zJqS(7Ng=`r$Nf)nms7lvDPtJVMC6_#_mp(}`zikYl>hzv`=Vi@jfrU zGIgkjZsQ|qh+T@;alCtrcW?3TE#7(Y?knDT@$uN_cr(SXLFV{BIE{Yd?P~l5^pv3Q zgxuuAcR_-46N>OMI#1ADLN#h4OF~`jPC`fe;mm{yOky$#*qMZ>%wRTpPSA0}59l{R zzX^-^mF28L&k1@?&~w68ws8PC6CXjxiSi^y(~SX`HSt|O!QUt9H}M$eOuWq9Ae5xn zB)ul-HR&my=SA{T0H2#=rX>9(eTIxli;ywN4kRsO1sm9oE|U(Ci7u1mOS;Yf&bl9j zl0!UaH6S9;J3eI@(+WS^gGhGd_ge4cCk6NFN-VJ}ji#%HFy zfO|^`Bb;KCqzvU~L~kZwo)lfDtVYi%`c2u*K6IRNn4_2{#ZIJLvL#&6N5W zdQ7cEPh?J=%X@su0v7TUi&@DU*0GVzI5+hmCxXxnXU(|6y&yEx9?s0cv$&&~?r5ev zn(2;anro)HW}0heMP8vQ)v=c|bvSbh&Yo$OnSYSQ-`og7vt*w29J$chET20|U$cDf ztkU@0Sw44`_cqI2&8ka%B58_!pVfkn3}zT37|9sMGm&?QCy7+1@gX1cDW3 qSGv=SzCmb?Y;#_sFfUU)_`m=2aJK*VpJD(0zyJLI|2s5i=l=mB!!hFk diff --git a/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/Contents.json b/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/Contents.json index 9221b9b..5a1f9ff 100644 --- a/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -36,6 +36,7 @@ "size" : "60x60" }, { + "filename" : "rearrider_180x180.png", "idiom" : "iphone", "scale" : "3x", "size" : "60x60" diff --git a/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/rearrider_180x180.png b/Rear Rider/Rear Rider/Assets.xcassets/AppIcon.appiconset/rearrider_180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..b69f056d287041696f2eec9b2906c0e9efb7fbdf GIT binary patch literal 8065 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