%global _empty_manifest_terminate_build 0 Name: python-smartphone-connector Version: 0.0.115 Release: 1 Summary: Talk to a socketio server License: MIT License URL: https://github.com/lebalz/smartphone-connector Source0: https://mirrors.nju.edu.cn/pypi/web/packages/98/d6/96115de4911fc7c10caf0d969779562a80b85f78417f4437927a03d98dcf/smartphone_connector-0.0.115.tar.gz BuildArch: noarch Requires: python3-socketio[client] %description # Smartphone Connector This simple package exposes methods to interact with smartphones connected to a [socket.io server](https://github.com/lebalz/socketio_server) instance. ## Examples [All examples and scripts on GitHub](https://github.com/lebalz/smartphone-connector/blob/master/examples/) ### Draw 3x3 checker board ```py from smartphone_connector import Connector phone = Connector('https://io.lebalz.ch', 'FooBar') # draw a 3x3 checker board phone.set_grid([ ['black','white','black'], ['white','black','white'], ['black','white','black'] ], broadcast=True) # print the letter A phone.set_grid([ [9,9,9,9], [9,0,0,9], [9,9,9,9], [9,0,0,9], [9,0,0,9], ]) ``` results on all devices in the following screen. When `broadcast` is set to `False` (default), only the `FooBar` devices display the checker board. ![checker board](checker_demo.png) ### Stream & display gyroscope data ```py from smartphone_connector import Connector, GyroMsg import matplotlib.pyplot as plt phone = Connector('https://io.lebalz.ch', 'FooBar') MAX_SAMPLES = 300 y = [] x = [] plt.show() def on_gyro(data: GyroMsg): if len(x) > MAX_SAMPLES: x.pop(0) y.pop(0) x.append(data.time_stamp) y.append([data.alpha, data.beta, data.gamma]) def on_intervall(): plt.clf() plt.plot(x, y) plt.pause(0.01) phone.on_gyro = on_gyro phone.subscribe(on_intervall, interval=0) ``` Displays gyroscope data from the smartphone on a Matplotlib-Plot. ![Gyroscope-Plot](assets/gyroscope.png) ## Package and upload to pip @see [this tutorial](https://packaging.python.org/tutorials/packaging-projects/) ```sh rm -rf build/ dist/ smartphone_connector.egg-info/ && \ python3 setup.py sdist bdist_wheel && \ python3 -m twine upload dist/* ``` ## Changelog - 0.0.115: fix audio path checking - 0.0.113: fix reporting of `pos_x` and `pos_y` on collisions - 0.0.111: support `timer` events from socketio_server - 0.0.110: add method `report(value: int | float, report_type: str, to: '__GAME_RUNNER__')` - 0.0.109: fix typo in `update_ellipse` - 0.0.108: introduce `clean_playground` method to remove all sprites and lines from the current playground, but keep the playground config as is. And minor bug fixes. - 0.0.107: can mix absolute and relative movements with `apply_movements` and `apply_movement` - 0.0.106: add possibility to control movement distances - 0.0.105: control repeats of movement sequences - 0.0.104: add methods to apply movements to objects: ```py # single movement device.apply_movement(id='circle', direction=[1, 1], time_span=1, speed=3) # movement sequence with device.apply_movements(id='circle') as movement: movement(direction=[1, 0], time_span=1, speed=2) movement(direction=[-1, 0], time_span=1, speed=2) ``` - adding example [playground_flappy.py](examples/playground_flappy.py) - 0.0.103: change function annotation of `set_timeout(callback, time, repeat=1)` instead of `set_timeout(callback, interval, iteration_count=inf)` - 0.0.102: add alias methods for `subscribe_async`: `set_timeout`, `schedule`, `execute_in` - 0.0.101: introduce `move_to(id: str, pos: [x, y], via: [x, y])` method to make jumps easyier. Event `auto_movement_pos` is triggered when an auto movement within a sequence finished. - 0.0.100: support image formats `.gif`, `.bmp`, `.webp` - 0.0.99: introduce method `add_svg_to_playground(name: str, raw_svg: str)` to upload plain svg source text - 0.0.98 fix iteration count - 0.0.97: introduce sound - provide a `audio_tracks` source directory in `configure_playground` and start/stop sounds with `play_sound(name: str, id: Optional[str])` / `stop_sound(name: Optional[str], id: Optional[str])` - 0.0.96 register multiple callback functions with `on(event, clbk)` - 0.0.95 support `border_style` and `border_width` for sprites %package -n python3-smartphone-connector Summary: Talk to a socketio server Provides: python-smartphone-connector BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-smartphone-connector # Smartphone Connector This simple package exposes methods to interact with smartphones connected to a [socket.io server](https://github.com/lebalz/socketio_server) instance. ## Examples [All examples and scripts on GitHub](https://github.com/lebalz/smartphone-connector/blob/master/examples/) ### Draw 3x3 checker board ```py from smartphone_connector import Connector phone = Connector('https://io.lebalz.ch', 'FooBar') # draw a 3x3 checker board phone.set_grid([ ['black','white','black'], ['white','black','white'], ['black','white','black'] ], broadcast=True) # print the letter A phone.set_grid([ [9,9,9,9], [9,0,0,9], [9,9,9,9], [9,0,0,9], [9,0,0,9], ]) ``` results on all devices in the following screen. When `broadcast` is set to `False` (default), only the `FooBar` devices display the checker board. ![checker board](checker_demo.png) ### Stream & display gyroscope data ```py from smartphone_connector import Connector, GyroMsg import matplotlib.pyplot as plt phone = Connector('https://io.lebalz.ch', 'FooBar') MAX_SAMPLES = 300 y = [] x = [] plt.show() def on_gyro(data: GyroMsg): if len(x) > MAX_SAMPLES: x.pop(0) y.pop(0) x.append(data.time_stamp) y.append([data.alpha, data.beta, data.gamma]) def on_intervall(): plt.clf() plt.plot(x, y) plt.pause(0.01) phone.on_gyro = on_gyro phone.subscribe(on_intervall, interval=0) ``` Displays gyroscope data from the smartphone on a Matplotlib-Plot. ![Gyroscope-Plot](assets/gyroscope.png) ## Package and upload to pip @see [this tutorial](https://packaging.python.org/tutorials/packaging-projects/) ```sh rm -rf build/ dist/ smartphone_connector.egg-info/ && \ python3 setup.py sdist bdist_wheel && \ python3 -m twine upload dist/* ``` ## Changelog - 0.0.115: fix audio path checking - 0.0.113: fix reporting of `pos_x` and `pos_y` on collisions - 0.0.111: support `timer` events from socketio_server - 0.0.110: add method `report(value: int | float, report_type: str, to: '__GAME_RUNNER__')` - 0.0.109: fix typo in `update_ellipse` - 0.0.108: introduce `clean_playground` method to remove all sprites and lines from the current playground, but keep the playground config as is. And minor bug fixes. - 0.0.107: can mix absolute and relative movements with `apply_movements` and `apply_movement` - 0.0.106: add possibility to control movement distances - 0.0.105: control repeats of movement sequences - 0.0.104: add methods to apply movements to objects: ```py # single movement device.apply_movement(id='circle', direction=[1, 1], time_span=1, speed=3) # movement sequence with device.apply_movements(id='circle') as movement: movement(direction=[1, 0], time_span=1, speed=2) movement(direction=[-1, 0], time_span=1, speed=2) ``` - adding example [playground_flappy.py](examples/playground_flappy.py) - 0.0.103: change function annotation of `set_timeout(callback, time, repeat=1)` instead of `set_timeout(callback, interval, iteration_count=inf)` - 0.0.102: add alias methods for `subscribe_async`: `set_timeout`, `schedule`, `execute_in` - 0.0.101: introduce `move_to(id: str, pos: [x, y], via: [x, y])` method to make jumps easyier. Event `auto_movement_pos` is triggered when an auto movement within a sequence finished. - 0.0.100: support image formats `.gif`, `.bmp`, `.webp` - 0.0.99: introduce method `add_svg_to_playground(name: str, raw_svg: str)` to upload plain svg source text - 0.0.98 fix iteration count - 0.0.97: introduce sound - provide a `audio_tracks` source directory in `configure_playground` and start/stop sounds with `play_sound(name: str, id: Optional[str])` / `stop_sound(name: Optional[str], id: Optional[str])` - 0.0.96 register multiple callback functions with `on(event, clbk)` - 0.0.95 support `border_style` and `border_width` for sprites %package help Summary: Development documents and examples for smartphone-connector Provides: python3-smartphone-connector-doc %description help # Smartphone Connector This simple package exposes methods to interact with smartphones connected to a [socket.io server](https://github.com/lebalz/socketio_server) instance. ## Examples [All examples and scripts on GitHub](https://github.com/lebalz/smartphone-connector/blob/master/examples/) ### Draw 3x3 checker board ```py from smartphone_connector import Connector phone = Connector('https://io.lebalz.ch', 'FooBar') # draw a 3x3 checker board phone.set_grid([ ['black','white','black'], ['white','black','white'], ['black','white','black'] ], broadcast=True) # print the letter A phone.set_grid([ [9,9,9,9], [9,0,0,9], [9,9,9,9], [9,0,0,9], [9,0,0,9], ]) ``` results on all devices in the following screen. When `broadcast` is set to `False` (default), only the `FooBar` devices display the checker board. ![checker board](checker_demo.png) ### Stream & display gyroscope data ```py from smartphone_connector import Connector, GyroMsg import matplotlib.pyplot as plt phone = Connector('https://io.lebalz.ch', 'FooBar') MAX_SAMPLES = 300 y = [] x = [] plt.show() def on_gyro(data: GyroMsg): if len(x) > MAX_SAMPLES: x.pop(0) y.pop(0) x.append(data.time_stamp) y.append([data.alpha, data.beta, data.gamma]) def on_intervall(): plt.clf() plt.plot(x, y) plt.pause(0.01) phone.on_gyro = on_gyro phone.subscribe(on_intervall, interval=0) ``` Displays gyroscope data from the smartphone on a Matplotlib-Plot. ![Gyroscope-Plot](assets/gyroscope.png) ## Package and upload to pip @see [this tutorial](https://packaging.python.org/tutorials/packaging-projects/) ```sh rm -rf build/ dist/ smartphone_connector.egg-info/ && \ python3 setup.py sdist bdist_wheel && \ python3 -m twine upload dist/* ``` ## Changelog - 0.0.115: fix audio path checking - 0.0.113: fix reporting of `pos_x` and `pos_y` on collisions - 0.0.111: support `timer` events from socketio_server - 0.0.110: add method `report(value: int | float, report_type: str, to: '__GAME_RUNNER__')` - 0.0.109: fix typo in `update_ellipse` - 0.0.108: introduce `clean_playground` method to remove all sprites and lines from the current playground, but keep the playground config as is. And minor bug fixes. - 0.0.107: can mix absolute and relative movements with `apply_movements` and `apply_movement` - 0.0.106: add possibility to control movement distances - 0.0.105: control repeats of movement sequences - 0.0.104: add methods to apply movements to objects: ```py # single movement device.apply_movement(id='circle', direction=[1, 1], time_span=1, speed=3) # movement sequence with device.apply_movements(id='circle') as movement: movement(direction=[1, 0], time_span=1, speed=2) movement(direction=[-1, 0], time_span=1, speed=2) ``` - adding example [playground_flappy.py](examples/playground_flappy.py) - 0.0.103: change function annotation of `set_timeout(callback, time, repeat=1)` instead of `set_timeout(callback, interval, iteration_count=inf)` - 0.0.102: add alias methods for `subscribe_async`: `set_timeout`, `schedule`, `execute_in` - 0.0.101: introduce `move_to(id: str, pos: [x, y], via: [x, y])` method to make jumps easyier. Event `auto_movement_pos` is triggered when an auto movement within a sequence finished. - 0.0.100: support image formats `.gif`, `.bmp`, `.webp` - 0.0.99: introduce method `add_svg_to_playground(name: str, raw_svg: str)` to upload plain svg source text - 0.0.98 fix iteration count - 0.0.97: introduce sound - provide a `audio_tracks` source directory in `configure_playground` and start/stop sounds with `play_sound(name: str, id: Optional[str])` / `stop_sound(name: Optional[str], id: Optional[str])` - 0.0.96 register multiple callback functions with `on(event, clbk)` - 0.0.95 support `border_style` and `border_width` for sprites %prep %autosetup -n smartphone-connector-0.0.115 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-smartphone-connector -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 0.0.115-1 - Package Spec generated