-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Fixes #33 : Create ps4-controller role * add color var * fixed 3 first errors * Might be the final commit * remove sudo for run setup.py * removed wrong python path for run setup.py * Another bad path resolved * Uncomment roles in donkeycar.yml * fixing ds4drv install using pip and git URL * fixes some review * Fixes all @Benvii reviews * add modif * add sleep in ds4drv.service * Fix line issue after rebasing * remove path env typoq * fixes typos variable in ds4drv.env * modifie the dhcpd5 service * Fixing some issues after review and also that comes from rpi4 (maybe), such as DHCPD path * Mistake in jinja template file name for DHCP Co-authored-by: Benjamin BERNARD <[email protected]>
- Loading branch information
1 parent
ce9ecbe
commit 32843a0
Showing
10 changed files
with
303 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ps4_contoller_led_color: 00CED1 # hexadecimal color ( don't forget, remove the `#` before ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
# ps4 controller handlers | ||
|
||
- name: Start ds4drv service | ||
systemd: | ||
name: ds4drv | ||
daemon-reload: yes | ||
state: started | ||
enabled: yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- | ||
|
||
- name: Install git | ||
become: true | ||
apt: | ||
name: git | ||
state: latest | ||
|
||
- name: Put rules in /etc/udev/rules.d/ | ||
become: yes | ||
get_url: | ||
url: https://raw.githubusercontent.com/chrippa/ds4drv/master/udev/50-ds4drv.rules | ||
dest: /etc/udev/rules.d/50-ds4drv.rules | ||
|
||
- name: reload ds4drv rules | ||
become: yes | ||
command: udevadm control --reload-rules | ||
|
||
- name: activate rules | ||
become: yes | ||
command: udevadm trigger | ||
|
||
- name: Install ds4drv (version with controller limit) | ||
become: no | ||
pip: | ||
name: git+https://github.com/Benvii/ds4drv.git@193_limit_simultaneous_controllers | ||
virtualenv: /home/pi/venv/ | ||
virtualenv_command: /usr/bin/python3 -m venv | ||
|
||
- name: Create the /etc/donkeycar directory | ||
file: | ||
path: /etc/donkeycar | ||
state: directory | ||
|
||
- name: Configure ds4drv.conf file | ||
become: yes | ||
template: | ||
src: ds4drv.conf.j2 | ||
dest: /etc/donkeycar/ds4drv.conf | ||
owner: root | ||
group: root | ||
|
||
- name: Create the environment file for ds4drv | ||
become: yes | ||
template: | ||
src: ds4drv.env.j2 | ||
dest: /etc/donkeycar/ds4drv.env | ||
owner: root | ||
group: root | ||
|
||
- name: Copy systemd service file to server | ||
become: yes | ||
template: | ||
src: ds4drv.service.j2 | ||
dest: /etc/systemd/system/ds4drv.service | ||
owner: root | ||
group: root | ||
notify: | ||
- Start ds4drv service |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
# Many of the settings used here are directly connected to their command line | ||
# counterparts, see "ds4drv --help" for more information about available options. | ||
|
||
## | ||
# Global options | ||
## | ||
[ds4drv] | ||
# Run ds4drv in background as a daemon | ||
#daemon = true | ||
|
||
# Location of the log file in daemon mode | ||
#daemon-log = ~/.cache/ds4drv.log | ||
|
||
# Location of the PID file in daemon mode | ||
#daemon-pid = /tmp/ds4drv.pid | ||
|
||
# Enable hidraw mode | ||
#hidraw = true | ||
|
||
|
||
## | ||
# Controller settings | ||
# | ||
# This is the default profile for each controller. | ||
# Multiple controllers slots are defined by increasing the number. | ||
# | ||
# Controller sections contain: | ||
# Key: A option, these are the same options that can used on the command line | ||
# but without the "--" prefix. | ||
# Value: The option's value, should be "true" if no value is needed. | ||
# | ||
# See "ds4drv --help" for a complete list of available options. | ||
## | ||
[controller:1] | ||
# Enables LED flash on low battery | ||
#battery-flash = true | ||
|
||
# Sets LED color | ||
#led = 0000ff | ||
|
||
# Enables profile switching | ||
#profile-toggle = PS | ||
|
||
# Profiles to cycle through | ||
#profiles = xpad,kbmouse | ||
|
||
|
||
## | ||
# Profiles | ||
# | ||
# Profiles allows switching controller settings during runtime. | ||
# | ||
# Profile sections always require a name and are then enabled on a controller | ||
# with "profiles = <profile1>[,<profile2>]". | ||
# | ||
# The same settings available for controllers are used here. | ||
## | ||
[profile:xpad] | ||
led = ff0000 | ||
# Emulate the same button mapping as wired Xbox 360 controllers | ||
emulate-xpad = true | ||
|
||
[profile:kbmouse] | ||
led = 00ff00 | ||
# Enable trackpad mouse | ||
trackpad-mouse = true | ||
# Custom button mapping | ||
mapping = keyboard | ||
# Custom action bindings | ||
bindings = exec_stuff | ||
|
||
|
||
## | ||
# Mappings | ||
# | ||
# Mappings let you map buttons and sticks to mouse, key and joystick events. | ||
# | ||
# Mapping sections always require a name and are then enabled in a profile | ||
# with "mapping = <name>". | ||
# | ||
# Mapping sections contain: | ||
# Key: A Linux input event, see /usr/include/linux/input-event-codes.h for a complete list | ||
# Value: Button on the DS4, use --dump-reports to see all the available buttons | ||
## | ||
|
||
[mapping:keyboard] | ||
# General button to key mapping | ||
KEY_UP = dpad_up | ||
KEY_LEFT = dpad_left | ||
KEY_DOWN = dpad_down | ||
KEY_RIGHT = dpad_right | ||
KEY_Z = button_cross | ||
KEY_X = button_circle | ||
|
||
# Turn analog stick directions into buttons | ||
KEY_W = -left_analog_y | ||
KEY_A = -left_analog_x | ||
KEY_S = +left_analog_y | ||
KEY_D = +left_analog_x | ||
|
||
# Map relative mouse movement to a analog stick | ||
REL_X = right_analog_x | ||
REL_Y = right_analog_y | ||
|
||
# Map mouse buttons | ||
BTN_LEFT = button_r2 | ||
BTN_RIGHT = button_l2 | ||
|
||
# Emulate mouse wheel on r1 and l1 | ||
REL_WHEELUP = button_l1 | ||
REL_WHEELDOWN = button_r1 | ||
|
||
# Mouse settings | ||
#mouse_sensitivity = 0.6 | ||
#mouse_deadzone = 5 | ||
|
||
# Scroll wheel emulation settings (values are in seconds) | ||
#mouse_scroll_repeat_delay = 0.25 # How long to wait before continual scrolling | ||
#mouse_scroll_delay = 0.05 # Lower this to scroll faster; raise to scroll slower | ||
|
||
|
||
## | ||
# Bindings | ||
# | ||
# Bindings let you bind button combos to special built-in actions. | ||
# | ||
# Binding sections can be defined with a name and are then enabled in a profile | ||
# with "bindings = <name>". | ||
# | ||
# It's also possible to define a global bindings section that is enabled | ||
# on all profiles. | ||
# | ||
# Sections contains: | ||
# Key: A button combo | ||
# Value: An action, see next section for valid actions. | ||
# | ||
# | ||
# Valid actions: | ||
# next-profile Loads the next profile | ||
# prev-profile Loads the previous profile | ||
# load-profile <profile> Loads the specified profile | ||
# exec <command> [arg1] [arg2] ... Executes the command with | ||
# specified arguments | ||
# exec-background <command> [arg1] [arg2] ... Same as exec but launches in | ||
# the background | ||
# | ||
# | ||
# Actions will be pre-processed and replace variables with real values. | ||
# | ||
# Valid variables: | ||
# $profile The current profile | ||
# $name Pretty name of the current device | ||
# $device_addr Bluetooth address of the device | ||
# $report.<attribute> Replace <attribute> with a valid attribute, | ||
# use --dump-reports to see which are available | ||
## | ||
|
||
[bindings] | ||
# Cycle profiles | ||
#PS+Right = next-profile | ||
#PS+Left = prev-profile | ||
|
||
# Go directly to specified profile | ||
#PS+Up = load-profile kbmouse | ||
#PS+Down = load-profile default | ||
|
||
|
||
[bindings:exec_stuff] | ||
# Execute a command in the foreground, blocking until it has finished | ||
PS+Cross = exec echo '$name' | ||
|
||
# Execute a command in the background | ||
PS+Triangle = exec-background sh -c 'echo "disconnect $device_addr" | bluetoothctl' | ||
|
||
[bindings:test] | ||
# Round = exec echo round | ||
L2 = exec echo L2 | ||
Ps+Cross = exec echo sus | ||
PS+Triangle+L2+Circle = exec echo shutdown | ||
|
||
[bindings:donkeycar] | ||
PS+Triangle+L2+Circle = exec sudo shutdown -h now |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
CONTROLLER_LED_COLOR={{ ps4_contoller_led_color }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[Unit] | ||
Description=ds4drv daemon | ||
Requires=bluetooth.service | ||
After=bluetooth.service | ||
|
||
[Service] | ||
EnvironmentFile=/etc/donkeycar/ds4drv.env | ||
ExecStartPre=/bin/sleep 5 | ||
ExecStart=/home/pi/venv/bin/ds4drv --controller-limit 1 --led ${CONTROLLER_LED_COLOR} --config /etc/donkeycar/ds4drv.conf --bindings donkeycar | ||
Restart=on-abort | ||
|
||
[Install] | ||
WantedBy=bluetooth.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
[Unit] | ||
Description=dhcpcd on all interfaces | ||
Wants=network.target | ||
Before=network.target | ||
Restart=always | ||
|
||
[Service] | ||
Type=forking | ||
PIDFile=/run/dhcpcd.pid | ||
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b | ||
ExecStop=/sbin/dhcpcd -x | ||
TimeoutStartSec=180 | ||
|
||
[Install] | ||
WantedBy=multi-user.target | ||
Alias=dhcpcd5.service |