Community Tip - Visit the PTCooler (the community lounge) to get to know your fellow community members and check out some of Dale's Friday Humor posts! X
What's happenning:
I have it set up so that when the user goes through the experience they go through a couple of warnings and then come to a checklist of things that need to be true before they begin the maintenance task. (This is an experience designed to train someone in how to do a maintenance task.) There are two different parts to the experience so they'll have to restart the experience in order to do it all.
The problem is that when you restart the experience that checklist I mentioned earlier doesn't show up and the button that they have to push to acknowledge an item on the checklist doesn't show up either. Meaning that the user is stuck with no way to go forward.
This is what I have so far and the relevant functions:
$scope.app.OkWarning2=function(){
if($scope.view.wdg.Warning2.visible==true){
$scope.PlayAudio('warning');
$scope.hideAll();
$scope.view.wdg.Warning2.visible=false;
$scope.view.wdg["WarningAcknowledged"].visible=false;
$timeout(function(){
$scope.enableUI('CheckListPanel',false,false);
//*********************************************
//These are the widgets that are making trouble
$scope.view.wdg.CheckListPanel.visible=true;
$scope.view.wdg["CheckListImage"].visible=true;
$scope.view.wdg.PingerButton.visible=true;
//*********************************************
$scope.app.speech.synthesizeSpeech({'text': 'Check that the following safety conditions have been met.'});
}, 500);
}
}
$scope.app.checklist=function(){
if($scope.view.wdg.PingerButton.visible == true){
$scope.view.wdg.PingerButton.visible=false;
var Checkmark= "Checkmark"+$scope.i;
$scope.view.wdg[Checkmark].visible=true;
$scope.PlayAudio('check');
if($scope.i<3){
$scope.i=$scope.i+1;
//moves the pinger button around on the checklist - there are four items on the list
$scope.view.wdg.PingerButton.x=Pingerx[$scope.i];
$scope.view.wdg.PingerButton.y=Pingery[$scope.i];
$scope.view.wdg.PingerButton.z=Pingerz[$scope.i];
$scope.view.wdg.PingerButton.visible=true;
}
else{
$scope.begin();
}
}
}
//Governs what happens when the user finishes the checklist
$scope.begin=function(){
$timeout(function(){
$scope.disableUI('CheckListPanel',false,false);
$scope.view.wdg["CheckListImage"].visible=false;
for(var j = 0; j < 4; j++){
Checkmark= "Checkmark"+j;
$scope.view.wdg[Checkmark].visible=false;
}
}, 300);
$scope.setModelSequence($scope.currentSeqKey);
$scope.view.wdg['model-1'].visible=true;
}
If anyone can offer any advice or words of encouragement that would greatly appreciated.
Thanks in advance.
Hello Ike@ACE,
I have some questions :
Best regards,
Samuel
So here's the restart function:
$scope.Restart=function(){
$scope.hideAll();
$scope.view.wdg['InstructionPage1'].visible = true;
$scope.view.wdg['InstructionPage2'].visible = true;
$scope.view.wdg['InstructionPage3'].visible = true;
$scope.i=0;
$scope.view.wdg.PingerButton.x=Pingerx[$scope.i];
$scope.view.wdg.PingerButton.y=Pingery[$scope.i];
$scope.view.wdg.PingerButton.z=Pingerz[$scope.i];
$scope.$applyAsync(()=>{angular.element(document.getElementById('model-1')).scope().reset();});
$scope.$applyAsync(()=>{angular.element(document.getElementById('CheckListPanel')).scope().reset();});
$scope.$applyAsync(()=>{angular.element(document.getElementById('CheckListImage')).scope().reset();});
}
I'm not really sure if the resets of the CheckList items are doing anything, though.
Also, I don't know where the issue is, so I wouldn't know how to make something easily reproducible. However, I do feel like this kind of thing has happened to our team before. But, I'm not sure how fixed it, if we even did. One of the running jokes on our team is that if something on PTC products doesn't work, then start over. We even have a tally going. Unfortunately, I don't have a previous version of the experience, because it is the only one of its kind, currently.
Hello,
I am sorry but it is not very clear from my point of view:
checklist is not a default Widget provided in Vuforia Studio.
Without the Project, it is not possible to help to debug or to understand the root causes.
Only recommendation I can give, it is to add many console.log as possible in each Javascript functions.
It is a good start to track what are the functions ran.
Check also in Developper Tool, in Console tab if some verbose has been reported.
Best regards,
Samuel
Thanks for trying anyway