{"id":21685434,"url":"https://github.com/maurovm/swift-waveform_plotter_example","last_synced_at":"2026-05-17T11:32:15.741Z","repository":{"id":209675761,"uuid":"478968799","full_name":"maurovm/swift-waveform_plotter_example","owner":"maurovm","description":"Example application to showcase the features available in \"swift-waveform_plotter\", a library to plot physiological time-series such as the Photoplethysmogram (PPG) recorded from a pulse oximeter","archived":false,"fork":false,"pushed_at":"2023-12-20T16:05:09.000Z","size":438,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-20T23:41:35.600Z","etag":null,"topics":["photoplethysmogram","plotting","ppg","real-time","time-series","waveform"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maurovm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-07T12:10:45.000Z","updated_at":"2022-04-13T16:09:51.000Z","dependencies_parsed_at":"2025-03-20T11:43:49.285Z","dependency_job_id":"f7cf2c33-1f2f-4c3b-a357-97b3de0d2236","html_url":"https://github.com/maurovm/swift-waveform_plotter_example","commit_stats":null,"previous_names":["maurovm/swift-waveform_plotter_example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maurovm/swift-waveform_plotter_example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter_example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter_example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter_example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter_example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maurovm","download_url":"https://codeload.github.com/maurovm/swift-waveform_plotter_example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maurovm%2Fswift-waveform_plotter_example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33136705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["photoplethysmogram","plotting","ppg","real-time","time-series","waveform"],"created_at":"2024-11-25T16:20:38.306Z","updated_at":"2026-05-17T11:32:15.716Z","avatar_url":"https://github.com/maurovm.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WaveformPlotterExample\n\nExample application to showcase the features available in \n\"[swift-waveform_plotter](https://github.com/maurovm/swift-waveform_plotter)\", \na library to plot physiological time-series such as the Photoplethysmogram (PPG)\nrecorded from a pulse oximeter\n\n---\nWaveformPlotterExample is free software: you can redistribute it or modify it\nunder the terms of the GNU General Public License as published by the Free \nSoftware Foundation, version 2 only. Please check the file [COPYING](COPYING) \nfor more information on the license and copyright.\n\nIf you want to submit pull requests or contribute source code to this \nrepository, please read the [CONTRIBUTING.md](CONTRIBUTING.md) for\nmore information about contributing guidelines.\n\nIf you use this app in your projects and publish the results, please cite the \nfollowing manuscript:\n\n\u003e Villarroel, M. and Davidson, S. \"Open-source software mobile platform for\nphysiological data acquisition\". arXiv (In preparation). 2022\n\n---\n\nWaveformPlotterExample is an iOS application written in Swift. This repository \nonly has the minimum set of UI classes and configuration settings (XCode \nfiles, Settings.bundle, etc) to launch the plotting interface. The main \nfunctionality is provided by the following Swift Packages:\n\n- [swift-waveform_plotter](https://github.com/maurovm/swift-waveform_plotter):\nA library to plot physiological time-series such as the Photoplethysmogram (PPG).\n\nExamples of other applications making use of the above Swift Packages are:\n\n- [swift-thermal_recorder](https://github.com/maurovm/swift-thermal_recorder): \nRecord video from thermal cameras such as the FLIR One.\n- [swift-pulse_ox_recorder](https://github.com/maurovm/swift-pulse_ox_recorder): \nThe main application (XCode, Settings.bundle, etc) to record time-series data \nfrom devices that support Bluetooth Low Energy (BLE) protocol.\n- [swift-sensor_recording_utils](https://github.com/maurovm/swift-sensor_recording_utils): \nA module containing shared utility methods and classes used by other modules \nand applications to record raw data from sensors. \n- [swift-async_bluetooth](https://github.com/maurovm/swift-async_bluetooth): A \nSwift Package that replicates some of the functionality provided by Apple's \nCoreBluetooth module but using Swift's latest async/await concurrency features.\n- [swift-async_pulse_ox](https://github.com/maurovm/swift-async_pulse_ox): The \nmain module that has all the functionality to connect and record data from \ndevices that support Bluetooth Low Energy (BLE) protocol, such as heart rate \nmonitors and pulse oximeters. \n\n## Plotting Examples\n\nThe image below shows an example of plotting a sinusoidal waveform using the \nsynthetic waveform generator found in the\n[swift-waveform_plotter](https://github.com/maurovm/swift-waveform_plotter)\nSwift Package:\n\n\n\u003cp align=\"center\"\u003e\n    \u003ckbd\u003e\n    \u003cimg src=\"./doc/figures/sinusoidal_plot.png\" \n         alt=\"Patient information screen\" width=\"500\" border=1 /\u003e\n    \u003c/kbd\u003e\n\u003c/p\u003e\n\n\nThe image below is an example of plotting the Photoplethysmogram (PPG)\nsignal recorded from a pulse oximeter using the\n[swift-pulse_ox_recorder](https://github.com/maurovm/swift-pulse_ox_recorder)\napplication:\n\n\n\u003cp align=\"center\"\u003e\n    \u003ckbd\u003e\n    \u003cimg src=\"./doc/figures/ble_nppg_detail_landscape.png\" \n         alt=\"Patient information screen\" width=\"600\" border=1 /\u003e\n    \u003c/kbd\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter_example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter_example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaurovm%2Fswift-waveform_plotter_example/lists"}