From c34617e016a5b359941f459bcee9c6d91c8b05af Mon Sep 17 00:00:00 2001 From: Jonas Withelm Date: Thu, 12 Jan 2023 16:10:08 +0100 Subject: [PATCH 1/3] Add Simulink library block Added a Simulink library which contains the block "HebiJoystick Input". "HebiJoystick Input" can be used as a replacement for the "Joystick Input" block from the "Simulink 3D Animation" toolbox. --- src/main/resources/simulink/hebijoyinput.m | 121 ++++++++++++++++++ .../resources/simulink/matlabinput_lib.slx | Bin 0 -> 27122 bytes src/main/resources/simulink/slblocks.m | 13 ++ 3 files changed, 134 insertions(+) create mode 100644 src/main/resources/simulink/hebijoyinput.m create mode 100644 src/main/resources/simulink/matlabinput_lib.slx create mode 100644 src/main/resources/simulink/slblocks.m diff --git a/src/main/resources/simulink/hebijoyinput.m b/src/main/resources/simulink/hebijoyinput.m new file mode 100644 index 0000000..0b46406 --- /dev/null +++ b/src/main/resources/simulink/hebijoyinput.m @@ -0,0 +1,121 @@ +function hebijoyinput(block) + % hebijoyinput is a HebiJoystick implementation for Simulink + % + % hebijoyinput is an alternative to MathWorks's 'Joystick Input' + % block from 'Simulink 3D Animation' toolbox. 'hebijoyinput' is based + % on 'HebiJoystick'. 'Simulink 3D Animation' toolbox is not required + % for usage! + % + % See also: + % HebiJoystick (https://github.com/HebiRobotics/MatlabInput) + % Level-2 MATLAB S-Function (msfuntmpl) + + % Copyright (c) 2023 Jonas Withelm + % SPDX-License-Identifier: Apache-2.0 + + setup(block); + +%endfunction + + +function setup(block) + + %% Register number of dialog parameters + block.NumDialogPrms = 3; % joyid + block.DialogPrmsTunable = {'Nontunable','Nontunable','Nontunable'}; % not tunable during simulation + + %% Setup joystick + joyid = block.DialogPrm(1).Data; + forcefeed = block.DialogPrm(3).Data; + + % initialize joystick + joy = HebiJoystick(joyid); + + % read capabilities of joystick + caps = joy.caps(); + + % store persistent data + set_param(block.BlockHandle,'UserData',joy); + + %% Register number of output ports + block.NumOutputPorts = 2; + + %% Register number of input ports + if forcefeed && (caps.Forces > 0) + block.NumInputPorts = 1; + else + block.NumInputPorts = 0; + end + + %% Set up the port properties to be inherited or dynamic + block.SetPreCompInpPortInfoToDynamic; + block.SetPreCompOutPortInfoToDynamic; + + %% Set the output port properties + block.OutputPort(1).DimensionsMode = 'Fixed'; + block.OutputPort(1).SamplingMode = 'sample'; + block.OutputPort(1).Dimensions = caps.Axes; + block.OutputPort(1).DatatypeID = 0; % double + block.OutputPort(1).Complexity = 'Real'; + + block.OutputPort(2).DimensionsMode = 'Fixed'; + block.OutputPort(2).SamplingMode = 'sample'; + block.OutputPort(2).Dimensions = caps.Buttons; + block.OutputPort(2).DatatypeID = 0; % double + block.OutputPort(2).Complexity = 'Real'; + + if forcefeed && (caps.Forces > 0) + block.InputPort(1).DimensionsMode = 'Fixed'; + block.InputPort(1).SamplingMode = 'sample'; + block.InputPort(1).Dimensions = caps.Forces; + block.InputPort(1).DatatypeID = 0; % double + block.InputPort(1).Complexity = 'Real'; + block.InputPort(1).DirectFeedthrough = false; + end + + %% Set up the continuous states + block.NumContStates = 0; + + %% Set block sample time + block.SampleTimes = [1/50 0]; % Discrete sample time (50 Hz) + + %% Set the block simStateCompliance to default (i.e., same as a built-in block) + block.SimStateCompliance = 'DefaultSimState'; + + %% Register methods + block.RegBlockMethod('Outputs', @Outputs); + block.RegBlockMethod('Terminate', @Terminate); + +%endfunction + + +function Outputs(block) + + joy = get_param(block.BlockHandle,'UserData'); + + caps = joy.caps(); + + % read force feedback from block input and send to joystick + forcefeed = block.DialogPrm(3).Data; + if forcefeed && (caps.Forces > 0) + for idx=1:caps.Forces + joy.force(idx, block.InputPort(idx).Data); + end + end + + % read axes and buttons from joystick and write to block outputs + [axes, buttons, ~] = joy.read(); + + block.OutputPort(1).Data = axes; + block.OutputPort(2).Data = buttons; + +%endfunction + + +function Terminate(block) + + joy = get_param(block.BlockHandle,'UserData'); + + joy.close(); + +%endfunction diff --git a/src/main/resources/simulink/matlabinput_lib.slx b/src/main/resources/simulink/matlabinput_lib.slx new file mode 100644 index 0000000000000000000000000000000000000000..a752bc034e611119f28178c557a55e642c4f6a43 GIT binary patch literal 27122 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 Date: Thu, 12 Jan 2023 16:16:18 +0100 Subject: [PATCH 2/3] Change release structure - Splitting the release files into matlab and simulink folders. - Include README and LICENSE. --- src/main/assembly/release.xml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/assembly/release.xml b/src/main/assembly/release.xml index 9d0b4ad..27511bf 100644 --- a/src/main/assembly/release.xml +++ b/src/main/assembly/release.xml @@ -1,3 +1,4 @@ + @@ -7,18 +8,31 @@ tar.gz dir - false + true + + + ${project.basedir}/ + + README* + LICENSE* + + ${project.build.directory}/classes/matlab/ - hebi/ + matlab/ dos + + + ${project.build.directory}/classes/simulink/ + simulink/ + - ${project.build.directory} - hebi/ + ${project.build.directory}/ + matlab/ ${releaseName}.jar @@ -27,7 +41,7 @@ - hebi/lib/ + matlab/lib/ true true provided @@ -37,7 +51,3 @@ - - - - From f5115c2dccd495cd139e6993d3d0c24b842a1a0b Mon Sep 17 00:00:00 2001 From: Jonas Withelm Date: Thu, 12 Jan 2023 16:19:26 +0100 Subject: [PATCH 3/3] Prepare 1.2.1 release --- CHANGELOG.md | 3 +++ pom.xml | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1c4668..4f470dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### 1.2.1 (Jan 12, 2023) +* Added Simulink library for HebiJoystick + ### 1.2 (Jan 26, 2017) * Added support for keyboards * Changed project name from HebiJoystick to MatlabInput diff --git a/pom.xml b/pom.xml index 8d607c4..ea5f837 100644 --- a/pom.xml +++ b/pom.xml @@ -6,8 +6,8 @@ 4.0.0 us.hebi.matlab - 1.3-SNAPSHOT input + 1.2.1 matlab-input MATLAB library for joystick and keyboard input @@ -27,6 +27,12 @@ + + + Jonas Withelm + + + https://github.com/HebiRobotics/MatlabInput scm:git:git://github.com/HebiRobotics/MatlabInput.git @@ -158,4 +164,4 @@ - \ No newline at end of file +