Skip to content

Commit e876aaf

Browse files
committed
publish release v1.1.6
1 parent 1deaa8a commit e876aaf

File tree

7 files changed

+71
-9
lines changed

7 files changed

+71
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Changelog
22

3-
- fix: `tydex.parsers` package was not delivered
3+
- new: fitmodes now also selectable using "App" menu in menu bar

MFTyreToolApp.prj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<deployment-project plugin="plugin.apptool" plugin-version="1.0">
2-
<configuration build-checksum="3610955114" file="C:\Users\Tom\Documents\mftyre-tool-matlab\MFTyreToolApp.prj" location="C:\Users\Tom\Documents\mftyre-tool-matlab" name="MFTyreToolApp" target="target.mlapps" target-name="Package App">
2+
<configuration build-checksum="2220732703" file="C:\Users\Tom\Documents\mftyre-tool-matlab\MFTyreToolApp.prj" location="C:\Users\Tom\Documents\mftyre-tool-matlab" name="MFTyreToolApp" target="target.mlapps" target-name="Package App">
33
<param.appname>MFTyreToolApp</param.appname>
44
<param.authnamewatermark>Tom Teasdale</param.authnamewatermark>
55
<param.email>teasdale@lightsaber.red</param.email>
@@ -13,7 +13,7 @@
1313
<param.summary>Create, fit and evaluate MF-Tyre model with a convenient MATLAB GUI.</param.summary>
1414
<param.description />
1515
<param.screenshot>${PROJECT_ROOT}\assets\img\MFTyreTool_Screenshot_Main.jpg</param.screenshot>
16-
<param.version>1.1.5</param.version>
16+
<param.version>1.1.6</param.version>
1717
<param.products.name>
1818
<item>MATLAB</item>
1919
</param.products.name>

MFTyreToolToolboxPackager.prj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<param.summary>Create, fit and evaluate MF-Tyre models with a convenient MATLAB GUI.</param.summary>
88
<param.description />
99
<param.screenshot>${PROJECT_ROOT}\assets\img\MFTyreTool_Screenshot_Main.jpg</param.screenshot>
10-
<param.version>1.1.5</param.version>
10+
<param.version>1.1.6</param.version>
1111
<param.output>${PROJECT_ROOT}\MFTyreTool.mltbx</param.output>
1212
<param.products.name />
1313
<param.products.id />

src/+ui/TyreFitterPanel.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
end
99

1010
events (NotifyAccess = public)
11-
FitterStarted
12-
FitterCanceled
11+
TyreFitterModesChanged
1312
end
1413

1514
properties (Access = private, Transient, NonCopyable)
@@ -42,6 +41,10 @@ function onSolverSettingsChanged(obj, ~, event)
4241
function onRunStateButtonValueChanged(obj, ~, ~)
4342
notify(obj, 'FitterStartRequested')
4443
end
44+
function onTyreFitterModesChanged(obj, ~, event)
45+
fitmodes = event.FitModes;
46+
obj.FittingModesPanel.FitModes = fitmodes;
47+
end
4548
end
4649

4750
methods (Access = protected)
@@ -69,6 +72,9 @@ function setup(obj)
6972
'Text', 'Start Fitter', ...
7073
'Icon', 'play-solid.svg', ...
7174
'ButtonPushedFcn', @obj.onRunStateButtonValueChanged);
75+
76+
addlistener(obj, 'TyreFitterModesChanged', ...
77+
@obj.onTyreFitterModesChanged);
7278
end
7379
function update(obj)
7480
end

src/+ui/TyreModelPanel.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
end
4646
events (NotifyAccess = public)
4747
TyreModelChanged
48+
TyreFitterModesChanged
4849
TyreModelFitterFinished
4950
ViewSettingsChanged
5051
end
@@ -114,6 +115,11 @@ function onStructToMatRequested(obj, ~, ~)
114115
function onTyreModelEdited(obj, ~, ~)
115116
notify(obj, 'TyreModelEdited')
116117
end
118+
function onTyreFitterModesChanged(obj, ~, event)
119+
fitmodes = event.FitModes;
120+
e = events.FittingModesChangedEventData(fitmodes);
121+
notify(obj.FitterPanel, 'TyreFitterModesChanged', e)
122+
end
117123
function onUiFigureSizeChanged(obj, ~, ~)
118124
parent = obj.Parent;
119125
while isa(parent, 'matlab.ui.container.GridLayout')
@@ -247,6 +253,8 @@ function setupListeners(obj)
247253
@obj.onTyreModelFitterFinished);
248254
addlistener(obj, 'ViewSettingsChanged', ...
249255
@obj.onViewSettingsChanged);
256+
addlistener(obj, 'TyreFitterModesChanged', ...
257+
@obj.onTyreFitterModesChanged);
250258
end
251259
end
252260
methods (Access = protected)

