removed old conversion tool
This commit is contained in:
Родитель
cbb4782d7b
Коммит
8e3b55e679
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ShowAllFiles>true</ShowAllFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Azure.DigitalTwins.Core.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Azure.DigitalTwins.Core.dll
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,570 @@
|
|||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v3.1",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v3.1": {
|
||||
"DigitalTwins/1.0.0": {
|
||||
"dependencies": {
|
||||
"Azure.DigitalTwins.Core": "1.0.0-preview.3",
|
||||
"Azure.Identity": "1.4.0-beta.1",
|
||||
"Microsoft.Azure.DigitalTwins.Parser": "3.12.5"
|
||||
},
|
||||
"runtime": {
|
||||
"DigitalTwins.dll": {}
|
||||
}
|
||||
},
|
||||
"Azure.Core/1.5.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.Bcl.AsyncInterfaces": "1.0.0",
|
||||
"System.Buffers": "4.5.0",
|
||||
"System.Diagnostics.DiagnosticSource": "4.6.0",
|
||||
"System.Memory": "4.5.3",
|
||||
"System.Numerics.Vectors": "4.5.0",
|
||||
"System.Text.Json": "4.6.0",
|
||||
"System.Threading.Tasks.Extensions": "4.5.2"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Azure.Core.dll": {
|
||||
"assemblyVersion": "1.5.1.0",
|
||||
"fileVersion": "1.500.120.50102"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Azure.DigitalTwins.Core/1.0.0-preview.3": {
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.5.1",
|
||||
"System.Text.Json": "4.6.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Azure.DigitalTwins.Core.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.20.36303"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Azure.Identity/1.4.0-beta.1": {
|
||||
"dependencies": {
|
||||
"Azure.Core": "1.5.1",
|
||||
"Microsoft.Identity.Client": "4.21.0",
|
||||
"Microsoft.Identity.Client.Extensions.Msal": "2.16.2",
|
||||
"System.Memory": "4.5.3",
|
||||
"System.Security.Cryptography.ProtectedData": "4.5.0",
|
||||
"System.Text.Json": "4.6.0",
|
||||
"System.Threading.Tasks.Extensions": "4.5.2"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Azure.Identity.dll": {
|
||||
"assemblyVersion": "1.4.0.0",
|
||||
"fileVersion": "1.400.20.51503"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Azure.DigitalTwins.Parser/3.12.5": {
|
||||
"dependencies": {
|
||||
"Microsoft.Build.Framework": "16.4.0",
|
||||
"Microsoft.Build.Utilities.Core": "16.4.0",
|
||||
"Newtonsoft.Json": "12.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.Azure.DigitalTwins.Parser.dll": {
|
||||
"assemblyVersion": "3.12.5.0",
|
||||
"fileVersion": "3.12.5.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Bcl.AsyncInterfaces/1.0.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "4.700.19.46214"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Build.Framework/16.4.0": {
|
||||
"dependencies": {
|
||||
"System.Runtime.Serialization.Primitives": "4.1.1",
|
||||
"System.Threading.Thread": "4.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.Build.Framework.dll": {
|
||||
"assemblyVersion": "15.1.0.0",
|
||||
"fileVersion": "16.4.0.56501"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Build.Utilities.Core/16.4.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Build.Framework": "16.4.0",
|
||||
"Microsoft.Win32.Registry": "4.3.0",
|
||||
"System.Collections.Immutable": "1.5.0",
|
||||
"System.Text.Encoding.CodePages": "4.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.Build.Utilities.Core.dll": {
|
||||
"assemblyVersion": "15.1.0.0",
|
||||
"fileVersion": "16.4.0.56501"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Identity.Client/4.21.0": {
|
||||
"runtime": {
|
||||
"lib/netcoreapp2.1/Microsoft.Identity.Client.dll": {
|
||||
"assemblyVersion": "4.21.0.0",
|
||||
"fileVersion": "4.21.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Identity.Client.Extensions.Msal/2.16.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.Identity.Client": "4.21.0",
|
||||
"System.Security.Cryptography.ProtectedData": "4.5.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netcoreapp2.1/Microsoft.Identity.Client.Extensions.Msal.dll": {
|
||||
"assemblyVersion": "2.16.2.0",
|
||||
"fileVersion": "2.16.2.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/1.1.0": {},
|
||||
"Microsoft.NETCore.Targets/1.1.0": {},
|
||||
"Microsoft.Win32.Registry/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0"
|
||||
}
|
||||
},
|
||||
"Newtonsoft.Json/12.0.3": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Newtonsoft.Json.dll": {
|
||||
"assemblyVersion": "12.0.0.0",
|
||||
"fileVersion": "12.0.3.23909"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Buffers/4.5.0": {},
|
||||
"System.Collections/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Collections.Immutable/1.5.0": {},
|
||||
"System.Diagnostics.DiagnosticSource/4.6.0": {},
|
||||
"System.Globalization/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Memory/4.5.3": {},
|
||||
"System.Numerics.Vectors/4.5.0": {},
|
||||
"System.Reflection/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Primitives/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Resources.ResourceManager/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Extensions/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Handles/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.InteropServices/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives/4.1.1": {
|
||||
"dependencies": {
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.ProtectedData/4.5.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
|
||||
"assemblyVersion": "4.0.3.0",
|
||||
"fileVersion": "4.6.26515.6"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.0.3.0",
|
||||
"fileVersion": "4.6.26515.6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.CodePages/4.0.1": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.0.11"
|
||||
}
|
||||
},
|
||||
"System.Text.Json/4.6.0": {},
|
||||
"System.Threading/4.0.11": {
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks/4.3.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.2": {},
|
||||
"System.Threading.Thread/4.0.0": {
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"DigitalTwins/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Azure.Core/1.5.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-b208x0N1Gk+cGSAu3suRwmC5UMIxIwGEmbkE6JsfQapOShxLXkhK2L5oVom3JU9LJtGa8TvYna5ndxTv9IG2EA==",
|
||||
"path": "azure.core/1.5.1",
|
||||
"hashPath": "azure.core.1.5.1.nupkg.sha512"
|
||||
},
|
||||
"Azure.DigitalTwins.Core/1.0.0-preview.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-EcLT/rb1XjkQ7tVLQ9yMV4O0Q+6yUh86ukHdVyNhtllwPssGgKsfneE21y483U0/eTyS9oFNeTWiUg+BSaNhFA==",
|
||||
"path": "azure.digitaltwins.core/1.0.0-preview.3",
|
||||
"hashPath": "azure.digitaltwins.core.1.0.0-preview.3.nupkg.sha512"
|
||||
},
|
||||
"Azure.Identity/1.4.0-beta.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-y0N862gWpuL5GgHFCUz02JNbOrP8lG/rYAmgN9OgUs4wwVZXIvvVa33xjNjYrkMqo63omisjIzQgj5ZBrTajRQ==",
|
||||
"path": "azure.identity/1.4.0-beta.1",
|
||||
"hashPath": "azure.identity.1.4.0-beta.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Azure.DigitalTwins.Parser/3.12.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-oHXbN7RksNk8zhGUZjFeS5qH21w+tYCn9tqG6pvAJptNEex66ugcD5oQLmvAWa2vzPPqsTbpA3KPDqrgw/5ADA==",
|
||||
"path": "microsoft.azure.digitaltwins.parser/3.12.5",
|
||||
"hashPath": "microsoft.azure.digitaltwins.parser.3.12.5.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Bcl.AsyncInterfaces/1.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==",
|
||||
"path": "microsoft.bcl.asyncinterfaces/1.0.0",
|
||||
"hashPath": "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Build.Framework/16.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-9y1/PKvZNt+YnF2lHpk10W0SnWe9jKSM0daf7lTkYOaSs/6isMfU+Pmbt01Af6os3X3FwAQ2nOPuwoAOu0u0KA==",
|
||||
"path": "microsoft.build.framework/16.4.0",
|
||||
"hashPath": "microsoft.build.framework.16.4.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Build.Utilities.Core/16.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-FGQo1P4nKuGvMP1QIxXIPRfT0m4AfKbXmDzxSK2LbMV1f6XTiCaE+BvyiWauKSJWDLW/S4OmZ02f3tJkSXNxkA==",
|
||||
"path": "microsoft.build.utilities.core/16.4.0",
|
||||
"hashPath": "microsoft.build.utilities.core.16.4.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Identity.Client/4.21.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-qVoSUGfIynHWF7Lk9dRJN04AOE8pHabRja6OsiILyirTHxhKLrZ6Ixcbuge0z080kKch3vgy1QpQ53wVNbkBYw==",
|
||||
"path": "microsoft.identity.client/4.21.0",
|
||||
"hashPath": "microsoft.identity.client.4.21.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Identity.Client.Extensions.Msal/2.16.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-1xIcnfuFkLXP0oeh0VeH06Cs8hl57ZtCQQGPdr/i0jMwiiTgmW0deHh/4E0rop0ZrowapmO5My367cR+bwaDOQ==",
|
||||
"path": "microsoft.identity.client.extensions.msal/2.16.2",
|
||||
"hashPath": "microsoft.identity.client.extensions.msal.2.16.2.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.NETCore.Platforms/1.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
|
||||
"path": "microsoft.netcore.platforms/1.1.0",
|
||||
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.NETCore.Targets/1.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
|
||||
"path": "microsoft.netcore.targets/1.1.0",
|
||||
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Win32.Registry/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==",
|
||||
"path": "microsoft.win32.registry/4.3.0",
|
||||
"hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"Newtonsoft.Json/12.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==",
|
||||
"path": "newtonsoft.json/12.0.3",
|
||||
"hashPath": "newtonsoft.json.12.0.3.nupkg.sha512"
|
||||
},
|
||||
"System.Buffers/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==",
|
||||
"path": "system.buffers/4.5.0",
|
||||
"hashPath": "system.buffers.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"System.Collections/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
|
||||
"path": "system.collections/4.3.0",
|
||||
"hashPath": "system.collections.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Collections.Immutable/1.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==",
|
||||
"path": "system.collections.immutable/1.5.0",
|
||||
"hashPath": "system.collections.immutable.1.5.0.nupkg.sha512"
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource/4.6.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==",
|
||||
"path": "system.diagnostics.diagnosticsource/4.6.0",
|
||||
"hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512"
|
||||
},
|
||||
"System.Globalization/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
|
||||
"path": "system.globalization/4.3.0",
|
||||
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.IO/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
|
||||
"path": "system.io/4.3.0",
|
||||
"hashPath": "system.io.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Memory/4.5.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==",
|
||||
"path": "system.memory/4.5.3",
|
||||
"hashPath": "system.memory.4.5.3.nupkg.sha512"
|
||||
},
|
||||
"System.Numerics.Vectors/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==",
|
||||
"path": "system.numerics.vectors/4.5.0",
|
||||
"hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"System.Reflection/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
|
||||
"path": "system.reflection/4.3.0",
|
||||
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Reflection.Primitives/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
|
||||
"path": "system.reflection.primitives/4.3.0",
|
||||
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Resources.ResourceManager/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
|
||||
"path": "system.resources.resourcemanager/4.3.0",
|
||||
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||
"path": "system.runtime/4.3.0",
|
||||
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.Extensions/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
|
||||
"path": "system.runtime.extensions/4.3.0",
|
||||
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.Handles/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
|
||||
"path": "system.runtime.handles/4.3.0",
|
||||
"hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.InteropServices/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
|
||||
"path": "system.runtime.interopservices/4.3.0",
|
||||
"hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.Serialization.Primitives/4.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
|
||||
"path": "system.runtime.serialization.primitives/4.1.1",
|
||||
"hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512"
|
||||
},
|
||||
"System.Security.Cryptography.ProtectedData/4.5.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==",
|
||||
"path": "system.security.cryptography.protecteddata/4.5.0",
|
||||
"hashPath": "system.security.cryptography.protecteddata.4.5.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encoding/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
|
||||
"path": "system.text.encoding/4.3.0",
|
||||
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encoding.CodePages/4.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-h4z6rrA/hxWf4655D18IIZ0eaLRa3tQC/j+e26W+VinIHY0l07iEXaAvO0YSYq3MvCjMYy8Zs5AdC1sxNQOB7Q==",
|
||||
"path": "system.text.encoding.codepages/4.0.1",
|
||||
"hashPath": "system.text.encoding.codepages.4.0.1.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/4.6.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==",
|
||||
"path": "system.text.json/4.6.0",
|
||||
"hashPath": "system.text.json.4.6.0.nupkg.sha512"
|
||||
},
|
||||
"System.Threading/4.0.11": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==",
|
||||
"path": "system.threading/4.0.11",
|
||||
"hashPath": "system.threading.4.0.11.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Tasks/4.3.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
|
||||
"path": "system.threading.tasks/4.3.0",
|
||||
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==",
|
||||
"path": "system.threading.tasks.extensions/4.5.2",
|
||||
"hashPath": "system.threading.tasks.extensions.4.5.2.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Thread/4.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
|
||||
"path": "system.threading.thread/4.0.0",
|
||||
"hashPath": "system.threading.thread.4.0.0.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\jbeman\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "netcoreapp3.1",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "3.1.0"
|
||||
}
|
||||
}
|
||||
}
|
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Azure.DigitalTwins.Parser.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Azure.DigitalTwins.Parser.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Build.Framework.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Build.Framework.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Build.Utilities.Core.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Build.Utilities.Core.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Identity.Client.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/Microsoft.Identity.Client.dll
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/bin/Debug/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,4 @@
|
|||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]
|
|
@ -0,0 +1,23 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("DigitalTwins")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("DigitalTwins")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("DigitalTwins")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
|
@ -0,0 +1 @@
|
|||
b18f5bc3ef95e258a1313d6a45e1f19adf670ecc
|
Двоичные данные
DigitalTwinsCloudAdmin/obj/Debug/netcoreapp3.1/DigitalTwins.assets.cache
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/obj/Debug/netcoreapp3.1/DigitalTwins.assets.cache
Normal file
Двоичный файл не отображается.
|
@ -0,0 +1 @@
|
|||
b736aea8cf2f2a10b542c5578bb77bff458287d0
|
|
@ -0,0 +1,26 @@
|
|||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.exe
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.deps.json
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.runtimeconfig.json
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.runtimeconfig.dev.json
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\DigitalTwins.pdb
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Azure.Core.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Azure.DigitalTwins.Core.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Azure.Identity.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Azure.DigitalTwins.Parser.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Bcl.AsyncInterfaces.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Build.Framework.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Build.Utilities.Core.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Identity.Client.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Microsoft.Identity.Client.Extensions.Msal.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\Newtonsoft.Json.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.csprojAssemblyReference.cache
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.AssemblyInfoInputs.cache
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.AssemblyInfo.cs
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.csproj.CoreCompileInputs.cache
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.csproj.CopyComplete
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.dll
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.pdb
|
||||
C:\azure-iot-mobility-digitaltwin\DigitalTwinsCloudAdmin\obj\Debug\netcoreapp3.1\DigitalTwins.genruntimeconfig.cache
|
Двоичные данные
DigitalTwinsCloudAdmin/obj/Debug/netcoreapp3.1/DigitalTwins.csprojAssemblyReference.cache
Normal file
Двоичные данные
DigitalTwinsCloudAdmin/obj/Debug/netcoreapp3.1/DigitalTwins.csprojAssemblyReference.cache
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1 @@
|
|||
83966c1311d26184e8785b9529882cc1f942120e
|
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\DigitalTwins.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\DigitalTwins.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\DigitalTwins.csproj",
|
||||
"projectName": "DigitalTwins",
|
||||
"projectPath": "C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\DigitalTwins.csproj",
|
||||
"packagesPath": "C:\\Users\\jbeman\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\jbeman\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"netcoreapp3.1"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp3.1": {
|
||||
"targetAlias": "netcoreapp3.1",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp3.1": {
|
||||
"targetAlias": "netcoreapp3.1",
|
||||
"dependencies": {
|
||||
"Azure.DigitalTwins.Core": {
|
||||
"target": "Package",
|
||||
"version": "[1.0.0-preview.3, )"
|
||||
},
|
||||
"Azure.Identity": {
|
||||
"target": "Package",
|
||||
"version": "[1.4.0-beta.1, )"
|
||||
},
|
||||
"Microsoft.Azure.DigitalTwins.Parser": {
|
||||
"target": "Package",
|
||||
"version": "[3.12.5, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.100\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\jbeman\.nuget\packages\</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||
</PropertyGroup>
|
||||
</Project>
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "BYfajfNctqXBL1+fyQ2RMIAQe0/BbHLHR7mmlT2+kkmPXDEb6iGhix0rEEUjh/+zS0/mHfCeQyXHn7fIsYUIog==",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\azure-iot-mobility-digitaltwin\\DigitalTwinsCloudAdmin\\DigitalTwins.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\azure.core\\1.5.1\\azure.core.1.5.1.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\azure.digitaltwins.core\\1.0.0-preview.3\\azure.digitaltwins.core.1.0.0-preview.3.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\azure.identity\\1.4.0-beta.1\\azure.identity.1.4.0-beta.1.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.azure.digitaltwins.parser\\3.12.5\\microsoft.azure.digitaltwins.parser.3.12.5.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.0.0\\microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.build.framework\\16.4.0\\microsoft.build.framework.16.4.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.build.utilities.core\\16.4.0\\microsoft.build.utilities.core.16.4.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.identity.client\\4.21.0\\microsoft.identity.client.4.21.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.identity.client.extensions.msal\\2.16.2\\microsoft.identity.client.extensions.msal.2.16.2.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\microsoft.win32.registry\\4.3.0\\microsoft.win32.registry.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.collections.immutable\\1.5.0\\system.collections.immutable.1.5.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.diagnostics.diagnosticsource\\4.6.0\\system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.numerics.vectors\\4.5.0\\system.numerics.vectors.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.runtime.serialization.primitives\\4.1.1\\system.runtime.serialization.primitives.4.1.1.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.5.0\\system.security.cryptography.protecteddata.4.5.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.text.encoding.codepages\\4.0.1\\system.text.encoding.codepages.4.0.1.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.text.json\\4.6.0\\system.text.json.4.6.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.threading\\4.0.11\\system.threading.4.0.11.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.2\\system.threading.tasks.extensions.4.5.2.nupkg.sha512",
|
||||
"C:\\Users\\jbeman\\.nuget\\packages\\system.threading.thread\\4.0.0\\system.threading.thread.4.0.0.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
apt-get install -y git cmake make g++ lcov clang-format-9 ccache
|
|
@ -1,7 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(src VERSION 1.0)
|
||||
|
||||
add_subdirectory(vspec-definition)
|
||||
add_subdirectory(dtdl-definition)
|
||||
add_subdirectory(vspec-to-dtdl)
|
|
@ -1,5 +0,0 @@
|
|||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
libdtdl-definition.a
|
||||
Makefile
|
|
@ -1,11 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(dtdl-definition)
|
||||
|
||||
add_compile_options(-std=c++11)
|
||||
|
||||
include_directories(../../third-party/jsoncpp/src)
|
||||
|
||||
file(GLOB SOURCES "*.cpp")
|
||||
|
||||
add_library(dtdl-definition STATIC ${SOURCES})
|
|
@ -1,78 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#include <iostream>
|
||||
#include "dtdl-composer.h"
|
||||
|
||||
using namespace microsoft::automotive::data;
|
||||
|
||||
void DtdlComposer::Compose(const dtdl::Definition& definition)
|
||||
{
|
||||
// std::list<std::shared_ptr<Json::Value>>& dtdl);
|
||||
|
||||
std::list<std::shared_ptr<Json::Value>> dtdlAsJson;
|
||||
|
||||
ConvertDtdlComponentToJson(definition.Root, dtdlAsJson);
|
||||
|
||||
std::cout << "[" << std::endl;
|
||||
|
||||
for (auto it = dtdlAsJson.begin(); it != dtdlAsJson.end(); it++)
|
||||
{
|
||||
if (it != dtdlAsJson.begin())
|
||||
{
|
||||
std::cout << "," << std::endl;
|
||||
}
|
||||
std::cout << **it;
|
||||
}
|
||||
std::cout << std::endl;
|
||||
std::cout << "]" << std::endl;
|
||||
}
|
||||
|
||||
void DtdlComposer::ConvertDtdlComponentToJson(const dtdl::Component& component, std::list<std::shared_ptr<Json::Value>>& dtdlAsJson)
|
||||
{
|
||||
std::shared_ptr<Json::Value> interfaceValue(new Json::Value());
|
||||
dtdlAsJson.push_back(interfaceValue);
|
||||
(*interfaceValue)["@type"] = "Interface";
|
||||
(*interfaceValue)["displayName"] = component.Name.c_str();
|
||||
(*interfaceValue)["@context"] = "dtmi:dtdl:context;2";
|
||||
// const Json::Value& contents = (*interfaceValue)["contents"]; // array of contents
|
||||
int i = 0;
|
||||
for (auto it = component.Telemetries.begin(); it != component.Telemetries.end(); it++)
|
||||
{
|
||||
(*interfaceValue)["contents"][i]["@type"] = "Telemetry";
|
||||
(*interfaceValue)["contents"][i]["name"] = (*it)->Name.c_str();
|
||||
(*interfaceValue)["contents"][i]["schena"] = (*it)->Schema.c_str();
|
||||
if (!(*it)->Unit.empty())
|
||||
{
|
||||
(*interfaceValue)["contents"][i]["unit"] = (*it)->Unit.c_str();
|
||||
}
|
||||
|
||||
i++;
|
||||
|
||||
}
|
||||
for (auto it = component.Properties.begin(); it != component.Properties.end(); it++)
|
||||
{
|
||||
(*interfaceValue)["contents"][i]["@type"] = "Property";
|
||||
(*interfaceValue)["contents"][i]["name"] = (*it)->Name.c_str();
|
||||
(*interfaceValue)["contents"][i]["schena"] = (*it)->Schema.c_str();
|
||||
(*interfaceValue)["contents"][i]["writable"] = (*it)->Writable;
|
||||
if (!(*it)->Unit.empty())
|
||||
{
|
||||
(*interfaceValue)["contents"][i]["unit"] = (*it)->Unit.c_str();
|
||||
}
|
||||
|
||||
i++;
|
||||
|
||||
}
|
||||
for (auto it = component.Components.begin(); it != component.Components.end(); it++)
|
||||
{
|
||||
ConvertDtdlComponentToJson(*(it->get()), dtdlAsJson);
|
||||
|
||||
(*interfaceValue)["contents"][i]["@type"] = "Component";
|
||||
(*interfaceValue)["contents"][i]["name"] = (*it)->Name.c_str();
|
||||
i++;
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#ifndef DTDL_COMPOSER_H
|
||||
#define DTDL_COMPOSER_H
|
||||
|
||||
#include <jsoncpp/include/json/json.h>
|
||||
|
||||
#include "dtdl-definition.h"
|
||||
|
||||
namespace microsoft::automotive::data
|
||||
{
|
||||
class DtdlComposer
|
||||
{
|
||||
public:
|
||||
void Compose(const dtdl::Definition& definition);
|
||||
|
||||
protected:
|
||||
void ConvertDtdlComponentToJson(const dtdl::Component& component, std::list<std::shared_ptr<Json::Value>>& dtdlAsJson);
|
||||
};
|
||||
} //namespace microsoft::automotive::data
|
||||
|
||||
#endif // DTDL_COMPOSER_H
|
|
@ -1,6 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#ifndef DTDL_DEFINITION_H
|
||||
#define DTDL_DEFINITION_H
|
||||
|
||||
#include <list>
|
||||
#include <memory>
|
||||
|
||||
#include <jsoncpp/include/json/json.h>
|
||||
|
||||
namespace microsoft::automotive::data::dtdl
|
||||
{
|
||||
class Telemetry
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Schema;
|
||||
std::string Id;
|
||||
std::string Comment;
|
||||
std::string Description;
|
||||
std::string DisplayName;
|
||||
std::string Unit;
|
||||
};
|
||||
|
||||
class Property
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Schema;
|
||||
std::string Id;
|
||||
std::string Comment;
|
||||
std::string Description;
|
||||
std::string DisplayName;
|
||||
std::string Unit;
|
||||
bool Writable;
|
||||
};
|
||||
|
||||
class CommandPayload
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Schema;
|
||||
std::string Id;
|
||||
std::string Comment;
|
||||
std::string Description;
|
||||
std::string DisplayName;
|
||||
};
|
||||
|
||||
class Command
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Id;
|
||||
std::string Comment;
|
||||
std::string Description;
|
||||
std::string DisplayName;
|
||||
std::string CommandType;
|
||||
CommandPayload Request;
|
||||
CommandPayload Response;
|
||||
};
|
||||
|
||||
class Component
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Schema;
|
||||
std::string Id;
|
||||
std::string Comment;
|
||||
std::string Description;
|
||||
std::string DisplayName;
|
||||
|
||||
// content
|
||||
std::list<std::shared_ptr<Telemetry>> Telemetries;
|
||||
std::list<std::shared_ptr<Property>> Properties;
|
||||
std::list<std::shared_ptr<Command>> Commands;
|
||||
std::list<std::shared_ptr<Component>> Components;
|
||||
|
||||
void GenerateDTDL(std::list<std::shared_ptr<Json::Value>>& dtdl);
|
||||
};
|
||||
|
||||
// https://en.wikibooks.org/wiki/JsonCpp
|
||||
// sudo apt install install libjsoncpp-dev
|
||||
|
||||
// sudo apt install libyaml-cpp-dev
|
||||
// sudo apt install libyaml-cpp0.5v5
|
||||
|
||||
class Definition
|
||||
{
|
||||
public:
|
||||
Component Root;
|
||||
void GenerateDTDL(std::list<std::shared_ptr<Json::Value>>& dtdl);
|
||||
};
|
||||
} // namespace microsoft::automotive::data::dtdl
|
||||
|
||||
#endif // DTDL_DEFINITION_H
|
|
@ -1,5 +0,0 @@
|
|||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
libvspec-definition.a
|
||||
Makefile
|
|
@ -1,11 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(vspec-definition)
|
||||
|
||||
add_compile_options(-std=c++11)
|
||||
|
||||
include_directories(../../third-party/yanml-cpp/src/yaml-cpp/include)
|
||||
|
||||
file(GLOB SOURCES "*.cpp")
|
||||
|
||||
add_library(vspec-definition STATIC ${SOURCES})
|
|
@ -1,6 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#ifndef VSPEC_DEFINITION_H
|
||||
#define VSPEC_DEFINITION_H
|
||||
|
||||
#include <list>
|
||||
#include <memory>
|
||||
|
||||
namespace microsoft::automotive::data::vspec
|
||||
{
|
||||
class Series
|
||||
{
|
||||
};
|
||||
|
||||
class Enumeration : public Series
|
||||
{
|
||||
public:
|
||||
std::list<std::string> Items;
|
||||
};
|
||||
|
||||
class Range : public Series
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
int Begin;
|
||||
int End;
|
||||
};
|
||||
|
||||
class Node
|
||||
{
|
||||
public:
|
||||
std::string Name;
|
||||
std::string Type;
|
||||
std::string Description;
|
||||
std::string Datatype;
|
||||
std::string Unit;
|
||||
std::string Min;
|
||||
std::string Max;
|
||||
std::string Default;
|
||||
std::string Value;
|
||||
Enumeration Enum;
|
||||
std::string Aggregate;
|
||||
std::list<Series> Instances;
|
||||
|
||||
// if it is a branch
|
||||
std::list<std::shared_ptr<Node>> Children;
|
||||
|
||||
};
|
||||
|
||||
class Definition
|
||||
{
|
||||
public:
|
||||
Node Root;
|
||||
};
|
||||
} // namespace microsoft::automotive::data::vspec
|
||||
|
||||
#endif // VSPEC_DEFINITION_H
|
|
@ -1,342 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <regex>
|
||||
#include <stack>
|
||||
#include <stdexcept>
|
||||
|
||||
#include "vspec-parser.h"
|
||||
|
||||
using namespace microsoft::automotive::data;
|
||||
|
||||
|
||||
void VspecParser::ExtractPath(std::string fullPath, std::string& path)
|
||||
{
|
||||
size_t pathEndIndex = fullPath.rfind("/");
|
||||
if (pathEndIndex != std::string::npos)
|
||||
{
|
||||
path = fullPath.substr(0, pathEndIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
path = "";
|
||||
}
|
||||
}
|
||||
|
||||
void VspecParser::Preprocess(const std::string& vspecFilePath, std::ostream& os, std::string namePrefix)
|
||||
{
|
||||
std::ifstream filein(vspecFilePath);
|
||||
|
||||
std::string path;
|
||||
ExtractPath(vspecFilePath, path);
|
||||
|
||||
std::regex includePattern("^#include ([^ ]+) ([^ ]+)$");
|
||||
std::regex namePattern("^- ([^ ]+):$");
|
||||
|
||||
for (std::string line; std::getline(filein, line); )
|
||||
{
|
||||
std::smatch matches;
|
||||
if (std::regex_match(line, matches, includePattern))
|
||||
{
|
||||
if (matches.size() == 3)
|
||||
{
|
||||
std::ssub_match filePathSubmatch = matches[1];
|
||||
std::ssub_match branchSubmatch = matches[2];
|
||||
std::string newfullpath(path.c_str());
|
||||
newfullpath.append("/");
|
||||
newfullpath.append(filePathSubmatch.str());
|
||||
std::string newNamePrefix;
|
||||
if (namePrefix.size() != 0)
|
||||
{
|
||||
newNamePrefix.append(namePrefix);
|
||||
newNamePrefix.append(".");
|
||||
}
|
||||
newNamePrefix.append(branchSubmatch.str());
|
||||
Preprocess(newfullpath, os, newNamePrefix);
|
||||
}
|
||||
}
|
||||
else if (std::regex_match(line, matches, namePattern))
|
||||
{
|
||||
if (matches.size() == 2)
|
||||
{
|
||||
std::ssub_match nameSubmatch = matches[1];
|
||||
std::string name = nameSubmatch.str();
|
||||
|
||||
if (namePrefix.size() == 0)
|
||||
{
|
||||
os << line << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
os << "- " << namePrefix << "." << name << ":" << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
os << line << std::endl;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool VspecParser::ParseRange(const std::string& str, vspec::Range& range)
|
||||
{
|
||||
std::regex rangePattern("^([A-Za-z0-9]+)\\[([0-9]+),([0-9]+)\\]$");
|
||||
|
||||
std::smatch matches;
|
||||
if (std::regex_match(str, matches, rangePattern))
|
||||
{
|
||||
if (matches.size() == 4)
|
||||
{
|
||||
std::ssub_match nameSubmatch = matches[1];
|
||||
range.Name = nameSubmatch.str();
|
||||
std::ssub_match beginSubmatch = matches[2];
|
||||
range.Begin = std::atoi(beginSubmatch.str().c_str());
|
||||
std::ssub_match endSubmatch = matches[3];
|
||||
range.End = std::atoi(endSubmatch.str().c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void VspecParser::ParseNode(vspec::Node& vspecNode, const YAML::Node& node)
|
||||
{
|
||||
for (YAML::const_iterator it = node.begin(); it != node.end(); ++it)
|
||||
{
|
||||
const std::string& key = it->first.as<std::string>();
|
||||
if (it->second.IsScalar())
|
||||
{
|
||||
// std::cout << it->second.as<std::string>() << "\n";
|
||||
const std::string& value = it->second.as<std::string>();
|
||||
if (key.compare("name") == 0)
|
||||
{
|
||||
vspecNode.Name = value;
|
||||
}
|
||||
else if (key.compare("type") == 0)
|
||||
{
|
||||
vspecNode.Type = value;
|
||||
}
|
||||
else if (key.compare("description") == 0)
|
||||
{
|
||||
vspecNode.Description = value;
|
||||
}
|
||||
else if (key.compare("datatype") == 0)
|
||||
{
|
||||
vspecNode.Datatype = value;
|
||||
}
|
||||
else if (key.compare("unit") == 0)
|
||||
{
|
||||
vspecNode.Unit = value;
|
||||
}
|
||||
else if (key.compare("min") == 0)
|
||||
{
|
||||
vspecNode.Min = value;
|
||||
}
|
||||
else if (key.compare("max") == 0)
|
||||
{
|
||||
vspecNode.Max = value;
|
||||
}
|
||||
else if (key.compare("default") == 0)
|
||||
{
|
||||
vspecNode.Default = value;
|
||||
}
|
||||
else if (key.compare("value") == 0)
|
||||
{
|
||||
vspecNode.Value = value;
|
||||
}
|
||||
else if (key.compare("aggregate") == 0)
|
||||
{
|
||||
vspecNode.Aggregate = value;
|
||||
}
|
||||
else if (key.compare("instances") == 0)
|
||||
{
|
||||
vspec::Range range;
|
||||
if (ParseRange(value, range))
|
||||
{
|
||||
vspecNode.Instances.push_back(range);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("Range expected '" + value + "'");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("Unexpected key value '" + key + "'");
|
||||
}
|
||||
}
|
||||
else if (it->second.IsNull())
|
||||
{
|
||||
vspecNode.Name = key;
|
||||
}
|
||||
else if (it->second.IsSequence())
|
||||
{
|
||||
if (key.compare("enum") == 0)
|
||||
{
|
||||
for (YAML::const_iterator seqIt = it->second.begin(); seqIt != it->second.end(); seqIt++)
|
||||
{
|
||||
if (!seqIt->IsScalar())
|
||||
{
|
||||
throw VspecParserException("enum: scalar expected");
|
||||
}
|
||||
vspecNode.Enum.Items.push_back(seqIt->as<std::string>());
|
||||
}
|
||||
}
|
||||
else if (key.compare("instances") == 0)
|
||||
{
|
||||
vspec::Enumeration outerEnumeration;
|
||||
for (YAML::const_iterator seqIt = it->second.begin(); seqIt != it->second.end(); seqIt++)
|
||||
{
|
||||
if (seqIt->IsScalar())
|
||||
{
|
||||
vspec::Range range;
|
||||
if (ParseRange(seqIt->as<std::string>(), range))
|
||||
{
|
||||
vspecNode.Instances.push_back(range);
|
||||
}
|
||||
else
|
||||
{
|
||||
outerEnumeration.Items.push_back(seqIt->as<std::string>());
|
||||
}
|
||||
|
||||
}
|
||||
else if (seqIt->IsSequence())
|
||||
{
|
||||
vspec::Enumeration innerEnumeration;
|
||||
for (YAML::const_iterator enumSeqIt = seqIt->begin(); enumSeqIt != seqIt->end(); enumSeqIt++)
|
||||
{
|
||||
if (enumSeqIt->IsScalar())
|
||||
{
|
||||
innerEnumeration.Items.push_back(enumSeqIt->as<std::string>());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("instances: scalar expected");
|
||||
}
|
||||
}
|
||||
vspecNode.Instances.push_back(innerEnumeration);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("instances: scalar or sequence expected");
|
||||
}
|
||||
}
|
||||
|
||||
if (outerEnumeration.Items.size() != 0)
|
||||
{
|
||||
vspecNode.Instances.push_back(outerEnumeration);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("Unexpected key value '" + key + "'");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw VspecParserException("not sure what the second value is");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VspecParser::TraverseConfig(const YAML::Node& config, vspec::Node& rootVspecNode)
|
||||
{
|
||||
if (!config.IsSequence())
|
||||
{
|
||||
throw VspecParserException("sequence expected");
|
||||
}
|
||||
|
||||
std::stack<vspec::Node*> branchStack;
|
||||
|
||||
YAML::const_iterator it = config.begin();
|
||||
if (it != config.end())
|
||||
{
|
||||
if (!it->IsMap())
|
||||
{
|
||||
throw new VspecParserException("map expected");
|
||||
}
|
||||
|
||||
ParseNode(rootVspecNode, *it);
|
||||
if (rootVspecNode.Type.compare("branch") != 0)
|
||||
{
|
||||
throw VspecParserException("root must be of type branch");
|
||||
}
|
||||
branchStack.push(&rootVspecNode);
|
||||
it++;
|
||||
}
|
||||
|
||||
// No previous branch namespace
|
||||
std::string topBranchSuffix = "";
|
||||
|
||||
std::string newBranchSuffix = "";
|
||||
|
||||
for ( ; it != config.end(); it++)
|
||||
{
|
||||
if (!it->IsMap())
|
||||
{
|
||||
throw new VspecParserException("map expected");
|
||||
}
|
||||
|
||||
std::shared_ptr<vspec::Node> vspecNode(new vspec::Node());
|
||||
|
||||
ParseNode(*vspecNode, *it);
|
||||
|
||||
size_t newBranchLastDotPos = vspecNode->Name.find_last_of(".");
|
||||
if (newBranchLastDotPos == std::string::npos)
|
||||
{
|
||||
newBranchSuffix = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
newBranchSuffix = vspecNode->Name.substr(0, newBranchLastDotPos);
|
||||
}
|
||||
|
||||
while (!branchStack.empty())
|
||||
{
|
||||
topBranchSuffix = branchStack.top()->Name;
|
||||
|
||||
if (topBranchSuffix.compare(0, newBranchSuffix.length(), newBranchSuffix) == 0 && newBranchSuffix.compare(topBranchSuffix) != 0 && topBranchSuffix.compare("Vehicle") != 0)
|
||||
{
|
||||
branchStack.pop();
|
||||
}
|
||||
else
|
||||
{
|
||||
// std::cout << "BREAK top:'" << topBranchSuffix << "' new:'" << newBranchSuffix << "'" << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
branchStack.top()->Children.push_back(vspecNode);
|
||||
|
||||
if (vspecNode->Type.compare("branch") == 0)
|
||||
{
|
||||
branchStack.push(vspecNode.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VspecParser::Parse(const std::string& vspecFilePath, vspec::Definition& definition)
|
||||
{
|
||||
std::stringstream strstream;
|
||||
|
||||
Preprocess(vspecFilePath, strstream);
|
||||
|
||||
// std::cout << strstream.str() << std::endl;
|
||||
|
||||
TraverseConfig(YAML::Load(strstream), definition.Root);
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#ifndef VSPEC_PARSER_H
|
||||
#define VSPEC_PARSER_H
|
||||
|
||||
#include <exception>
|
||||
|
||||
#include <yaml-cpp/yaml.h>
|
||||
|
||||
#include "vspec-definition.h"
|
||||
|
||||
namespace microsoft::automotive::data
|
||||
{
|
||||
class VspecParserException : public std::exception
|
||||
{
|
||||
public:
|
||||
VspecParserException(const std::string& message)
|
||||
{
|
||||
this->message = message;
|
||||
}
|
||||
|
||||
virtual const char* what() const throw()
|
||||
{
|
||||
return message.c_str();
|
||||
}
|
||||
|
||||
protected:
|
||||
std::string message;
|
||||
};
|
||||
|
||||
class VspecParser
|
||||
{
|
||||
public:
|
||||
void Parse(const std::string& vspecFilePath, vspec::Definition& definition);
|
||||
|
||||
protected:
|
||||
void ExtractPath(std::string fullPath, std::string& path);
|
||||
void Preprocess(const std::string& vspecFilePath, std::ostream& os, std::string namePrefix = "");
|
||||
bool ParseRange(const std::string& str, vspec::Range& range);
|
||||
void ParseNode(vspec::Node& vspecNode, const YAML::Node& node);
|
||||
void TraverseConfig(const YAML::Node& config, vspec::Node& rootVspecNode);
|
||||
};
|
||||
} // microsoft::automotive::data
|
||||
|
||||
#endif // VSPEC_PARSER_H
|
|
@ -1,5 +0,0 @@
|
|||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
Makefile
|
||||
vspec-to-dtdl
|
|
@ -1,29 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(vspec-to-dtdl)
|
||||
|
||||
add_compile_options(-std=c++11)
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
|
||||
find_package(Boost COMPONENTS program_options)
|
||||
|
||||
include_directories(
|
||||
../../third-party/jsoncpp/src
|
||||
../../third-party/yanml-cpp/src/yaml-cpp/include
|
||||
../vspec-definition
|
||||
../dtdl-definition
|
||||
../../third-party/boost/include)
|
||||
|
||||
link_directories(
|
||||
../vspec-definition
|
||||
../dtdl-definition
|
||||
../../third-party/yanml-cpp/src/yaml-cpp-build
|
||||
../../third-party/jsoncpp/src/jsoncpp-build/lib
|
||||
../../third-party/boost/lib)
|
||||
|
||||
file(GLOB SOURCES "*.cpp")
|
||||
|
||||
add_executable(vspec-to-dtdl ${SOURCES})
|
||||
|
||||
target_link_libraries(vspec-to-dtdl vspec-definition dtdl-definition yaml-cpp jsoncpp boost_program_options ${Boost_LIBRARIES})
|
|
@ -1,88 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// To use:
|
||||
// ./vspec-to-dtdl /home/ashbeitz/repos/Vehicle-DataModel-Tools/third-party/vehicle_signal_specification/src/vehicle_signal_specification/spec/VehicleSignalSpecification.vspec
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <boost/program_options.hpp>
|
||||
|
||||
#include "vspec-definition.h"
|
||||
#include "vspec-parser.h"
|
||||
#include "dtdl-definition.h"
|
||||
#include "dtdl-composer.h"
|
||||
#include "vspec-to-dtdl-converter.h"
|
||||
|
||||
using namespace boost;
|
||||
|
||||
using namespace microsoft::automotive::data;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
try
|
||||
{
|
||||
program_options::options_description options("Allowed options");
|
||||
options.add_options()
|
||||
("help", "produce help message")
|
||||
("vspec-file", program_options::value<std::string>(), "location of the root vspec file")
|
||||
;
|
||||
program_options::positional_options_description positions;
|
||||
positions.add("vspec-file", -1);
|
||||
program_options::variables_map vm;
|
||||
program_options::store(program_options::command_line_parser(argc, argv).options(options).positional(positions).run(), vm);
|
||||
program_options::notify(vm);
|
||||
|
||||
if (vm.count("help"))
|
||||
{
|
||||
std::cout << options << "\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string vspecFilePath;
|
||||
|
||||
if (vm.count("vspec-file"))
|
||||
{
|
||||
vspecFilePath = vm["vspec-file"].as<std::string>();
|
||||
std::cout << "vspec-file was set to " << vspecFilePath << "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "vspec-file was not set.\n";
|
||||
}
|
||||
|
||||
vspec::Definition vspecDefinition;
|
||||
VspecParser vspecParser;
|
||||
vspecParser.Parse(vspecFilePath, vspecDefinition);
|
||||
|
||||
dtdl::Definition dtdlDefinition;
|
||||
VspecToDtdlConverter vspecToDtdlConverter;
|
||||
vspecToDtdlConverter.Convert(vspecDefinition, dtdlDefinition);
|
||||
|
||||
DtdlComposer dtdlComposer;
|
||||
dtdlComposer.Compose(dtdlDefinition);
|
||||
}
|
||||
catch (const VspecParserException& pe)
|
||||
{
|
||||
std::cerr << pe.what() << '\n';
|
||||
return 1;
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
std::cerr << "error: " << e.what() << "\n";
|
||||
return 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "Exception of unknown type!\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
./vspec-to-dtdl ../../third-party/vehicle_signal_specification/src/vehicle_signal_specification/spec/VehicleSignalSpecification.vspec
|
|
@ -1,289 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <iostream>
|
||||
|
||||
#include "vspec-to-dtdl-converter.h"
|
||||
|
||||
using namespace microsoft::automotive::data;
|
||||
|
||||
void VspecToDtdlConverter::Convert(const vspec::Definition& vspecDefinition, dtdl::Definition& dtdlDefinition)
|
||||
{
|
||||
TraverseBranch(vspecDefinition.Root, dtdlDefinition.Root);
|
||||
}
|
||||
|
||||
// TODO: Place in shared library
|
||||
void VspecToDtdlConverter::ToLower(std::string& str)
|
||||
{
|
||||
std::transform(str.begin(), str.end(), str.begin(),
|
||||
[](unsigned char c) { return std::tolower(c); }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
bool VspecToDtdlConverter::ConvertDatatypeToSchema(const std::string& datatype, std::string& schema)
|
||||
{
|
||||
std::string lowercaseDatatype = datatype;
|
||||
ToLower(lowercaseDatatype);
|
||||
if (lowercaseDatatype.compare("int32") == 0)
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("uint32") == 0) // TODO: fix this
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("int8") == 0) // TODO: fix this
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("uint8") == 0) // TODO: fix this
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("int16") == 0) // TODO: fix this
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("uint16") == 0) // TODO: fix this
|
||||
{
|
||||
schema = "integer";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("float") == 0)
|
||||
{
|
||||
schema = "float";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("double") == 0)
|
||||
{
|
||||
schema = "double";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("boolean") == 0)
|
||||
{
|
||||
schema = "boolean";
|
||||
}
|
||||
else if (lowercaseDatatype.compare("string") == 0)
|
||||
{
|
||||
schema = "string";
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool VspecToDtdlConverter::ConverVspecUnitToDtdlUnit(const std::string& vspecUnit, std::string& dtdlUnit)
|
||||
{
|
||||
std::string lowercaseVspecUnit = vspecUnit;
|
||||
ToLower(lowercaseVspecUnit);
|
||||
|
||||
if (vspecUnit.empty())
|
||||
{
|
||||
dtdlUnit.clear();
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("s") == 0)
|
||||
{
|
||||
dtdlUnit = "second";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("km/h") == 0)
|
||||
{
|
||||
dtdlUnit = "kilometrePerHour";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("km") == 0)
|
||||
{
|
||||
dtdlUnit = "kilometre";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("celsius") == 0)
|
||||
{
|
||||
dtdlUnit = "degreeCelsius";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("m/s2") == 0)
|
||||
{
|
||||
dtdlUnit = "metrePerSecondSquared";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("degrees/s") == 0)
|
||||
{
|
||||
dtdlUnit = "degreePerSecond";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("kg") == 0)
|
||||
{
|
||||
dtdlUnit = "kilogram";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("l") == 0)
|
||||
{
|
||||
dtdlUnit = "litre";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("g/km") == 0)
|
||||
{
|
||||
dtdlUnit = "gramPerKiloemtre"; // TODO: Add this to DTDL (it's a unit of measurement for CO2 Emissions)
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("cm3") == 0)
|
||||
{
|
||||
dtdlUnit = "cubicCentimetre";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("kw") == 0)
|
||||
{
|
||||
dtdlUnit = "kilowatt";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("n.m") == 0) // N.m (when in mixed case)
|
||||
{
|
||||
dtdlUnit = "newtonMetre"; // TODO: Add this to DTDL (it's the unit for Torque)
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("rpm") == 0)
|
||||
{
|
||||
dtdlUnit = "revolutionPerMinute";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("kpa") == 0)
|
||||
{
|
||||
dtdlUnit = "kilopascal";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("g/s") == 0)
|
||||
{
|
||||
dtdlUnit = "gramPerSecond";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("percent") == 0)
|
||||
{
|
||||
dtdlUnit = "percent";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("m") == 0)
|
||||
{
|
||||
dtdlUnit = "metre";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("l/100km") == 0)
|
||||
{
|
||||
dtdlUnit = "litrePer100Kilometre"; // TODO: Add this to DTDL (it's the unit for Consumption)
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("degrees") == 0)
|
||||
{
|
||||
dtdlUnit = "degreeOfArc";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("mm") == 0)
|
||||
{
|
||||
dtdlUnit = "millimetre";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("inch") == 0)
|
||||
{
|
||||
dtdlUnit = "inch";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("v") == 0) // V
|
||||
{
|
||||
dtdlUnit = "volt";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("a") == 0) // A
|
||||
{
|
||||
dtdlUnit = "ampere";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("pa") == 0)
|
||||
{
|
||||
dtdlUnit = "pascal";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("ratio") == 0)
|
||||
{
|
||||
dtdlUnit = "ratio"; // TODO: Add this to DTDL
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("min") == 0)
|
||||
{
|
||||
dtdlUnit = "minute";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("l/h") == 0)
|
||||
{
|
||||
dtdlUnit = "litrePerHour";
|
||||
}
|
||||
else if (lowercaseVspecUnit.compare("kwh") ==0) // kWh
|
||||
{
|
||||
dtdlUnit = "kilowattHour";
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void VspecToDtdlConverter::TraverseAttribute(const vspec::Node& attribute, dtdl::Property& property)
|
||||
{
|
||||
property.Name = attribute.Name;
|
||||
property.Writable = false;
|
||||
if (!ConvertDatatypeToSchema(attribute.Datatype, property.Schema))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for datatype '" + attribute.Datatype + "'");
|
||||
}
|
||||
if (!ConverVspecUnitToDtdlUnit(attribute.Unit, property.Unit))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for unit '" + attribute.Unit + "'");
|
||||
}
|
||||
}
|
||||
|
||||
void VspecToDtdlConverter::TraverseActuator(const vspec::Node& actuator, dtdl::Property& property)
|
||||
{
|
||||
property.Name = actuator.Name;
|
||||
property.Writable = true;
|
||||
if (!ConvertDatatypeToSchema(actuator.Datatype, property.Schema))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for datatype '" + actuator.Datatype + "'");
|
||||
}
|
||||
if (!ConverVspecUnitToDtdlUnit(actuator.Unit, property.Unit))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for unit '" + actuator.Unit + "'");
|
||||
}
|
||||
}
|
||||
|
||||
void VspecToDtdlConverter::TraverseSensor(const vspec::Node& sensor, dtdl::Telemetry& telemetry)
|
||||
{
|
||||
telemetry.Name = sensor.Name;
|
||||
if (!ConvertDatatypeToSchema(sensor.Datatype, telemetry.Schema))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for datatype '" + sensor.Datatype + "'");
|
||||
}
|
||||
if (!ConverVspecUnitToDtdlUnit(sensor.Unit, telemetry.Unit))
|
||||
{
|
||||
throw ConversionException("No schema equivalent for unit '" + sensor.Unit + "'");
|
||||
}
|
||||
}
|
||||
|
||||
void VspecToDtdlConverter::TraverseBranch(const vspec::Node& branch, dtdl::Component& component)
|
||||
{
|
||||
// std::cout << branch.Name << std::endl;
|
||||
component.Name = branch.Name;
|
||||
|
||||
for (auto it = branch.Children.begin(); it != branch.Children.end(); it++ )
|
||||
{
|
||||
if ((*it)->Type.compare("branch") == 0)
|
||||
{
|
||||
// PrintBranch(**it, level+1);
|
||||
std::shared_ptr<dtdl::Component> subComponent(new dtdl::Component());
|
||||
component.Components.push_back(subComponent);
|
||||
TraverseBranch(*(it->get()), *(subComponent.get()));
|
||||
}
|
||||
else if ((*it)->Type.compare("sensor") == 0)
|
||||
{
|
||||
std::shared_ptr<dtdl::Telemetry> telemetry(new dtdl::Telemetry());
|
||||
component.Telemetries.push_back(telemetry);
|
||||
TraverseSensor(*(it->get()), *(telemetry.get()));
|
||||
}
|
||||
else if ((*it)->Type.compare("attribute") == 0)
|
||||
{
|
||||
std::shared_ptr<dtdl::Property> property(new dtdl::Property());
|
||||
component.Properties.push_back(property);
|
||||
TraverseAttribute(*(it->get()), *(property.get()));
|
||||
}
|
||||
else if ((*it)->Type.compare("actuator") == 0)
|
||||
{
|
||||
std::shared_ptr<dtdl::Property> property(new dtdl::Property());
|
||||
component.Properties.push_back(property);
|
||||
TraverseActuator(*(it->get()), *(property.get()));
|
||||
}
|
||||
else
|
||||
{
|
||||
// error - unexpected type
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// <copyright company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
#ifndef VSPEC_TO_DTDL_CONVERTER_H
|
||||
#define VSPEC_TO_DTDL_CONVERTER_H
|
||||
|
||||
#include "vspec-definition.h"
|
||||
#include "dtdl-definition.h"
|
||||
|
||||
/*
|
||||
vspec has a type field that maps to DTDL’s @type field. Here are my thoughts on the mappings of VSS types to DTDL types:
|
||||
• branch => Component
|
||||
• attribute => Property that is not writable
|
||||
• sensor => Telemetry
|
||||
• actuator => Property that is writable (note: not sure if a Property would be considered non-static; if not, then perhaps a Command plus an associated Telemetry value would be needed)
|
||||
• stream (note: no direct equivalent)
|
||||
*/
|
||||
|
||||
|
||||
namespace microsoft::automotive::data
|
||||
{
|
||||
class ConversionException : public std::exception
|
||||
{
|
||||
public:
|
||||
ConversionException(const std::string& message)
|
||||
{
|
||||
this->message = message;
|
||||
}
|
||||
|
||||
virtual const char* what() const throw()
|
||||
{
|
||||
return message.c_str();
|
||||
}
|
||||
|
||||
protected:
|
||||
std::string message;
|
||||
};
|
||||
|
||||
class VspecToDtdlConverter
|
||||
{
|
||||
public:
|
||||
static void Convert(const vspec::Definition& vspecDefinition, dtdl::Definition& dtdlDefinition);
|
||||
|
||||
protected:
|
||||
static void ToLower(std::string& str);
|
||||
static bool ConvertDatatypeToSchema(const std::string& datatype, std::string& schema);
|
||||
static bool ConverVspecUnitToDtdlUnit(const std::string& vspecUnit, std::string& dtdlUnit);
|
||||
static void TraverseAttribute(const vspec::Node& attribute, dtdl::Property& property);
|
||||
static void TraverseActuator(const vspec::Node& actuator, dtdl::Property& property);
|
||||
static void TraverseSensor(const vspec::Node& sensor, dtdl::Telemetry& telemetry);
|
||||
static void TraverseBranch(const vspec::Node& branch, dtdl::Component& component);
|
||||
};
|
||||
|
||||
} // namespace microsoft::automotive::data
|
||||
|
||||
#endif // VSPEC_TO_DTDL_CONVERTER_H
|
|
@ -1,8 +0,0 @@
|
|||
boost
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
cmake_install.cmake
|
||||
jsoncpp
|
||||
Makefile
|
||||
vehicle_signal_specification
|
||||
yanml-cpp
|
|
@ -1,73 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(third-party VERSION 1.0)
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
|
||||
# Vehicle Signal Specification
|
||||
|
||||
set(VSS_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/vehicle_signal_specification)
|
||||
|
||||
ExternalProject_Add (vehicle_signal_specification
|
||||
GIT_REPOSITORY https://github.com/GENIVI/vehicle_signal_specification
|
||||
GIT_TAG master
|
||||
PREFIX ${VSS_INSTALL_LOCATION}
|
||||
# Disable all other steps
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
|
||||
|
||||
# BOOST program_options
|
||||
|
||||
set( boost_URL "http://sourceforge.net/projects/boost/files/boost/1.73.0/boost_1_73_0.tar.bz2" )
|
||||
set( boost_SHA1 "6d6ed02b29c860fd21b274fc4e1f820855e765e9" )
|
||||
set( boost_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/boost )
|
||||
set( boost_INCLUDE_DIR ${boost_INSTALL}/include )
|
||||
set( boost_LIB_DIR ${boost_INSTALL}/lib )
|
||||
|
||||
ExternalProject_Add( external_boost
|
||||
PREFIX boost
|
||||
URL ${boost_URL}
|
||||
URL_HASH SHA1=${boost_SHA1}
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND ./bootstrap.sh --with-libraries=program_options --prefix=${boost_INSTALL}
|
||||
BUILD_COMMAND ./b2 install link=static variant=release threading=multi runtime-link=static
|
||||
INSTALL_COMMAND ""
|
||||
INSTALL_DIR ${boost_INSTALL} )
|
||||
|
||||
set( boost_LIBRARY_SUFFIX .a )
|
||||
|
||||
add_library( boost::program_options STATIC IMPORTED )
|
||||
|
||||
set_property( TARGET boost::program_options PROPERTY IMPORTED_LOCATION ${boost_LIB_DIR}/libboost_program_options${boost_LIBRARY_SUFFIX} )
|
||||
set_property( TARGET boost::program_options PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${boost_INCLUDE_DIR} )
|
||||
add_dependencies( boost::program_options external_boost )
|
||||
|
||||
# yaml-cpp
|
||||
|
||||
set(YAML_CPP_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/yanml-cpp)
|
||||
|
||||
ExternalProject_Add (yaml-cpp
|
||||
GIT_REPOSITORY https://github.com/jbeder/yaml-cpp
|
||||
GIT_TAG master
|
||||
PREFIX ${YAML_CPP_INSTALL_LOCATION}
|
||||
# Disable all other steps
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
|
||||
# jsoncpp
|
||||
|
||||
set(JSONCPP_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/jsoncpp)
|
||||
|
||||
ExternalProject_Add (jsoncpp
|
||||
GIT_REPOSITORY https://github.com/open-source-parsers/jsoncpp
|
||||
GIT_TAG master
|
||||
PREFIX ${JSONCPP_INSTALL_LOCATION}
|
||||
# Disable all other steps
|
||||
INSTALL_COMMAND ""
|
||||
)
|
Загрузка…
Ссылка в новой задаче