Category: News
getting errors in ic tester code
Dot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
endDot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
end Dot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
end matlab gui MATLAB Answers — New Questions
I faced a problem with wrokspace value that changes its name every time I run the simulation
Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance!Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance! Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance! workspace, structures MATLAB Answers — New Questions
El desafío de la innovación Hackathon del 28 de mayo al 10 de junio
(El post fue traducido usando Copilot. Por favor, siéntase libre de ofrecer correcciones y mejoras en los comentarios.)
Durante las últimas semanas, 3.000 desarrolladores se han estado preparando para los exámenes de certificación de Azure con el fin de ser invitados a competir en el Hackathon de IA del desafío de la innovación. Estamos patrocinando organizaciones que trabajan para abordar la diversidad en la tecnología. Buscamos dar más oportunidades a las personas para construir en Azure y abrir nuevas puertas para sus carreras. La culminación de su trabajo para obtener las credenciales de Azure es obtener la experiencia de resolver problemas empresariales de una manera empresarial: trabajar en equipo para resolver problemas reales.
Organizaciones participantes
Hemos patrocinado eventos y actividades de capacitación impartidos por BITE-CON, Black Women In Artificial Intelligence, Blacks in Technology, Código Facilito, GenSpark y Women in Cloud. Para calificar para el hackathon, los alumnos obtienen credenciales de Azure que validan sus conocimientos técnicos. Los alumnos eligieron obtener una certificación (AI 102, AZ 204 o DP 203) o ganar tres de las credenciales de habilidades aplicadas de IA.
Equipos que se unen para resolver casos de uso del mundo real
Los alumnos con una credencial que califique recibirán un correo electrónico de la organización que les ayudó con su formación. La invitación por correo electrónico tendrá el enlace para registrarse, crear un perfil de hacker e instrucciones para conectarse con un equipo en torno a un proyecto. Cada equipo elegirá uno de nuestros “Desafíos ejecutivos” para resolver. Los desafíos ejecutivos se seleccionan en función de los comentarios de nuestros clientes empresariales sobre los escenarios que ven que ayudan a sus negocios, resuelven problemas o habilitan nuevas posibilidades. Esperamos abrir el período de registro el 20 de mayo para que los equipos estén listos para hackear a partir del 28 de mayo. Las presentaciones finales deben completarse antes del 10 de junio.
La plataforma HackBox
Este programa se basa en la cultura de Microsoft: nuestra responsabilidad por la inclusión, el amor por construir cosas, aprender unos de otros y compartir nuestra pasión y optimismo por la tecnología. El hackeo es una forma clave de impulsar la colaboración, la creatividad y la experimentación. Estamos entusiasmados de usar la misma plataforma para el desafío de innovación que Microsoft usa para One Week, el hackathon privado más grande del mundo. Gracias a nuestros colegas de The Garage por abrir HackBox para apoyar este evento. Los hackers usarán HackBox para reunirse como equipos de proyectos de hasta 5 miembros para construir una solución funcional a uno de los desafíos ejecutivos. La plataforma también permite a las personas registrarse como asesores que se ponen a disposición para entrenar y brindar orientación. Esto les da a los entrenadores y mentores de nuestras organizaciones patrocinadas la capacidad de continuar apoyando a sus alumnos. Lo más importante es que HackBox permite que todos se unan para apoyarse mutuamente como comunidad. Podrá explorar proyectos, perfiles de otros hackers, descubrir eventos relacionados, acceder a recursos y obtener ideas.
Colabora con tu equipo en GitHub
Los equipos construirán sus proyectos colaborando en GitHub, donde los desarrolladores de software almacenan, comparten y trabajan juntos con otros para escribir código. Tener un proyecto en un repositorio de código en GitHub también lo hace disponible para la comunidad más amplia, por lo que el trabajo de un equipo puede contribuir a crear capacidades para los desarrolladores más allá del hackathon.
Construyendo en Azure
Los equipos podrán elegir las herramientas y tecnologías que crean más adecuadas para resolver su caso de uso objetivo. Si bien las soluciones no tienen que estar construidas al 100% con Azure, para calificar para los premios deben depender de al menos uno de estos servicios de Azure para resolver su caso de uso. (Estos son los servicios de inteligencia artificial y análisis disponibles a través de la prueba gratuita de Azure)
Azure AI Anomaly Detector
Azure AI Bot Service
Azure AI Content Safety
Azure AI Customer Vision
Azure AI Document Intelligence
Azure AI Immersive Reader
Azure AI Language
Azure AI Metrics Advisor
Azure AI Personalizer
Azure AI Translator
Cognitive Search
Data Catalog
Data Factory
Health Bot
Language Understanding (LUIS)
Machine Learning
Open Datasets
Speaker Recognition
Speech to Text
Speech Translation
Text to Speech
Presentar una entrada
Los equipos usan su página de proyecto HackBox para mostrar su trabajo y enviar un proyecto para su evaluación. Cada página de proyecto debe incluir
Una breve descripción de su proyecto
El desafío ejecutivo que resuelve
Enlace a un video que muestra una demostración de su proyecto, incluyendo una presentación que describa los objetivos de su proyecto, los componentes y la arquitectura de su solución, cómo pensó en su enfoque y cualquier aprendizaje clave
La presentación de PowerPoint de su video
Un enlace a su repositorio de código
Premios
Las entradas serán juzgadas por Microsoft y expertos externos en la materia.
Las mejores entradas recibirán premios que se dividirán equitativamente entre todos los miembros.
Un premio principal de $10,000
Dos premios de segundo lugar de $5,000
Tres premios de tercer lugar de $2,500
La evaluación se realizará la semana del 10 al 14 de junio, según los siguientes criterios y ponderaciones
Rendimiento 35%
Innovación 35%
Amplitud de los servicios de Azure utilizados 15%
IA responsable 15%
Una vez que se notifique a los ganadores, destacaremos sus proyectos y sus historias para celebrar sus logros.
Responsabilidad por la diversidad y la inclusión
En Microsoft, la diversidad y la inclusión son fundamentales para nuestra misión de empoderar a todas las personas y organizaciones del planeta para lograr más. Empoderar a las personas subrepresentadas a través de la actualización de habilidades es una parte clave de este enfoque. Para garantizar que los sistemas de IA fomenten la equidad y el empoderamiento para todos, el Estándar de IA Responsable de Microsoft es el manual que usamos para construir sistemas de IA. El Desafío de Innovación une estos hilos de una manera significativa para generar impacto en nuestras comunidades.
Diversidad e inclusión global de Microsoft | Microsoft
Liderazgo de opinión sobre la inclusión en un mundo en evolución | Viaje de inclusión de Microsoft
Principios y enfoque de la IA responsable | Microsoft AI
(El post fue traducido usando Copilot. Por favor, siéntase libre de ofrecer correcciones y mejoras en los comentarios.)
Durante las últimas semanas, 3.000 desarrolladores se han estado preparando para los exámenes de certificación de Azure con el fin de ser invitados a competir en el Hackathon de IA del desafío de la innovación. Estamos patrocinando organizaciones que trabajan para abordar la diversidad en la tecnología. Buscamos dar más oportunidades a las personas para construir en Azure y abrir nuevas puertas para sus carreras. La culminación de su trabajo para obtener las credenciales de Azure es obtener la experiencia de resolver problemas empresariales de una manera empresarial: trabajar en equipo para resolver problemas reales.
Organizaciones participantes
Hemos patrocinado eventos y actividades de capacitación impartidos por BITE-CON, Black Women In Artificial Intelligence, Blacks in Technology, Código Facilito, GenSpark y Women in Cloud. Para calificar para el hackathon, los alumnos obtienen credenciales de Azure que validan sus conocimientos técnicos. Los alumnos eligieron obtener una certificación (AI 102, AZ 204 o DP 203) o ganar tres de las credenciales de habilidades aplicadas de IA.
Equipos que se unen para resolver casos de uso del mundo real
Los alumnos con una credencial que califique recibirán un correo electrónico de la organización que les ayudó con su formación. La invitación por correo electrónico tendrá el enlace para registrarse, crear un perfil de hacker e instrucciones para conectarse con un equipo en torno a un proyecto. Cada equipo elegirá uno de nuestros “Desafíos ejecutivos” para resolver. Los desafíos ejecutivos se seleccionan en función de los comentarios de nuestros clientes empresariales sobre los escenarios que ven que ayudan a sus negocios, resuelven problemas o habilitan nuevas posibilidades. Esperamos abrir el período de registro el 20 de mayo para que los equipos estén listos para hackear a partir del 28 de mayo. Las presentaciones finales deben completarse antes del 10 de junio.
La plataforma HackBox
Este programa se basa en la cultura de Microsoft: nuestra responsabilidad por la inclusión, el amor por construir cosas, aprender unos de otros y compartir nuestra pasión y optimismo por la tecnología. El hackeo es una forma clave de impulsar la colaboración, la creatividad y la experimentación. Estamos entusiasmados de usar la misma plataforma para el desafío de innovación que Microsoft usa para One Week, el hackathon privado más grande del mundo. Gracias a nuestros colegas de The Garage por abrir HackBox para apoyar este evento. Los hackers usarán HackBox para reunirse como equipos de proyectos de hasta 5 miembros para construir una solución funcional a uno de los desafíos ejecutivos. La plataforma también permite a las personas registrarse como asesores que se ponen a disposición para entrenar y brindar orientación. Esto les da a los entrenadores y mentores de nuestras organizaciones patrocinadas la capacidad de continuar apoyando a sus alumnos. Lo más importante es que HackBox permite que todos se unan para apoyarse mutuamente como comunidad. Podrá explorar proyectos, perfiles de otros hackers, descubrir eventos relacionados, acceder a recursos y obtener ideas.
Colabora con tu equipo en GitHub
Los equipos construirán sus proyectos colaborando en GitHub, donde los desarrolladores de software almacenan, comparten y trabajan juntos con otros para escribir código. Tener un proyecto en un repositorio de código en GitHub también lo hace disponible para la comunidad más amplia, por lo que el trabajo de un equipo puede contribuir a crear capacidades para los desarrolladores más allá del hackathon.
Construyendo en Azure
Los equipos podrán elegir las herramientas y tecnologías que crean más adecuadas para resolver su caso de uso objetivo. Si bien las soluciones no tienen que estar construidas al 100% con Azure, para calificar para los premios deben depender de al menos uno de estos servicios de Azure para resolver su caso de uso. (Estos son los servicios de inteligencia artificial y análisis disponibles a través de la prueba gratuita de Azure)
Azure AI Anomaly Detector
Azure AI Bot Service
Azure AI Content Safety
Azure AI Customer Vision
Azure AI Document Intelligence
Azure AI Immersive Reader
Azure AI Language
Azure AI Metrics Advisor
Azure AI Personalizer
Azure AI Translator
Cognitive Search
Data Catalog
Data Factory
Health Bot
Language Understanding (LUIS)
Machine Learning
Open Datasets
Speaker Recognition
Speech to Text
Speech Translation
Text to Speech
Presentar una entrada
Los equipos usan su página de proyecto HackBox para mostrar su trabajo y enviar un proyecto para su evaluación. Cada página de proyecto debe incluir
Una breve descripción de su proyecto
El desafío ejecutivo que resuelve
Enlace a un video que muestra una demostración de su proyecto, incluyendo una presentación que describa los objetivos de su proyecto, los componentes y la arquitectura de su solución, cómo pensó en su enfoque y cualquier aprendizaje clave
La presentación de PowerPoint de su video
Un enlace a su repositorio de código
Premios
Las entradas serán juzgadas por Microsoft y expertos externos en la materia.
Las mejores entradas recibirán premios que se dividirán equitativamente entre todos los miembros.
Un premio principal de $10,000
Dos premios de segundo lugar de $5,000
Tres premios de tercer lugar de $2,500
La evaluación se realizará la semana del 10 al 14 de junio, según los siguientes criterios y ponderaciones
Rendimiento 35%
Innovación 35%
Amplitud de los servicios de Azure utilizados 15%
IA responsable 15%
Una vez que se notifique a los ganadores, destacaremos sus proyectos y sus historias para celebrar sus logros.
Responsabilidad por la diversidad y la inclusión
En Microsoft, la diversidad y la inclusión son fundamentales para nuestra misión de empoderar a todas las personas y organizaciones del planeta para lograr más. Empoderar a las personas subrepresentadas a través de la actualización de habilidades es una parte clave de este enfoque. Para garantizar que los sistemas de IA fomenten la equidad y el empoderamiento para todos, el Estándar de IA Responsable de Microsoft es el manual que usamos para construir sistemas de IA. El Desafío de Innovación une estos hilos de una manera significativa para generar impacto en nuestras comunidades.
Diversidad e inclusión global de Microsoft | Microsoft
Liderazgo de opinión sobre la inclusión en un mundo en evolución | Viaje de inclusión de Microsoft
Principios y enfoque de la IA responsable | Microsoft AI Read More
Collaborate across M365 tenants with Entra ID multi-tenant organization
Hi everyone,
I’m excited to announce the general availability of Microsoft Entra ID multi-tenant organization platform capabilities!
As your organization evolves, you may need to integrate multiple tenants to facilitate collaboration; for example, your organization may have recently acquired a new company, merged with another company, or restructured with newly formed business units. With disparate identity management systems, it can be costly and complex for admins to manage multiple tenants while ensuring users across tenants have access to resources to collaborate.
To enable application sharing across tenants, many of you have already deployed features like B2B collaboration to grant application access across tenants in your organization, cross-tenant access settings to allow for granular access controls, and cross-tenant synchronization to manage the lifecycle of users across tenants.
To further improve employee collaboration across your tenants, many of you have asked for unified chat across tenants in Microsoft Teams and seamless cross-tenant employee engagement and community experiences in Viva Engage.
You can now use Entra ID multi-tenant organizations to improve the cross-tenant collaboration experience in Microsoft Teams and Viva Engage. The capabilities are now generally available with Microsoft Entra ID P1 in the M365 commercial cloud.
Multi-tenant organization capabilities:
Get started with Entra ID multi-tenant organizations:
In this example, we’ll follow Contoso EMEA and Contoso APAC, two divisions of Contoso Conglomerate. Employees from Contoso EMEA and APAC are already using Microsoft Entra to share apps across tenants. Now they need to communicate across tenants using Microsoft Teams and Viva Engage. Leaders in the organization need to share announcements and storylines across the organization and employees need to chat using Teams. Let’s look at how the admins at Contoso configure their multi-tenant organization to meet these needs.
Step 1 – Form a multi-tenant organization
The tenant administrators of Contoso EMEA and Contoso APAC agree to form an Entra ID multi-tenant organization, facilitated by an invite-and-accept flow between them. The Contoso EMEA admin navigates to the M365 admin center and initiates the process, while the Contoso APAC admin confirms. This results in a mutually agreed upon multi-tenant organization of two tenants in both directories.
Microsoft Teams and Viva Engage applications in Contoso EMEA (APAC) will now interpret any external member users of identity provider Contoso APAC (EMEA) as employees of the multi-tenant organization with corresponding improved collaboration experience.
Step 2 – Provision external member users at scale
Microsoft Teams improved collaboration experience relies on reciprocal provisioning of collaborating users. So, Alice of Contoso EMEA should be provisioned as an external member user into Contoso APAC, while Bob of Contoso APAC should be provisioned as external member user into Contoso EMEA.
Viva Engage improved employee engagement experiences rely on centralized provisioning of employees into a central tenant, say Contoso EMEA. As such, Bob of Contoso APAC should be provisioned as an external member user into Contoso EMEA.
Cross-tenant synchronization is the ideal tool to accomplish this at scale, via the Entra admin center for complex identity landscapes, or via the M365 admin center for simplified setups. If you already have your own at scale user provisioning engine, you can continue using it.
Step 3 – Complete requirements by Microsoft Teams or Viva Engage
Any Microsoft Teams requirements such as using the new Teams clients can be found under M365 multi-tenant collaboration, while any Viva Engage configuration requirements can be found under Viva Engage for multi-tenant organizations.
Once your requirements for Microsoft Teams and/or Viva Engage have been completed, your employees will be able to collaborate seamlessly across your organization of multiple tenants, with unified chat experiences in Microsoft Teams and seamless conversations in Viva Engage communities.
How does multi-tenant organization licensing work?
Entra ID multi-tenant organization license requirement – Your employees can enjoy the new multi-tenant organization platform benefits with Microsoft Entra ID P1 licenses. Only one Microsoft Entra ID P1 license is required per employee per multi-tenant organization. For Microsoft Teams and Viva Engage license requirements, please review the M365 multi-tenant organization announcement.
I’m very excited for this milestone which helps your multi-tenant organization achieve better collaboration and communication experiences for your employees! Go and plan your multi-tenant organization rollout today. We love hearing from you and look forward to your feedback on Azure forum.
Joseph Dadzie, Partner Director of Product Management
Linkedin: @joedadzie
Twitter: @joe_dadzie
Learn more about Microsoft Entra:
Related Articles:
What is a multi-tenant organization in Microsoft Entra ID?
What is a cross-tenant synchronization in Microsoft Entra ID?
Properties of a B2B guest user – Microsoft Entra External ID
See recent Microsoft Entra blogs
Dive into Microsoft Entra technical documentation
Join the conversation on the Microsoft Entra discussion space and Twitter
Learn more about Microsoft Security
Microsoft Tech Community – Latest Blogs –Read More
Investigating Industrial Control Systems using Microsoft’s ICSpector open-source framework
Industrial Control Systems (ICS) security has been a subject of research for many years, spurred, in part, by recent state-sponsored ICS-targeting malware and supply-chain attacks like the ZPMC cranes spying concerns that threaten critical infrastructure. Given the potential harm to thousands of people if water treatment facilities, power plants and nuclear reactors or other systems are breached, the stakes are high. Unfortunately, forensics for ICS devices is not as advanced as in IT environments like Windows and Linux. This can stall forensics investigation when incidents occur.
To overcome this challenge, Microsoft released ICSpector, an open-source framework that facilitates the examination of the information and configurations of industrial programmable logic controllers (PLCs). This framework simplifies the process of locating PLCs and detecting any anomalous indicators that are compromised or manipulated. This can assist you in safeguarding the PLCs from adversaries who intend to harm or disrupt their operations.
Many operational technology (OT) security tools based on network layer monitoring, such as Microsoft Defender for IoT, provide network protection for OT/IoT environments, allowing analysts to discover their devices and respond to alerts on vulnerabilities and anomalous behavior. However, one of the biggest challenges is retrieving the code running on the PLC and scanning it as part of an incident response to understand if it was tampered with. This act requires caution, because the PLCs are actively operating vital industrial process. This is where ICSpector can help individuals or facilities perform this task with best practices.
Industrial control systems in brief
Industrial Control Systems (ICS) and Operational Technology (OT) are critical to modern society, powering everything from power grids and water treatment plants to manufacturing facilities and transportation systems. These systems typically rely on a combination of hardware and software components to perform their functions. Programmable logic controllers (PLCs) are used to manage and control the various processes within an industrial environment. As these systems become increasingly digitized and interconnected, they are also becoming more vulnerable to cyberattacks.
Due to their critical role in ensuring the smooth operation of industrial processes, and the physical danger or extreme financial losses that could result if attacked, ICS devices are prime targets of cyberattacks, making ICS security an increasingly critical issue in today’s digital landscape.
With ICS cyberattacks on the rise, facilities require a holistic solution to address the unique nature of critical infrastructure environments. A common threat involves ICS malware attempting to modify the controller program logic to disrupt operations and cause physical harm.
Extracting data from a controller can be challenging, as it requires specialized expertise in communicating with the device and understanding the specific, and at many times proprietary, protocols used to transmit and store data. This expertise is critical for conducting forensic operations because investigators must be able to extract specific data from a controller to identify security risks and determine the root cause of issues. The challenges around securing OT and the potentially large impact from even one controller being infected in a critical environment, highlight the need for effective security measures and forensic tools to investigate and remediate incidents.
Challenges in ICS forensics
ICS forensics differs from standard IT forensics, because ICS environments possess distinctive features that distinguish them.
Cybersecurity forensics in IT environments involves the collection, analysis, and preservation of digital evidence to identify the cause and extent of a security breach or cyberattack. This includes analyzing network traffic, logs, and system data to identify the source of the attack and to patch vulnerabilities. In contrast, forensics in OT environments involves analyzing ICS data, including data from sensors and controllers used in manufacturing and industrial settings.
While OT communication protocols and execution methods are based on general principles, each vendor can implement its own protocol for data exchange and management. As a result, there is no universal protocol that applies to all controllers, and researchers must investigate each device separately, from its communication patterns to its internal data structure.
Another challenge has to do with talent and tools. Because OT and IT environments were historically isolated and had distinct security operations center teams with different tools, most incident response specialists lack the expertise to analyze OT. And while the IT domain has a variety of forensics tools, such as Autopsy, The Sleuth Kit and FTK, the OT forensics domain is still emerging, lacks a common methodology, and requires OT experts to develop their own solutions.
Specialized tools and techniques have started to emerge to address the unique challenges of conducting investigations in ICS environments. These include the Top 20 Secure PLC Coding Practices, specific OT protocols implementations available on GitHub, and paid tools for an overview of controller programs for a specific set of protocols. Notably missing from these options has been an open-source solution that provides a comprehensive implementation of OT protocols and gives forensics investigators the ability to analyze extracted data and drill down into informative and suspicious areas within the controller loaded project.
ICSpector for industrial engineers and cybersecurity analysts
Microsoft aspired to fill the gap in the market by creating the ICSpector framework. Written in Python and available on GitHub, ICSpector is a framework with tools that enable investigators to:
Scan their network for programmable logic controllers.
Extract project configuration and code from controllers.
Detect any anomalous components within ICS environments.
Security experts can use these forensic artifacts to identify compromised devices as part of manual verification, automated monitoring of tasks, or during incident response. The framework’s modular, flexible design makes it convenient for investigators to customize it to their specific needs.
The framework is composed of several components that can be developed and executed separately. The overall architecture is as follows:
The network scanner identifies devices that communicate in the supported OT protocol and ensures they are responsive, based on a provided IP subnet. Alternatively, a user can provide a specific IP list that was exported from OT security products such as MDIoT, and the network scanner will only verify these devices are connected before beginning data extraction. After feeding the plugin the list of available devices, it extracts the PLC project metadata and logic. Then, the analyzer converts the raw data into a human-readable form and extracts different logic to highlight areas of the project artifacts that usually indicate malicious activity. The framework lets each component run independently with the required input. You can easily modify each component, adapting the operation to current needs, such as introducing protocol changes and analysis methods or altering the output. With the framework, users gain an inventory of assets based on the protocol scanning ability. In the data extraction phase, you can create snapshots of the controller projects and then compare changes over time.
Note: while the framework is not designed to disrupt the production process, due to the sensitive nature of ICS environments, we advise executing the data extracting component in a monitored environment.
The forensic analysis component of ICSpector allows to dive deep into malicious modifications of controller code. With the ICSpector framework, you can extract timestamp outliers indicating that someone changed the controller code at an unexpected time. Author information is provided as well to help detect suspicious code writers. You can extract network capabilities to surface unexpected communication ports and network libraries. Tasks are the code components responsible for the entire code execution, and the framework gives you an overview of the execution flow Tasks are data structures that trigger the execution of the PLC project, and the framework gives you an overview of existing tasks and their configuration. Additionally, the entire call graph is exported to obtain a clear view of the execution flow. Stuxnet, a sophisticated computer worm that was responsible for causing significant damage to Iran’s nuclear program in 2010, altered a cyclic task to monitor its malicious activities and added malicious logic to the main block of the program. Since the code running on the controller may differ from an engineer’s hard copy, the framework lets you compare the differences between the online and the offline code to catch malicious changes. All of these analysis capabilities could have helped detect the presence of Stuxnet in the network.
Get started with ICSpector
ICSpector is a novel solution that enables OT experts and cybersecurity analysts to enhance their reactive and proactive incident response capabilities in ICS environments. The OT cybersecurity community can participate in and benefit from security efforts in OT forensics, advancing our vision of better security practices in the OT field.
ICSpector can be used in conjunction with Microsoft Defender for IoT, Microsoft Security’s solution for defending IoT and ICS/OT devices that maps out your OT network and alerts you of malicious activity. Defender for IoT, or any other OT security solution, can help with both proactive and reactive OT incident response. Try ICSpector to see how it could benefit your organization. Our how-to guide will walk you through the installation of the framework and explain the components and how to use them in your environment.
Currently, the system supports three OT protocols: Siemens S7Comm, which is compatible with the S7-300/400 series, Rockwell RSLogix, using the Common Industrial Protocol, and Codesys V3, which is a widely used SDK for industrial control devices and is implemented by different vendors.
We encourage you to contribute to the tool by adding new OT protocols and forensic logic.
Learning about ICS basics, PLC programming and investigation methodologies can be done through the webinar, hosted by Microsoft Defender for IoT Research team.
To get started with OT security, watch the “Introduction to ICS/OT Security” webinar series, hosted by Microsoft Security Community.
Microsoft Tech Community – Latest Blogs –Read More
Multi-tenant organization capabilities now available in Microsoft 365
Today we’re thrilled to announce a robust set of multi-tenant organization (MTO) capabilities within Microsoft 365, now generally available to enhance your organization’s collaboration, communication, and administration across multiple tenants. These capabilities span Microsoft 365 People Search, Microsoft Teams, Viva Engage and Microsoft Defender XDR, which can be enabled via the Microsoft 365 admin center or Microsoft Entra admin center.
A tenant is a digital representation of your organization, which provides a reliable architectural foundation that allows for security, reliability, productivity, collaboration, and compliance at scale, that protects data by default. While many organizations start their journey with a single tenant, factors including organic growth, regulatory compliance, mergers, acquisitions, and divestitures can all contribute to how many tenants an organization will own and manage, and how users are segmented in those tenants. This segmentation can cause frustration when users need to communicate and collaborate across tenant boundaries, whilst IT admins need to perform the same set of administrative tasks per tenant to maintain their organization.
The capabilities we discuss below help multi-tenant organizations address these complexities, while staying compliant and secure:
Find people across organizations easily: Search for and communicate with colleagues in a unified manner with improved people search. Every search now returns a single, accurate result, simplifying how you connect with the right colleague.
Streamlined workforce collaboration: Engage in calls, chats, and meetings across tenants without the barriers of meeting lobbies. Enjoy immediate access to meeting content and collaborative tools in real time.
Unlock new ways for employees and leaders to connect: We’ve broadened the capabilities in Viva Engage, facilitating cross-tenant announcements and enabling community interaction and campaign participation that extend beyond tenant boundaries.
Manage incidents across tenants: Microsoft Defender XDR provides a single, unified view of all tenants your organization manages, allowing for swift incident investigation and advanced threat hunting without the need to switch between tenant views.
Simplify multi-tenant management: The newly defined multi-tenant organization boundary in Microsoft Entra ID P1 simplifies the enablement, configuration and management of the capabilities above. Whether through Microsoft Graph APIs or the Microsoft 365 Admin Center, setting up is intuitive and straightforward.
Let’s look at these capabilities in a bit more detail.
Find people across organizations easily with People Search
The multi-tenant organization (MTO) People Search is a collaboration feature that enables search and discovery of people across multiple tenants. A tenant admin can enable cross-tenant synchronization that allows users to be synced to another tenant and be discoverable in its global address list. Once enabled, users can search and discover synced user profiles from the other tenant and view their corresponding people cards.
To learn more, visit Microsoft 365 multi-tenant Organization People Search.
Streamline workforce collaboration with Microsoft Teams
Once administrators form a multi-tenant organization in the Entra ID platform (generally available today), organizations with the new Teams desktop client will automatically receive the Teams MTO features with no additional configuration.
Users can now join a meeting, chat, call, or collaborate in a channel hosted in another tenant, and simultaneously compose chat messages in their own tenant. Users can receive cross-tenant notifications for all accounts and tenants added to the Teams client, no matter which one is currently in focus.
People search is also improved. Searches for coworkers in a multi-tenant organization could often return multiple results for the same person. With the new MTO capabilities in the new Teams client, searching for a coworker in an MTO will return a single result, helping you to identify the correct colleague and keep your conversations in one place.
Users that join a meeting in another tenant can now bypass the meeting lobby, have access to all in-meeting content and resources and can collaborate in real time. Learn more about Teams multi-tenant capabilities here.
Unlock new ways for employees and leaders to connect using Viva Engage
Last year, Viva Engage introduced the ability to send announcements and storyline posts across tenants, and now we’re excited to expand the multitenant (MTO) capabilities within Engage to unlock new ways for employees and leaders to connect, share, and measure participation beyond their tenant boundaries. Learn more about how Viva Engage uses the hub & spoke model for MTO.
MTO Communities – Now communities can include employees from other tenants to view content, post, reply, and participate within that community. This is in preview now and will be fully available in June.
MTO Campaigns – Create official campaigns that are available for all employees to join in. This new feature allows employees to follow and take part in the conversations and help drive the campaign forward, regardless of their tenant. This is in preview now and will be available in June.
MTO AMAs & Events – Bring all employees together to participate in Ask Me Anything (AMAs) across tenant boundaries with leaders. This feature will be available in preview in June. Later this year, employees will also be to join live events via communities or Viva Engage events so leaders can host townhalls and company-wide meetings beyond their own tenant to include all stakeholders.
MTO Analytics – Get a horizontal view of engagement across all workloads and tenants so you can understand the reach and engagement of employees. Once available, this provides detailed metrics for communities, campaigns, events, and AMAs. MTO Analytics are already available for announcements and storyline posts.
Please note: MTO capabilities in Viva Engage require a Viva suite license or an Employee Communications & Communities (C&C) license.
Manage incidents across tenants with Microsoft Defender XDR
Security operations teams that work with multiple tenants need a reliable and comprehensive security solution that can keep up with modern threats and provide unified and connected experience to enhance their security operations. Microsoft Defender XDR now delivers unified investigation and response experience for multi-tenant organizations alongside native protection across endpoints, identities, email, collaboration tools, cloud apps, and data.
With multi-tenant management in Microsoft Defender XDR, security operations teams can quickly investigate incidents and perform advanced hunting across data from multiple tenants, removing the need for administrators to log in and out of each individual tenant. Learn more about Microsoft Defender XDR and multi-tenant capabilities here.
Enable Microsoft 365 multi-tenant capabilities with Microsoft Entra ID
Multi-tenant organization platform capabilities are now rolling out to standard production tenants in Microsoft 365. To deliver the above capabilities, administrators can enable multi-tenant capabilities in the Microsoft 365 admin center and configure which users in the organization can take advantage of multi-tenant capabilities using either Microsoft 365 admin center or Microsoft Entra admin center.
This approach allows you to define a boundary around the Entra ID tenants that your organization owns, facilitated by an invite-and-accept flow between tenant administrators. Learn more about the process in the Microsoft 365 admin center here and using Microsoft Graph API’s here. We recommend the use of the Microsoft 365 admin center to simplify the setup experience and to view your newly created MTO:
Following the formation of the multi-tenant organization, Microsoft offers two methods to provision employees into neighboring multi-tenant organization tenants at scale.
For a simplified experience, stay in the Microsoft 365 admin center to sync users into multiple tenants in your multi-tenant organization. We recommend this method for smaller multi-tenant organizations who plan on all employees receiving access to all multi-tenant organization tenants.
For a customizable sync experience, head over to Entra ID cross-tenant synchronization. Cross-tenant synchronization is highly configurable and allows the provisioning of any multi-hub multi-spoke identity landscape. We recommend this method for enterprise organizations of complex identity landscapes. Either method works. Choose the one that works best for your specific organization!
If you already have your own at-scale user provisioning engine, you can enjoy the new multi-tenant organization benefits while continuing to use your own engine to manage the lifecycle of your employees. Learn more about the optional use of cross-tenant synchronization here.
Conclusion
Multi-tenant capabilities simplify the process for organizations to arrange their tenants as secure, autonomous entities connected by common policies and foundational services to move their collective mission forward. With the release of multi-tenant capabilities for Microsoft 365, administrators can now connect people and organizations without impacting collaboration whilst respecting security & compliance boundaries.
Get started with multi-tenant organization by using the links above, and don’t forget to review the Entra ID multi-tenant documentation and list of limitations. Provide us with feedback about your MTO experience here, and look out for more announcements in the coming months as we continue to invest in product and capability enhancements across Microsoft 365 that make these changes easier for all customers, regardless of size and complexity.
Microsoft Tech Community – Latest Blogs –Read More
Deep dive into the Surface IT Toolkit
If you’re an IT administrator who manages a fleet of devices, you know how important it is to have the right tools for deployment and management. You also know how challenging it can be to find and use those tools, especially when they are scattered across different locations and versions. That’s why we are excited to announce the Surface IT Toolkit, a modern desktop application that compiles essential commercial tools and streamlines the Surface device management experience for IT admins – all in a single application.
Surface IT Toolkit is designed to provide simplified access to important tools that complement cloud and traditional management. You can follow step-by-step instructions to configure, update, or troubleshoot your devices. Not only does it provide a centralized location, the Surface IT Toolkit also ensures you are using the latest versions of our tools and installers. You don’t need to worry about outdated or incompatible versions, the app utilizes MSIX which automatically checks for updates and downloads them for you.
In this blog post, we’ll take a closer look at what’s included and what’s new with the Surface IT Toolkit.
Home
After your initial configuration, the first screen you’ll see when you open the toolkit is the home screen where you’ll find quick tasks and choose the managed devices in your fleet which helps optimize the UI of the app. You can also see the status of your tools and installers, and access the settings and feedback options.
Data Eraser
Data Eraser removes data from a Surface device using a NIST [Special Publication 800-88 Revision 1 NVM Express] format command. Additionally, it allows for the creation of certificates of sanitization for record keeping and auditing purposes. This is useful when you need to repurpose, recycle, or retire a device and ensure that no sensitive data remains on it.
What’s new with Data Eraser:
You can easily generate a certificate of sanitization after the wiping of an SSD.
The tool now provides the ability to complete a disk verification post wipe.
UEFI Configurator
UEFI Configurator lets organizations apply Surface Enterprise Management Mode (SEMM) UEFI configurations on supported devices and docks so IT staff can effectively control and deactivate components at the firmware level. This can help enhance security and compliance by preventing unauthorized changes to the device settings.
What’s new with UEFI Configurator:
In a single pass of the tool, you can create all packages needed for devices and docks (both configuration and reset).
We’re building parity between app UI and configurations historically only available to PowerShell, for example you now control USB-C ports through the UI, including USB-C Dynamic & Granular disablement.
For those utilizing PowerShell for SEMM deployment, sample PowerShell scripts are now built right into toolkit, so you quickly copy the samples into your script editor of choice and build a solution for your environment.
Recovery Tool
Recovery Tool provides the ability to perform a device reset to revert a device back to a factory state for troubleshooting scenarios. It will also help manage previously downloaded factory images to assist in re-use. This can help you resolve common issues and restore the device to its original performance.
What’s new with Recovery Tool:
Guided processes that no longer require serial numbers and simplifies the steps for building a Bare Metal Recovery (BMR) USB.
The tool provides the ability to build new and build from an existing image that you’ve already downloaded so you don’t have to fuss with version control.
We’re also providing more insight into what’s included in the image itself like what version of Windows and Microsoft 365 Apps are included.
Tool Library
Tool Library stores the latest versions of additional tools and installers that can be deployed to end users and provides IT a description of their purpose and links to supporting documentation. These include Surface Asset Tag Tool, Surface Diagnostic Toolkit for Business, Surface Brightness Control Tool, and more.
What’s new with Tool Library:
Centralized location for our other installers and tools.
Installers and tools are always up-to-date.
You can download the IT Toolkit as an MSIX package which is available from IT Pro Download Center here. You’ll also find the download link in the Surface Management and Support Suite under the Surface IT Tools section. You’ll also find the download link in the Surface Management and Support Suite under the Surface IT Tools section.
As always, be sure to check back here for more updates on managing and securing your Surface devices.
Microsoft Tech Community – Latest Blogs –Read More
How to sign in to a Microsoft account – Microsoft Support
Use your Microsoft account to sign in to Microsoft services like Windows, Microsoft 365, OneDrive, Skype, Outlook, and Xbox Live.
Unable to extract logged signal data when using simulink test and parallel compuation toolbox
MATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink testMATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink test MATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink test simulink test, parallel computing toolbox MATLAB Answers — New Questions
Errors occurs while converting the code created using 5G Toolbox’s SIB1 Recovery Example to C code using Matlab Coder.
I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder?I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder? I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder? matlab coder, 5g toolbox, sib1 recovery example MATLAB Answers — New Questions
data validation allowing invalid values (list, source list have blank cells)
Hello!
I am trying to use data validation using a named range (list validation).
The source range is a large range (5000 rows) and most of those rows are blank.
But, the validation is allowing invalid values (values outside the list). If I force a value on the whole range (like a – instead of empty cells) it will work as it should and block invalid values, so I know for sure it’s related to the empty cells.
I tried to turn off ignore blank, but the issue persists.
I need the list with the empty cells because this is a list that will increase with time, so I can’t fix the list size.
Hello!I am trying to use data validation using a named range (list validation).The source range is a large range (5000 rows) and most of those rows are blank.But, the validation is allowing invalid values (values outside the list). If I force a value on the whole range (like a – instead of empty cells) it will work as it should and block invalid values, so I know for sure it’s related to the empty cells.I tried to turn off ignore blank, but the issue persists.I need the list with the empty cells because this is a list that will increase with time, so I can’t fix the list size. Read More
Azure Synapse Store Procedure Error while updating
Hello,
I am new to Azure Synapse Analytics. I have an XLS file containing data and I want to upsert that data into an Azure Synapse dedicated SQL table.
I have created a stored procedure to upsert the data into the table.
I have used a lookup activity to load the XLS file and pass the JSON data to the stored procedure via a stored procedure activity.
It is working for inserting the data, but while updating, it is giving me the following error:
{
“errorCode”: “2402”,
“message”: “Execution failed against SQL Server. Please contact the SQL Server team if you need further support. SQL error number: 468. Error Message: Cannot resolve the collation conflict between “SQL_Latin1_General_CP1_CI_AS” and “Latin1_General_BIN2″ in the equal to operation.”,
“failureType”: “UserError”,
“target”: “Stored procedure for Insert Email”,
“details”: []
}
Hello,I am new to Azure Synapse Analytics. I have an XLS file containing data and I want to upsert that data into an Azure Synapse dedicated SQL table.I have created a stored procedure to upsert the data into the table.I have used a lookup activity to load the XLS file and pass the JSON data to the stored procedure via a stored procedure activity.It is working for inserting the data, but while updating, it is giving me the following error:{“errorCode”: “2402”,”message”: “Execution failed against SQL Server. Please contact the SQL Server team if you need further support. SQL error number: 468. Error Message: Cannot resolve the collation conflict between “SQL_Latin1_General_CP1_CI_AS” and “Latin1_General_BIN2″ in the equal to operation.”,”failureType”: “UserError”,”target”: “Stored procedure for Insert Email”,”details”: []} Read More
Retrieve the same list of “Active”Risky users (as in portal) using KQL with Log Analytics Workspace
We have enabled the Diagnostic Settings to capture Risky users in our Azure Entra ID.
I want to automate a daily Risky Users report using Logic Apps for the support teams. For this I need a query to show me the list of Risky Users as they are Azure Portal (Please refer attached Image). If someone has already a query for this can you please share which captures all Risky users with Risky Signins.
Overall I want to capture all Risky Users with Risky SignIns.
So far I am working on this query , but this is not showing every user as in the report.
AADRiskyUsers
| where RiskLastUpdatedDateTime > ago(1d)
| where RiskLevel in ( “high” , “medium” )
| where RiskState == “atRisk”
| take 100
We have enabled the Diagnostic Settings to capture Risky users in our Azure Entra ID.I want to automate a daily Risky Users report using Logic Apps for the support teams. For this I need a query to show me the list of Risky Users as they are Azure Portal (Please refer attached Image). If someone has already a query for this can you please share which captures all Risky users with Risky Signins. Overall I want to capture all Risky Users with Risky SignIns. So far I am working on this query , but this is not showing every user as in the report. AADRiskyUsers
| where RiskLastUpdatedDateTime > ago(1d)
| where RiskLevel in ( “high” , “medium” )
| where RiskState == “atRisk”
| take 100 Read More
Get rid of new section background options on modern pages
Hi,
on modern SharePoint-Online pages, does anybody know how to remove unwanted background options from the layout section?
We have a strict CI and custom themes and we don’t want the new backgrounds. Does anybody know a Power-Shell Cmdlet to do so?
Hi,on modern SharePoint-Online pages, does anybody know how to remove unwanted background options from the layout section? We have a strict CI and custom themes and we don’t want the new backgrounds. Does anybody know a Power-Shell Cmdlet to do so? Read More
The Innovation Challenge Hackathon May 28 – June 10
For the past few weeks 3,000 developers have been preparing for Azure certification exams in order to get invited to compete in the Innovation Challenge AI Hackathon. We are sponsoring organizations who work to address diversity in technology. We’re looking to give more people an opportunity to build on Azure and to open new doors for their careers. The capstone of their work towards getting Azure credentials is to get the experience of solving enterprise problems in an enterprise way—working as a team to solve real problems.
Participating organizations
We’ve sponsored training events and activities delivered by BITE-CON, Black Women In Artificial Intelligence, Blacks in Technology, Código Facilito, GenSpark, and Women in Cloud. In order to qualify for the hackathon, learners earn Azure credentials that validate their technical knowledge. Learners chose to either get a certification (AI 102, AZ 204, or DP 203) or to earn three of the AI Applied Skills credentials.
Teams coming tougher to solve for real world use cases
Learners with a qualifying credential will get an email from the organization that helped with their skilling. The email invitation will have the link to register, to create a hacker profile, and instructions for how to connect with a team around a project. Each team will choose one of our “Executive Challenges” to solve for. The Executive Challenges are selected based on input from our enterprise customers about the scenarios they see helping their businesses, solving problems or enabling new possibilities. We’re looking to open up the registration period on May 20 so that teams are ready to hack starting May 28. Final submissions are to be completed by June 10.
The HackBox Platform
This program is grounded in Microsoft’s culture—our accountability for inclusion, love of building things, learning from each other, and sharing our passion and optimism about technology. Hacking is a key way that we drive collaboration, creativity, and experimentation. We’re excited to be using the same platform for the Innovation Challenge that Microsoft uses for One Week, the world’s largest private hackathon. Thank you to our colleagues at The Garage for opening up HackBox to support this event. Hackers will use HackBox to come together as project teams of up to 5 members to build a working solution to one of the Executive Challenges. The platform also enables people to register as Advisors who make themselves available to coach and provide guidance. This gives the trainers and mentors from our sponsored organizations the ability to continue supporting their learners. Most importantly, HackBox enables everyone to come together to support each other as a community. You’ll be able to browse projects, other hacker’s profiles, discover related events, access resources, and get ideas.
Collaborate with your team on GitHub
Teams will build their projects by collaborating on GitHub, where software developers store, share, and work together with others to write code. Having a project in a code repository on GitHub also makes it available to the broader community so a team’s work can contribute to building capabilities for developers beyond the hackathon.
Building on Azure
Teams will be able to choose the tools and technologies they think are best suited to solve for their target use case. While solutions don’t have to be 100% built with Azure, in order to qualify for prizes they must depend on at least one of these Azure services in order to solve for their use case. (These are the AI and analytics services available through the free Azure trial)
Azure AI Anomaly Detector
Azure AI Bot Service
Azure AI Content Safety
Azure AI Customer Vision
Azure AI Document Intelligence
Azure AI Immersive Reader
Azure AI Language
Azure AI Metrics Advisor
Azure AI Personalizer
Azure AI Translator
Cognitive Search
Data Catalog
Data Factory
Health Bot
Language Understanding (LUIS)
Machine Learning
Open Datasets
Speaker Recognition
Speech to Text
Speech Translation
Text to Speech
Submitting an entry
Teams use their HackBox Project page to showcase their work and submit a project for judging. Each project page must include
A short description of your project
The Executive Challenge you solve for
Link to a video featuring a demo of your project, including a presentation describing your project goals, your solution components and architecture, how you thought through your approach, and any key learnings
The PowerPoint presentation from your video
A link to your code repository
Prizes
Entries will be judged by Microsoft and 3rd party subject matter experts.
The best entries will be awarded prizes to be divided equally among all members.
One $10,000 top prize
Two $5,000 second place prizes
Three $2,500 third place prizes
Judging will happen the week of June 10 – 14, based on the following criteria and weighting
Performance 35%
Innovation 35%
Breadth of Azure services used 15%
Responsible AI 15%
Once winners are notified, we’ll highlight their projects and their stories to celebrate their achievements.
Accountability for Diversity and Inclusion
At Microsoft, diversity and inclusion is central to our mission to empower every person and every organization on the planet to achieve more. Empowering underrepresented people through upskilling is a key part of this focus. To ensure that AI systems foster equity and empowerment for everyone, the Microsoft Responsible AI Standard is the playbook we use for building AI systems. The Innovation Challenge brings these threads together in a meaningful way to deliver impact for our communities.
Microsoft Global Diversity and Inclusion | Microsoft
Thought leadership on Inclusion in an evolving world | Microsoft Inclusion Journey
Responsible AI Principles and Approach | Microsoft AI
For the past few weeks 3,000 developers have been preparing for Azure certification exams in order to get invited to compete in the Innovation Challenge AI Hackathon. We are sponsoring organizations who work to address diversity in technology. We’re looking to give more people an opportunity to build on Azure and to open new doors for their careers. The capstone of their work towards getting Azure credentials is to get the experience of solving enterprise problems in an enterprise way—working as a team to solve real problems.
Participating organizations
We’ve sponsored training events and activities delivered by BITE-CON, Black Women In Artificial Intelligence, Blacks in Technology, Código Facilito, GenSpark, and Women in Cloud. In order to qualify for the hackathon, learners earn Azure credentials that validate their technical knowledge. Learners chose to either get a certification (AI 102, AZ 204, or DP 203) or to earn three of the AI Applied Skills credentials.
Teams coming tougher to solve for real world use cases
Learners with a qualifying credential will get an email from the organization that helped with their skilling. The email invitation will have the link to register, to create a hacker profile, and instructions for how to connect with a team around a project. Each team will choose one of our “Executive Challenges” to solve for. The Executive Challenges are selected based on input from our enterprise customers about the scenarios they see helping their businesses, solving problems or enabling new possibilities. We’re looking to open up the registration period on May 20 so that teams are ready to hack starting May 28. Final submissions are to be completed by June 10.
The HackBox Platform
This program is grounded in Microsoft’s culture—our accountability for inclusion, love of building things, learning from each other, and sharing our passion and optimism about technology. Hacking is a key way that we drive collaboration, creativity, and experimentation. We’re excited to be using the same platform for the Innovation Challenge that Microsoft uses for One Week, the world’s largest private hackathon. Thank you to our colleagues at The Garage for opening up HackBox to support this event. Hackers will use HackBox to come together as project teams of up to 5 members to build a working solution to one of the Executive Challenges. The platform also enables people to register as Advisors who make themselves available to coach and provide guidance. This gives the trainers and mentors from our sponsored organizations the ability to continue supporting their learners. Most importantly, HackBox enables everyone to come together to support each other as a community. You’ll be able to browse projects, other hacker’s profiles, discover related events, access resources, and get ideas.
Collaborate with your team on GitHub
Teams will build their projects by collaborating on GitHub, where software developers store, share, and work together with others to write code. Having a project in a code repository on GitHub also makes it available to the broader community so a team’s work can contribute to building capabilities for developers beyond the hackathon.
Building on Azure
Teams will be able to choose the tools and technologies they think are best suited to solve for their target use case. While solutions don’t have to be 100% built with Azure, in order to qualify for prizes they must depend on at least one of these Azure services in order to solve for their use case. (These are the AI and analytics services available through the free Azure trial)
Azure AI Anomaly Detector
Azure AI Bot Service
Azure AI Content Safety
Azure AI Customer Vision
Azure AI Document Intelligence
Azure AI Immersive Reader
Azure AI Language
Azure AI Metrics Advisor
Azure AI Personalizer
Azure AI Translator
Cognitive Search
Data Catalog
Data Factory
Health Bot
Language Understanding (LUIS)
Machine Learning
Open Datasets
Speaker Recognition
Speech to Text
Speech Translation
Text to Speech
Submitting an entry
Teams use their HackBox Project page to showcase their work and submit a project for judging. Each project page must include
A short description of your project
The Executive Challenge you solve for
Link to a video featuring a demo of your project, including a presentation describing your project goals, your solution components and architecture, how you thought through your approach, and any key learnings
The PowerPoint presentation from your video
A link to your code repository
Prizes
Entries will be judged by Microsoft and 3rd party subject matter experts.
The best entries will be awarded prizes to be divided equally among all members.
One $10,000 top prize
Two $5,000 second place prizes
Three $2,500 third place prizes
Judging will happen the week of June 10 – 14, based on the following criteria and weighting
Performance 35%
Innovation 35%
Breadth of Azure services used 15%
Responsible AI 15%
Once winners are notified, we’ll highlight their projects and their stories to celebrate their achievements.
Accountability for Diversity and Inclusion
At Microsoft, diversity and inclusion is central to our mission to empower every person and every organization on the planet to achieve more. Empowering underrepresented people through upskilling is a key part of this focus. To ensure that AI systems foster equity and empowerment for everyone, the Microsoft Responsible AI Standard is the playbook we use for building AI systems. The Innovation Challenge brings these threads together in a meaningful way to deliver impact for our communities.
Microsoft Global Diversity and Inclusion | Microsoft
Thought leadership on Inclusion in an evolving world | Microsoft Inclusion Journey
Responsible AI Principles and Approach | Microsoft AI Read More
populate a sheet
I have tried selecting and pulling down info from populated cells to populate the cells below but nothing happens.
I have tried selecting and pulling down info from populated cells to populate the cells below but nothing happens. Read More
How can I prevent window titles from overlapping in a Maui app with shell navigation and modals?
I’m developing a Maui app with shell navigation and modals, and I’m encountering an issue with overlapping window titles. When navigating from the main page to another page using shell navigation, a back button appears, causing the window title to shift slightly to the right. However, when I push a modal on that page, the window title on the modal page remains in its original position. This results in both window titles overlapping and creating a visually awkward effect.
I’ve attached images for reference
Any insights, code snippets, or suggestions would be immensely helpful. Thank you!
I’m developing a Maui app with shell navigation and modals, and I’m encountering an issue with overlapping window titles. When navigating from the main page to another page using shell navigation, a back button appears, causing the window title to shift slightly to the right. However, when I push a modal on that page, the window title on the modal page remains in its original position. This results in both window titles overlapping and creating a visually awkward effect.I’ve attached images for reference Any insights, code snippets, or suggestions would be immensely helpful. Thank you! Read More
inserting break rows in a data set
Hi,
I have attached a data set. in columns. i want to insert a row when the number in column C changes. the input data in Columns A, B, C, D and E. I have attached screen shots, hopefully makes sense!
thanks
Tom
Hi, I have attached a data set. in columns. i want to insert a row when the number in column C changes. the input data in Columns A, B, C, D and E. I have attached screen shots, hopefully makes sense! thanks Tom Read More
Can we integrate IFrame in teams bot
Hi Team,
We are using the teams bot for QNA purposes and we wanted to integrate the MS booking feature in the bot.
Currently, we have tried to use the embedded link of ms booking. But one security issue which we see is that MS booking page is opening a browser which is outside the bot.
In MS booking page we could see the IFrame also, can we integrate the iframe in Teams bot so that it will show as a popup in Teams itself so that it will not log in to outside the bot.
Hi Team,We are using the teams bot for QNA purposes and we wanted to integrate the MS booking feature in the bot.Currently, we have tried to use the embedded link of ms booking. But one security issue which we see is that MS booking page is opening a browser which is outside the bot.In MS booking page we could see the IFrame also, can we integrate the iframe in Teams bot so that it will show as a popup in Teams itself so that it will not log in to outside the bot. Read More
New Planner: Plans not staying pinned; Still no Outlook integration?!
It’s April 25th, I’ve been working with the new Planner in Teams for a couple of weeks now, and I have 2 main issues so far. These apply to the new Planner within Teams desktop for Windows:
Within the Planner app in Teams, my pinned plans are not staying pinned. Not just from one day to the next or when I close and restart Teams (which, TBH, would still be annoying), but they literally unpin themselves within minutes sometimes even when I’ve left Teams open. STILL NO BUILT-IN INTEGRATION WITH OUTLOOK! Flagged emails showing in My Tasks is basically USELESS to me, because Flagged Email Tasks can’t be moved to Planner plans, which is where we keep track of the majority of our work. I have coworkers who are married to email and get lots of work requests and to-dos from email that are related to my team’s Planner plans/projects. (Yes, there are ways to use Power Automate to get around this, but I am honestly still shocked that after all the talk we heard of “a unified experience with the new Planner,” this BASIC function is still not built-in from the get-go.)
If anyone has fixes for these, please let me know. Otherwise, Microsoft please help!
It’s April 25th, I’ve been working with the new Planner in Teams for a couple of weeks now, and I have 2 main issues so far. These apply to the new Planner within Teams desktop for Windows:Within the Planner app in Teams, my pinned plans are not staying pinned. Not just from one day to the next or when I close and restart Teams (which, TBH, would still be annoying), but they literally unpin themselves within minutes sometimes even when I’ve left Teams open. STILL NO BUILT-IN INTEGRATION WITH OUTLOOK! Flagged emails showing in My Tasks is basically USELESS to me, because Flagged Email Tasks can’t be moved to Planner plans, which is where we keep track of the majority of our work. I have coworkers who are married to email and get lots of work requests and to-dos from email that are related to my team’s Planner plans/projects. (Yes, there are ways to use Power Automate to get around this, but I am honestly still shocked that after all the talk we heard of “a unified experience with the new Planner,” this BASIC function is still not built-in from the get-go.)If anyone has fixes for these, please let me know. Otherwise, Microsoft please help! Read More