Skip to content

Commit

Permalink
Update of AASX on server by AASX Package Explorer (#56)
Browse files Browse the repository at this point in the history
Add files for security check on server
Add tree update for i40 language

OPC

do not fail when reading Namespace=null
serialize OPC values as InvariantCulture
Add changes to connect registry with AASX Package Explorer

getaasx with securityInit
GET AAS without security

Improve update tree

Before static variables were used common for all trees
Now these variables are used per tree instance

Set stream length after set chunked

New values in tree are shown
Locking of buildTree
Show changes getting by PUT

Add locks for script and opc client
Add lock() to change .AASX and AAS by PUT

Fix opc ua hierarchical names

Delete opc ua duplicates
ContentLength for stream is always set
Use absolut data path
  • Loading branch information
aorzelskiGH committed Feb 4, 2021
1 parent 317dc3b commit 773b947
Show file tree
Hide file tree
Showing 13 changed files with 670 additions and 357 deletions.
103 changes: 53 additions & 50 deletions src/AasxServerBlazor/Data/AASService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ public AASService()
Program.NewDataAvailable += (s, a) =>
{
// buildTree();
NewDataAvailable?.Invoke(this, EventArgs.Empty);
NewDataAvailable?.Invoke(this, a);
};
}
public event EventHandler NewDataAvailable;

public static List<Item> items = null;
public static List<Item> viewItems = null;

public List<Item> GetTree()
public List<Item> GetTree(Item selectedNode, IList<Item> ExpandedNodes)
{
// buildTree();
updateVisibleTree();
// Item.updateVisibleTree(viewItems, selectedNode, ExpandedNodes);
return viewItems;
}

Expand All @@ -60,67 +60,70 @@ public void buildTree()
{
while (Program.isLoading) ;

items = new List<Item>();
for (int i = 0; i < Program.envimax; i++)
lock (Program.changeAasxFile)
{
Item root = new Item();
root.envIndex = i;
if (Program.env[i] != null)
items = new List<Item>();
for (int i = 0; i < Program.envimax; i++)
{
root.Text = Program.env[i].AasEnv.AdministrationShells[0].idShort;
root.Tag = Program.env[i].AasEnv.AdministrationShells[0];
if (Program.envSymbols[i] != "L")
Item root = new Item();
root.envIndex = i;
if (Program.env[i] != null)
{
List<Item> childs = new List<Item>();
foreach (var sm in Program.env[i].AasEnv.Submodels)
root.Text = Program.env[i].AasEnv.AdministrationShells[0].idShort;
root.Tag = Program.env[i].AasEnv.AdministrationShells[0];
if (Program.envSymbols[i] != "L")
{
if (sm != null && sm.idShort != null)
List<Item> childs = new List<Item>();
foreach (var sm in Program.env[i].AasEnv.Submodels)
{
var smItem = new Item();
smItem.envIndex = i;
smItem.Text = sm.idShort;
smItem.Tag = sm;
childs.Add(smItem);
List<Item> smChilds = new List<Item>();
foreach (var sme in sm.submodelElements)
if (sm != null && sm.idShort != null)
{
var smeItem = new Item();
smeItem.envIndex = i;
smeItem.Text = sme.submodelElement.idShort;
smeItem.Tag = sme.submodelElement;
smChilds.Add(smeItem);
if (sme.submodelElement is SubmodelElementCollection)
var smItem = new Item();
smItem.envIndex = i;
smItem.Text = sm.idShort;
smItem.Tag = sm;
childs.Add(smItem);
List<Item> smChilds = new List<Item>();
foreach (var sme in sm.submodelElements)
{
var smec = sme.submodelElement as SubmodelElementCollection;
createSMECItems(smeItem, smec, i);
}
if (sme.submodelElement is Operation)
{
var o = sme.submodelElement as Operation;
createOperationItems(smeItem, o, i);
}
if (sme.submodelElement is Entity)
{
var e = sme.submodelElement as Entity;
createEntityItems(smeItem, e, i);
var smeItem = new Item();
smeItem.envIndex = i;
smeItem.Text = sme.submodelElement.idShort;
smeItem.Tag = sme.submodelElement;
smChilds.Add(smeItem);
if (sme.submodelElement is SubmodelElementCollection)
{
var smec = sme.submodelElement as SubmodelElementCollection;
createSMECItems(smeItem, smec, i);
}
if (sme.submodelElement is Operation)
{
var o = sme.submodelElement as Operation;
createOperationItems(smeItem, o, i);
}
if (sme.submodelElement is Entity)
{
var e = sme.submodelElement as Entity;
createEntityItems(smeItem, e, i);
}
}
smItem.Childs = smChilds;
foreach (var c in smChilds)
c.parent = smItem;
}
smItem.Childs = smChilds;
foreach (var c in smChilds)
c.parent = smItem;
}
root.Childs = childs;
foreach (var c in childs)
c.parent = root;
items.Add(root);
}
root.Childs = childs;
foreach (var c in childs)
c.parent = root;
}
if (Program.envSymbols[i] == "L")
{
root.Text = System.IO.Path.GetFileName(Program.envFileName[i]);
items.Add(root);
}
}
if (Program.envSymbols[i] == "L")
{
root.Text = System.IO.Path.GetFileName(Program.envFileName[i]);
items.Add(root);
}
}
viewItems = items;
}
Expand Down

0 comments on commit 773b947

Please sign in to comment.