Skip to content

Commit 4f7e58f

Browse files
committed
read root obj table
1 parent 21e7502 commit 4f7e58f

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

LibNoDaveConnectionLibrary/DotNetSiemensPLCToolBoxLibrary.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<PropertyGroup>
44
<OutputType>Library</OutputType>
55
<TargetFrameworks>netstandard2.1;net461</TargetFrameworks>
6+
<LangVersion>9</LangVersion>
67
</PropertyGroup>
78
<PropertyGroup>
89
<DefineConstants>SHARPZIPLIB</DefineConstants>

LibNoDaveConnectionLibrary/Projectfiles/TIA/Enums/TiaFixedRootObjectInstanceIds.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
6-
namespace DotNetSiemensPLCToolBoxLibrary.Projectfiles.TIA.Enums
1+
namespace DotNetSiemensPLCToolBoxLibrary.Projectfiles.TIA.Enums
72
{
83
public enum TiaFixedRootObjectInstanceIds : long
94
{

LibNoDaveConnectionLibrary/Projectfiles/TIA/Step7ProjectTiaBinaryParsed.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
using System.Collections.Generic;
33
using System.Globalization;
44
using System.IO;
5+
using System.Text;
56
using System.Xml;
67
using DotNetSiemensPLCToolBoxLibrary.DataTypes;
78
using DotNetSiemensPLCToolBoxLibrary.General;
9+
using DotNetSiemensPLCToolBoxLibrary.Projectfiles.TIA.Enums;
810
using DotNetSiemensPLCToolBoxLibrary.Projectfiles.TIA.Structs;
911

1012
namespace DotNetSiemensPLCToolBoxLibrary.Projectfiles.TIA
@@ -38,6 +40,38 @@ public void BinaryParseTIAFile()
3840
{
3941
var hd = TiaObjectHeader.Deserialize(rd);
4042
TiaObjectsList.Add(hd);
43+
44+
if (hd.TypeId == 0x70000 + 14) //localization_table
45+
{
46+
var langs = new List<int>();
47+
using var ms = new MemoryStream(hd.Data);
48+
using var br = new BinaryReader(ms);
49+
var maybe_length_including_itself = br.ReadInt32();
50+
51+
var count = br.ReadInt32();
52+
for (int i = 0; i < count;i++)
53+
{
54+
var lng = br.ReadInt32();
55+
langs.Add(lng);
56+
var unkown_maybe_flags = br.ReadByte();
57+
}
58+
}
59+
else if (hd.TypeId == 0x70000 + 9) //Root Object Table
60+
{
61+
var rootObjs = new List<int>();
62+
using var ms = new MemoryStream(hd.Data);
63+
using var br = new BinaryReader(ms);
64+
var maybe_length_including_itself = br.ReadInt32();
65+
66+
var count = br.ReadInt32();
67+
for (int i = 0; i < count; i++)
68+
{
69+
var id = br.ReadInt32();
70+
var instId = br.ReadInt64();
71+
var ln = br.ReadByte();
72+
var nm = Encoding.UTF8.GetString(br.ReadBytes(ln));
73+
}
74+
}
4175
}
4276
}
4377
catch (EndOfStreamException) // Zip File Stream has no length

0 commit comments

Comments
 (0)