summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-smartphone-connector.spec415
-rw-r--r--sources1
3 files changed, 417 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..7c69945 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/smartphone_connector-0.0.115.tar.gz
diff --git a/python-smartphone-connector.spec b/python-smartphone-connector.spec
new file mode 100644
index 0000000..c3e559a
--- /dev/null
+++ b/python-smartphone-connector.spec
@@ -0,0 +1,415 @@
+%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 <Python_Bot@openeuler.org> - 0.0.115-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..88683ce
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+dee63e41e54a48510d211a19a8300730 smartphone_connector-0.0.115.tar.gz