src/MFTyreTool.m

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
AppMenu matlab.ui.container.Menu
4040
HelpMenu matlab.ui.container.Menu
4141
ViewMenu matlab.ui.container.Menu
42+
SelectFitModesMenu matlab.ui.container.Menu
4243

4344
TyreModelFittingTab matlab.ui.container.Tab
4445
TyreModelPanel ui.TyreModelPanel
@@ -85,6 +86,19 @@
8586
end
8687
end
8788
end
89+
methods
90+
function set.TyreModelFitterFitModes(app, fitmodes)
91+
app.TyreModelFitterFitModes = fitmodes;
92+
menus = app.SelectFitModesMenu.Children;
93+
menuTexts = {menus.Text};
94+
set(menus, 'Checked', 'off')
95+
for i = 1:numel(fitmodes)
96+
fitmodeName = char(fitmodes(i));
97+
I = strcmp(menuTexts, {fitmodeName});
98+
menus(I).Checked = 'on';
99+
end
100+
end
101+
end
88102
methods (Access = private)
89103
function params = extractNominalParametersFromMeasurements(app)
90104
measurements = app.TyreMeasurements;
@@ -192,6 +206,27 @@ function onFitterFittingModesChanged(app, ~, event)
192206
modes = event.FitModes;
193207
app.TyreModelFitterFitModes = modes;
194208
end
209+
function onSelectFitModesMenuSelected(app, source, ~)
210+
[fitmodes, fitmodeNames] = enumeration('mftyre.v62.FitMode');
211+
fitmodeName = source.Text;
212+
I = strcmp(fitmodeNames, fitmodeName);
213+
fitmode = fitmodes(I);
214+
enable = ~logical(source.Checked);
215+
fitmodesEnabled = app.TyreModelFitterFitModes;
216+
if enable
217+
fitmodesEnabled = [fitmodesEnabled fitmode];
218+
fitmodesEnabled = sort(fitmodesEnabled);
219+
fitmodesEnabled = unique(fitmodesEnabled);
220+
else
221+
I = fitmodesEnabled == fitmode;
222+
fitmodesEnabled(I) = [];
223+
end
224+
app.TyreModelFitterFitModes = fitmodesEnabled;
225+
source.Checked = matlab.lang.OnOffSwitchState(enable);
226+
227+
e = events.FittingModesChangedEventData(fitmodesEnabled);
228+
notify(app.TyreModelPanel, 'TyreFitterModesChanged', e)
229+
end
195230
function onLoadModelRequested(app, ~, ~)
196231
[fileName, path] = uigetfile('.tir', ...
197232
'Select Tyre Properties File');
@@ -746,11 +781,24 @@ function createAppMenu(app)
746781
'Text', 'Clear Tyre Data', ...
747782
'MenuSelectedFcn', @app.onClearMeasurementsRequested);
748783

784+
app.SelectFitModesMenu = uimenu(app.AppMenu, ...
785+
'Text', 'Select Fit-Modes', ...
786+
'Separator', 'on');
787+
fitmodes = {
788+
char(mftyre.v62.FitMode.Fx0)
789+
char(mftyre.v62.FitMode.Fy0)
790+
char(mftyre.v62.FitMode.Fx)
791+
char(mftyre.v62.FitMode.Fy)
792+
};
793+
for i = 1:numel(fitmodes)
794+
fitmode = fitmodes{i};
795+
uimenu(app.SelectFitModesMenu, 'Text', fitmode, ...
796+
'MenuSelectedFcn', @app.onSelectFitModesMenuSelected);
797+
end
749798
uimenu(app.AppMenu, ...
750799
'Text', 'Start &Fitter', ...
751800
'Accelerator', 'F', ...
752-
'MenuSelectedFcn', @app.onStartFittingRequested, ...
753-
'Separator', 'on');
801+
'MenuSelectedFcn', @app.onStartFittingRequested);
754802

755803
uimenu(app.AppMenu, ...
756804
'Text', '&Reset Application', ...

src/about.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"Name": "MFTyreTool",
3-
"Version": "1.1.5",
3+
"Version": "1.1.6",
44
"Authors": [
55
"Tom Teasdale"
66
],

0 commit comments

Comments
 (0)