9 Commits

Author SHA1 Message Date
jonny_ji7
24d89b96cc Add example command, Improvements
- automaticArmchair:
  - add method addCommands for adding an array of
    commands to queue
  - add keys to simpleCommand struct
    - fadeDecel (not used yet)
    - fadeAcel (not used yet)
    - instructions (new enum for running other commands in control task
      , not used yet)

- button.cpp
  - add example command to 1x button press (comment out previous cmd
    temporarily)

- control.cpp
  - update changeMode function: dont do anything when current mode is
    already target mode
2022-08-11 09:30:07 +02:00
jonny_ji7
bbe26a3823 Add button cmd x12: alternative joystick mapping
New command and feature also made some  general changes to control and button necessary

joystick.cpp:
  - add optional parameter to joystick_CommandsDriving function
    bool altStickMapping (default false)
    if true this currently swaps BOTTOM_LEFT with BOTTOM_RIGHT for experimental
    different joystick mapping

button.cpp:
  - fix/move variable declaration outside of switch
  - add 12x case: send count to control task

control.cpp:
  - create new section in handle loop for button events
  - move x1 commands from JOYSTICK and MASSAGE case to new button
    section
  - remove unnecessary variable buttonEvent (only using buttonCount now)
  - add functionality to 12x button event -> toggle alternative stick
    mapping

readme.md:
  - add new x12 button command
2022-07-26 09:53:37 +02:00
jonny_ji7
1c3576206a Add button commands; Update Readme
button.cpp:
- Add command: reboot when long button press
- Add command: switch to mode JOYSTICK with 3x press

Readme:
 - rework table with switch functions
 - add new commands to table
 - add drink holder to planned features

joystick.cpp:
 - fix bug: missing 'break;' for switch case in function joystick_CommandsShaking
2022-07-25 22:45:59 +02:00
jonny_ji7
cac22ca4e1 Add functions to send button-event to control task
- control.cpp:  - Add method sendButtonEvent to control class
                - joystick mode: define joystick center at button event
                - massage mode: toggle freezing of joystick input at
                  button event
- button.cpp: remove reboot command (1x press)
- button.cpp: add command sendButtonEvent to control task (1x press)
2022-07-24 13:25:43 +02:00
jonny_l480
0b113eafb5 Add functions to modify/toggle fading (button x8)
- add 3 functions to controlledMotor class in motorctl.cpp/hpp
  - setFade: set specific msFade duration for acceleration or
    deceleration
  - setFade: disable or set to default ramp for acceleration or
    deceleration
  - toggleFade: toggle between fading enabled or disables for
    acceleration or deceleration

- button.cpp
  - add controlledMotor objects to constructor
  - add new command 8x press which now toggles fade-deceleration of both
    motors

- config.cpp
  - slightly decrease fading durations
2022-07-23 15:13:09 +02:00
jonny_l480
0165a88f1f Change dutyMax and fade, Add reboot cmd (1x press)
decrease ramp from 3000ms to 900ms (as in old project)
increase max duty from testing 60 to 94
Add reboot command (untested)
2022-06-19 09:34:14 +02:00
jonny_ji7
3cb5bc410b Create http server, Add HTTP mode
- Create http.cpp and http.hpp
  - functions for initializing a http server
  - function for URL api/joystick
    - receive joystick data from http post request
    - parse json, define joystick position (function from joystick.hpp)
    - send data to control task via queue

- control.hpp/cpp:
  - add HTTP mode to handle loop
    - receive joystick commands from queue, generate commands, send to
      motorctl
  - upgrade changeMode function with ability to run functions at switch
    FROM and TO certain modes
    - add code to start/stop wifi and webserver when switching to/from
      HTTP mode
  - change toggleModes and toggleIdle to use the changeMode function

- main.cpp:
  - add several sections with code for testing new functions (commented
    out)
  - add http loglevel

- buzzer.cpp:
  - add command (press 4 times) to toggle between HTTP and JOYSTICK mode

FIXME: moved initialization of wifi to main.cpp at startup because of an
error -> resolve this and place wifi start and stop functions into
mode-change as intended

currently works best in accesspoint mode with laptop connected using the
react-webapp
2022-06-17 18:24:11 +02:00
jonny_ji7
5e2962302d Move control to class, Add toggleIdle, toggleModes
- Move all separately declared functions in control.hpp to a new class
  'controlledArmchair'
    - now passing other objects only one time with constructor instead
      of accessing them globally
- Create control instance in config.hpp, and passing objects in
  config.cpp

- Add functions to new control class
  - toggleIdle(): toggle between last mode and idle
  - toggleModes(mode1, mode2): toggle between two modes

- Add commands to button.cpp
  - 2x button press: call toggleIdle()
  - 6x button press: toggleModes  MASSAGE -> JOYSTICK

- Define control task in main.cpp
- Adjust button files and main.cpp to use the new command object instead
  of the previus functions
2022-06-11 13:07:42 +02:00
jonny_ji7
adb517c7ed Create 'control.hpp/cpp', Create 'button.hpp/cpp'
Add control.hpp and control.cpp
 - task that repeatedly generates motor commands depending on the current mode
 - function to change to a specified control mode

Add button.hpp and button.cpp
  - class which runs commands depending on the count a button was pressed

Update main.cpp
  - create button task
  - create control task
  - comment out previous testing code
  - remove unnecessary includes (already included in config.hpp)

Add control.cpp and button.cpp to CMakeLists

Notes: Tested this state on the armchair: All currently implemented features
work. You can switch between IDLE and JOYSTICK by pressing the button 2
or 3 times. Also driving works well (limited to 60% duty, with no fans
yet).
2022-06-10 23:09:23 +02:00