1 | function ErrorFlag = switch2hardware(Family) |
---|
2 | %SWITCH2HARDWARE - Switch family to hardware units |
---|
3 | % |
---|
4 | % ErrorFlag = switch2hardware(Family) |
---|
5 | % |
---|
6 | % Family - Family name string |
---|
7 | % Matrix of family name strings |
---|
8 | % Cell array of family name strings |
---|
9 | % {Default: All families} |
---|
10 | % |
---|
11 | % ErrorFlag - Number of errors that occurred |
---|
12 | % |
---|
13 | % Written by Greg Portmann |
---|
14 | |
---|
15 | |
---|
16 | ErrorFlag = 0; |
---|
17 | |
---|
18 | if nargin == 0 |
---|
19 | Family = getfamilylist; |
---|
20 | end |
---|
21 | if isempty(Family) |
---|
22 | Family = getfamilylist; |
---|
23 | end |
---|
24 | |
---|
25 | |
---|
26 | if ischar(Family) |
---|
27 | for i = 1:size(Family,1) |
---|
28 | FamilyNameCell(i) = {deblank(Family(i,:))}; |
---|
29 | end |
---|
30 | elseif iscell(Family) |
---|
31 | FamilyNameCell = Family; |
---|
32 | else |
---|
33 | error('Familyname input must be empty, a string matrix, or a cell array of strings'); |
---|
34 | end |
---|
35 | |
---|
36 | |
---|
37 | for i = 1:length(FamilyNameCell) |
---|
38 | AOFamily = getfamilydata(FamilyNameCell{i}); |
---|
39 | try |
---|
40 | AllFields = fieldnames(AOFamily); |
---|
41 | for j = 1:length(AllFields) |
---|
42 | if isfield(AOFamily.(AllFields{j}),'Units') |
---|
43 | setfamilydata('Hardware', AOFamily.FamilyName, AllFields{j}, 'Units'); |
---|
44 | end |
---|
45 | end |
---|
46 | catch |
---|
47 | ErrorFlag = ErrorFlag + 1; |
---|
48 | fprintf(' Error switching %s family to hardware units, hence ignored (switch2hardware)\n', FamilyNameCell{i}); |
---|
49 | end |
---|
50 | end |
---|
51 | |
---|
52 | |
---|
53 | if ~ErrorFlag |
---|
54 | if length(FamilyNameCell) == 1 |
---|
55 | fprintf(' Switched %s family to hardware units (%s)\n', FamilyNameCell{1}, datestr(clock,0)); |
---|
56 | else |
---|
57 | fprintf(' Switched %d families to hardware units (%s)\n', length(FamilyNameCell)-ErrorFlag, datestr(clock,0)); |
---|
58 | end |
---|
59 | end |
---|
60 | |
---|