save
This commit is contained in:
parent
314a28bf8f
commit
61b1b39b46
Binary file not shown.
BIN
.vs/CanRead.slnx/v18/.wsuo
Normal file
BIN
.vs/CanRead.slnx/v18/.wsuo
Normal file
Binary file not shown.
31
.vs/CanRead.slnx/v18/DocumentLayout.backup.json
Normal file
31
.vs/CanRead.slnx/v18/DocumentLayout.backup.json
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"WorkspaceRootPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\",
|
||||||
|
"Documents": [],
|
||||||
|
"DocumentGroupContainers": [
|
||||||
|
{
|
||||||
|
"Orientation": 0,
|
||||||
|
"VerticalTabListWidth": 256,
|
||||||
|
"DocumentGroups": [
|
||||||
|
{
|
||||||
|
"DockedWidth": 200,
|
||||||
|
"SelectedChildIndex": -1,
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
31
.vs/CanRead.slnx/v18/DocumentLayout.json
Normal file
31
.vs/CanRead.slnx/v18/DocumentLayout.json
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"WorkspaceRootPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\",
|
||||||
|
"Documents": [],
|
||||||
|
"DocumentGroupContainers": [
|
||||||
|
{
|
||||||
|
"Orientation": 0,
|
||||||
|
"VerticalTabListWidth": 256,
|
||||||
|
"DocumentGroups": [
|
||||||
|
{
|
||||||
|
"DockedWidth": 200,
|
||||||
|
"SelectedChildIndex": -1,
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
.vs/CanRead/v18/workspaceFileList.bin
Normal file
BIN
.vs/CanRead/v18/workspaceFileList.bin
Normal file
Binary file not shown.
8
.vs/VSWorkspaceState.json
Normal file
8
.vs/VSWorkspaceState.json
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"ExpandedNodes": [
|
||||||
|
"",
|
||||||
|
"\\BlazorApp",
|
||||||
|
"\\BlazorApp\\bin\\Release\\net10.0"
|
||||||
|
],
|
||||||
|
"PreviewInSolutionExplorer": false
|
||||||
|
}
|
||||||
BIN
.vs/slnx.sqlite
Normal file
BIN
.vs/slnx.sqlite
Normal file
Binary file not shown.
3
BlazorApp.slnx
Normal file
3
BlazorApp.slnx
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<Solution>
|
||||||
|
<Project Path="BlazorApp/BlazorApp.csproj" />
|
||||||
|
</Solution>
|
||||||
15
BlazorApp/BlazorApp.csproj
Normal file
15
BlazorApp/BlazorApp.csproj
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Peak.PCANBasic.NET" Version="4.10.1.968" />
|
||||||
|
<PackageReference Include="SocketCANSharp" Version="0.13.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
7
BlazorApp/BlazorApp.csproj.user
Normal file
7
BlazorApp/BlazorApp.csproj.user
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ActiveDebugProfile>https</ActiveDebugProfile>
|
||||||
|
<NameOfLastUsedPublishProfile>D:\CanRead\BlazorApp\BlazorApp\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
24
BlazorApp/Components/App.razor
Normal file
24
BlazorApp/Components/App.razor
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<base href="/" />
|
||||||
|
<ResourcePreloader />
|
||||||
|
<link rel="stylesheet" href="@Assets["lib/bootstrap/dist/css/bootstrap.min.css"]" />
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="@Assets["app.css"]" />
|
||||||
|
<link rel="stylesheet" href="@Assets["BlazorApp.styles.css"]" />
|
||||||
|
<ImportMap />
|
||||||
|
<link rel="icon" type="image/png" href="favicon.png" />
|
||||||
|
<HeadOutlet @rendermode="InteractiveServer" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<Routes @rendermode="InteractiveServer" />
|
||||||
|
<ReconnectModal />
|
||||||
|
<script src="@Assets["_framework/blazor.web.js"]"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
23
BlazorApp/Components/Layout/MainLayout.razor
Normal file
23
BlazorApp/Components/Layout/MainLayout.razor
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
@inherits LayoutComponentBase
|
||||||
|
|
||||||
|
<div class="page">
|
||||||
|
<div class="sidebar">
|
||||||
|
<NavMenu />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div class="top-row px-4">
|
||||||
|
<a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article class="content px-4">
|
||||||
|
@Body
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="blazor-error-ui" data-nosnippet>
|
||||||
|
An unhandled error has occurred.
|
||||||
|
<a href="." class="reload">Reload</a>
|
||||||
|
<span class="dismiss">🗙</span>
|
||||||
|
</div>
|
||||||
98
BlazorApp/Components/Layout/MainLayout.razor.css
Normal file
98
BlazorApp/Components/Layout/MainLayout.razor.css
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
.page {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row {
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
border-bottom: 1px solid #d6d5d5;
|
||||||
|
justify-content: flex-end;
|
||||||
|
height: 3.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row ::deep a, .top-row ::deep .btn-link {
|
||||||
|
white-space: nowrap;
|
||||||
|
margin-left: 1.5rem;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row ::deep a:first-child {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640.98px) {
|
||||||
|
.top-row {
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row ::deep a, .top-row ::deep .btn-link {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 641px) {
|
||||||
|
.page {
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
width: 250px;
|
||||||
|
height: 100vh;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row.auth ::deep a:first-child {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row, article {
|
||||||
|
padding-left: 2rem !important;
|
||||||
|
padding-right: 1.5rem !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#blazor-error-ui {
|
||||||
|
color-scheme: light only;
|
||||||
|
background: lightyellow;
|
||||||
|
bottom: 0;
|
||||||
|
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: none;
|
||||||
|
left: 0;
|
||||||
|
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#blazor-error-ui .dismiss {
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
right: 0.75rem;
|
||||||
|
top: 0.5rem;
|
||||||
|
}
|
||||||
24
BlazorApp/Components/Layout/NavMenu.razor
Normal file
24
BlazorApp/Components/Layout/NavMenu.razor
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
<div class="top-row ps-3 navbar navbar-dark">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<a class="navbar-brand" href="">BlazorApp</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
|
||||||
|
|
||||||
|
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
|
||||||
|
<nav class="nav flex-column">
|
||||||
|
<div class="nav-item px-3">
|
||||||
|
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||||
|
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
|
||||||
|
</NavLink>
|
||||||
|
</div>
|
||||||
|
<div class="nav-item px-3">
|
||||||
|
<NavLink class="nav-link d-flex align-items-center" href="can">
|
||||||
|
<span class="bi bi-book-half nav-icon"></span>
|
||||||
|
<span>Can Read</span>
|
||||||
|
</NavLink>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
105
BlazorApp/Components/Layout/NavMenu.razor.css
Normal file
105
BlazorApp/Components/Layout/NavMenu.razor.css
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
.navbar-toggler {
|
||||||
|
appearance: none;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 3.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
color: white;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.5rem;
|
||||||
|
right: 1rem;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||||
|
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-toggler:checked {
|
||||||
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row {
|
||||||
|
min-height: 3.5rem;
|
||||||
|
background-color: rgba(0,0,0,0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bi {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
width: 1.25rem;
|
||||||
|
height: 1.25rem;
|
||||||
|
margin-right: 0.75rem;
|
||||||
|
top: -1px;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bi-house-door-fill-nav-menu {
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.bi-plus-square-fill-nav-menu {
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.bi-list-nested-nav-menu {
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item:first-of-type {
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item:last-of-type {
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item ::deep .nav-link {
|
||||||
|
color: #d7d7d7;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 3rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item ::deep a.active {
|
||||||
|
background-color: rgba(255,255,255,0.37);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item ::deep .nav-link:hover {
|
||||||
|
background-color: rgba(255,255,255,0.1);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-scrollable {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-toggler:checked ~ .nav-scrollable {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 641px) {
|
||||||
|
.navbar-toggler {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-scrollable {
|
||||||
|
/* Never collapse the sidebar for wide screens */
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
/* Allow sidebar to scroll for tall menus */
|
||||||
|
height: calc(100vh - 3.5rem);
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
31
BlazorApp/Components/Layout/ReconnectModal.razor
Normal file
31
BlazorApp/Components/Layout/ReconnectModal.razor
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<script type="module" src="@Assets["Components/Layout/ReconnectModal.razor.js"]"></script>
|
||||||
|
|
||||||
|
<dialog id="components-reconnect-modal" data-nosnippet>
|
||||||
|
<div class="components-reconnect-container">
|
||||||
|
<div class="components-rejoining-animation" aria-hidden="true">
|
||||||
|
<div></div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
<p class="components-reconnect-first-attempt-visible">
|
||||||
|
Rejoining the server...
|
||||||
|
</p>
|
||||||
|
<p class="components-reconnect-repeated-attempt-visible">
|
||||||
|
Rejoin failed... trying again in <span id="components-seconds-to-next-attempt"></span> seconds.
|
||||||
|
</p>
|
||||||
|
<p class="components-reconnect-failed-visible">
|
||||||
|
Failed to rejoin.<br />Please retry or reload the page.
|
||||||
|
</p>
|
||||||
|
<button id="components-reconnect-button" class="components-reconnect-failed-visible">
|
||||||
|
Retry
|
||||||
|
</button>
|
||||||
|
<p class="components-pause-visible">
|
||||||
|
The session has been paused by the server.
|
||||||
|
</p>
|
||||||
|
<button id="components-resume-button" class="components-pause-visible">
|
||||||
|
Resume
|
||||||
|
</button>
|
||||||
|
<p class="components-resume-failed-visible">
|
||||||
|
Failed to resume the session.<br />Please reload the page.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</dialog>
|
||||||
157
BlazorApp/Components/Layout/ReconnectModal.razor.css
Normal file
157
BlazorApp/Components/Layout/ReconnectModal.razor.css
Normal file
|
|
@ -0,0 +1,157 @@
|
||||||
|
.components-reconnect-first-attempt-visible,
|
||||||
|
.components-reconnect-repeated-attempt-visible,
|
||||||
|
.components-reconnect-failed-visible,
|
||||||
|
.components-pause-visible,
|
||||||
|
.components-resume-failed-visible,
|
||||||
|
.components-rejoining-animation {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible,
|
||||||
|
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation,
|
||||||
|
#components-reconnect-modal.components-reconnect-paused .components-pause-visible,
|
||||||
|
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible,
|
||||||
|
#components-reconnect-modal.components-reconnect-retrying,
|
||||||
|
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible,
|
||||||
|
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation,
|
||||||
|
#components-reconnect-modal.components-reconnect-failed,
|
||||||
|
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#components-reconnect-modal {
|
||||||
|
background-color: white;
|
||||||
|
width: 20rem;
|
||||||
|
margin: 20vh auto;
|
||||||
|
padding: 2rem;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
opacity: 0;
|
||||||
|
transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
|
||||||
|
animation: components-reconnect-modal-fadeOutOpacity 0.5s both;
|
||||||
|
&[open]
|
||||||
|
|
||||||
|
{
|
||||||
|
animation: components-reconnect-modal-slideUp 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity 0.5s ease-in-out 0.3s;
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal::backdrop {
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
animation: components-reconnect-modal-fadeInOpacity 0.5s ease-in-out;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes components-reconnect-modal-slideUp {
|
||||||
|
0% {
|
||||||
|
transform: translateY(30px) scale(0.95);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes components-reconnect-modal-fadeInOpacity {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes components-reconnect-modal-fadeOutOpacity {
|
||||||
|
0% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.components-reconnect-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal p {
|
||||||
|
margin: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal button {
|
||||||
|
border: 0;
|
||||||
|
background-color: #6b9ed2;
|
||||||
|
color: white;
|
||||||
|
padding: 4px 24px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal button:hover {
|
||||||
|
background-color: #3b6ea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#components-reconnect-modal button:active {
|
||||||
|
background-color: #6b9ed2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.components-rejoining-animation {
|
||||||
|
position: relative;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.components-rejoining-animation div {
|
||||||
|
position: absolute;
|
||||||
|
border: 3px solid #0087ff;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 50%;
|
||||||
|
animation: components-rejoining-animation 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.components-rejoining-animation div:nth-child(2) {
|
||||||
|
animation-delay: -0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes components-rejoining-animation {
|
||||||
|
0% {
|
||||||
|
top: 40px;
|
||||||
|
left: 40px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
4.9% {
|
||||||
|
top: 40px;
|
||||||
|
left: 40px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
5% {
|
||||||
|
top: 40px;
|
||||||
|
left: 40px;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
63
BlazorApp/Components/Layout/ReconnectModal.razor.js
Normal file
63
BlazorApp/Components/Layout/ReconnectModal.razor.js
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
// Set up event handlers
|
||||||
|
const reconnectModal = document.getElementById("components-reconnect-modal");
|
||||||
|
reconnectModal.addEventListener("components-reconnect-state-changed", handleReconnectStateChanged);
|
||||||
|
|
||||||
|
const retryButton = document.getElementById("components-reconnect-button");
|
||||||
|
retryButton.addEventListener("click", retry);
|
||||||
|
|
||||||
|
const resumeButton = document.getElementById("components-resume-button");
|
||||||
|
resumeButton.addEventListener("click", resume);
|
||||||
|
|
||||||
|
function handleReconnectStateChanged(event) {
|
||||||
|
if (event.detail.state === "show") {
|
||||||
|
reconnectModal.showModal();
|
||||||
|
} else if (event.detail.state === "hide") {
|
||||||
|
reconnectModal.close();
|
||||||
|
} else if (event.detail.state === "failed") {
|
||||||
|
document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||||
|
} else if (event.detail.state === "rejected") {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function retry() {
|
||||||
|
document.removeEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Reconnect will asynchronously return:
|
||||||
|
// - true to mean success
|
||||||
|
// - false to mean we reached the server, but it rejected the connection (e.g., unknown circuit ID)
|
||||||
|
// - exception to mean we didn't reach the server (this can be sync or async)
|
||||||
|
const successful = await Blazor.reconnect();
|
||||||
|
if (!successful) {
|
||||||
|
// We have been able to reach the server, but the circuit is no longer available.
|
||||||
|
// We'll reload the page so the user can continue using the app as quickly as possible.
|
||||||
|
const resumeSuccessful = await Blazor.resumeCircuit();
|
||||||
|
if (!resumeSuccessful) {
|
||||||
|
location.reload();
|
||||||
|
} else {
|
||||||
|
reconnectModal.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
// We got an exception, server is currently unavailable
|
||||||
|
document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function resume() {
|
||||||
|
try {
|
||||||
|
const successful = await Blazor.resumeCircuit();
|
||||||
|
if (!successful) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function retryWhenDocumentBecomesVisible() {
|
||||||
|
if (document.visibilityState === "visible") {
|
||||||
|
await retry();
|
||||||
|
}
|
||||||
|
}
|
||||||
127
BlazorApp/Components/Pages/Can.razor
Normal file
127
BlazorApp/Components/Pages/Can.razor
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
@page "/can"
|
||||||
|
@inject ICanService CanService
|
||||||
|
@implements IDisposable
|
||||||
|
|
||||||
|
<div class="container mt-4">
|
||||||
|
<div class="card shadow-sm">
|
||||||
|
|
||||||
|
<!-- HEADER -->
|
||||||
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<h5 class="mb-0">CAN Monitor (Live View)</h5>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="btn btn-success btn-sm me-2"
|
||||||
|
@onclick="Start"
|
||||||
|
disabled="@isRunning">
|
||||||
|
▶ Start
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button class="btn btn-danger btn-sm"
|
||||||
|
@onclick="Stop"
|
||||||
|
disabled="@(!isRunning)">
|
||||||
|
■ Stop
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- TABLE -->
|
||||||
|
<div class="card-body p-0" style="max-height: 420px; overflow-y: auto;">
|
||||||
|
<table class="table table-striped table-hover table-sm mb-0">
|
||||||
|
<thead class="table-dark sticky-top">
|
||||||
|
<tr>
|
||||||
|
<th style="width:140px">Time</th>
|
||||||
|
<th style="width:80px">CAN-ID</th>
|
||||||
|
<th style="width:120px">Meaning</th>
|
||||||
|
<th style="width:60px">Length</th>
|
||||||
|
<th>Raw Data</th>
|
||||||
|
<th style="width:200px">Result</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var msg in messages.Values.OrderBy(m => m.Id))
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>@msg.Timestamp.ToString("HH:mm:ss.fff")</td>
|
||||||
|
<td class="fw-bold text-primary">
|
||||||
|
@msg.Id.ToString("X3")
|
||||||
|
</td>
|
||||||
|
<td>@msg.Meaning</td>
|
||||||
|
<td>@msg.Length</td>
|
||||||
|
<td class="font-monospace">
|
||||||
|
@BitConverter.ToString(
|
||||||
|
msg.Data.Take(msg.Length).ToArray())
|
||||||
|
</td>
|
||||||
|
<td class="fw-semibold">
|
||||||
|
@msg.ValueText
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- FOOTER -->
|
||||||
|
<div class="card-footer text-muted small d-flex justify-content-between">
|
||||||
|
<span>Total CAN IDs: <b>@messages.Count</b></span>
|
||||||
|
<span>Status: <b>@status</b></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
// DATA STORAGE (1 ID = 1 ROW)
|
||||||
|
private Dictionary<uint, CanMessage> messages = new();
|
||||||
|
|
||||||
|
private bool isRunning = false;
|
||||||
|
private string status = "STOPPED";
|
||||||
|
|
||||||
|
// INIT
|
||||||
|
protected override void OnInitialized()
|
||||||
|
{
|
||||||
|
CanService.OnMessageReceived += OnCanMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RECEIVE CAN FRAME
|
||||||
|
private void OnCanMessage(CanMessage msg)
|
||||||
|
{
|
||||||
|
InvokeAsync(() =>
|
||||||
|
{
|
||||||
|
// 🔴 Update data on the SAME row by CAN-ID
|
||||||
|
messages[msg.Id] = msg;
|
||||||
|
|
||||||
|
StateHasChanged();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// START
|
||||||
|
private async Task Start()
|
||||||
|
{
|
||||||
|
if (isRunning) return;
|
||||||
|
|
||||||
|
status = "INITIALIZING...";
|
||||||
|
StateHasChanged();
|
||||||
|
|
||||||
|
await CanService.InitAsync(); // BẮT BUỘC
|
||||||
|
CanService.StartStream();
|
||||||
|
|
||||||
|
isRunning = true;
|
||||||
|
status = "RUNNING";
|
||||||
|
}
|
||||||
|
|
||||||
|
// STOP
|
||||||
|
private void Stop()
|
||||||
|
{
|
||||||
|
if (!isRunning) return;
|
||||||
|
|
||||||
|
CanService.StopStream();
|
||||||
|
isRunning = false;
|
||||||
|
status = "STOPPED";
|
||||||
|
}
|
||||||
|
|
||||||
|
// CLEANUP
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
CanService.OnMessageReceived -= OnCanMessage;
|
||||||
|
CanService.StopStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
18
BlazorApp/Components/Pages/Counter.razor
Normal file
18
BlazorApp/Components/Pages/Counter.razor
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
@page "/counter"
|
||||||
|
|
||||||
|
<PageTitle>Counter</PageTitle>
|
||||||
|
|
||||||
|
<h1>Counter</h1>
|
||||||
|
|
||||||
|
<p role="status">Current count: @currentCount</p>
|
||||||
|
|
||||||
|
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
private int currentCount = 0;
|
||||||
|
|
||||||
|
private void IncrementCount()
|
||||||
|
{
|
||||||
|
currentCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
36
BlazorApp/Components/Pages/Error.razor
Normal file
36
BlazorApp/Components/Pages/Error.razor
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
@page "/Error"
|
||||||
|
@using System.Diagnostics
|
||||||
|
|
||||||
|
<PageTitle>Error</PageTitle>
|
||||||
|
|
||||||
|
<h1 class="text-danger">Error.</h1>
|
||||||
|
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||||
|
|
||||||
|
@if (ShowRequestId)
|
||||||
|
{
|
||||||
|
<p>
|
||||||
|
<strong>Request ID:</strong> <code>@RequestId</code>
|
||||||
|
</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
<h3>Development Mode</h3>
|
||||||
|
<p>
|
||||||
|
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||||
|
It can result in displaying sensitive information from exceptions to end users.
|
||||||
|
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||||
|
and restarting the app.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
@code{
|
||||||
|
[CascadingParameter]
|
||||||
|
private HttpContext? HttpContext { get; set; }
|
||||||
|
|
||||||
|
private string? RequestId { get; set; }
|
||||||
|
private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||||
|
|
||||||
|
protected override void OnInitialized() =>
|
||||||
|
RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
|
||||||
|
}
|
||||||
7
BlazorApp/Components/Pages/Home.razor
Normal file
7
BlazorApp/Components/Pages/Home.razor
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
@page "/"
|
||||||
|
|
||||||
|
<PageTitle>Home</PageTitle>
|
||||||
|
|
||||||
|
<h1>Hello, world!</h1>
|
||||||
|
|
||||||
|
Welcome to your new app.
|
||||||
5
BlazorApp/Components/Pages/NotFound.razor
Normal file
5
BlazorApp/Components/Pages/NotFound.razor
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
@page "/not-found"
|
||||||
|
@layout MainLayout
|
||||||
|
|
||||||
|
<h3>Not Found</h3>
|
||||||
|
<p>Sorry, the content you are looking for does not exist.</p>
|
||||||
63
BlazorApp/Components/Pages/Weather.razor
Normal file
63
BlazorApp/Components/Pages/Weather.razor
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
@page "/weather"
|
||||||
|
|
||||||
|
<PageTitle>Weather</PageTitle>
|
||||||
|
|
||||||
|
<h1>Weather</h1>
|
||||||
|
|
||||||
|
<p>This component demonstrates showing data.</p>
|
||||||
|
|
||||||
|
@if (forecasts == null)
|
||||||
|
{
|
||||||
|
<p><em>Loading...</em></p>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Date</th>
|
||||||
|
<th aria-label="Temperature in Celsius">Temp. (C)</th>
|
||||||
|
<th aria-label="Temperature in Fahrenheit">Temp. (F)</th>
|
||||||
|
<th>Summary</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var forecast in forecasts)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>@forecast.Date.ToShortDateString()</td>
|
||||||
|
<td>@forecast.TemperatureC</td>
|
||||||
|
<td>@forecast.TemperatureF</td>
|
||||||
|
<td>@forecast.Summary</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
}
|
||||||
|
|
||||||
|
@code {
|
||||||
|
private WeatherForecast[]? forecasts;
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
// Simulate asynchronous loading to demonstrate a loading indicator
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
var startDate = DateOnly.FromDateTime(DateTime.Now);
|
||||||
|
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
|
||||||
|
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||||
|
{
|
||||||
|
Date = startDate.AddDays(index),
|
||||||
|
TemperatureC = Random.Shared.Next(-20, 55),
|
||||||
|
Summary = summaries[Random.Shared.Next(summaries.Length)]
|
||||||
|
}).ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
private class WeatherForecast
|
||||||
|
{
|
||||||
|
public DateOnly Date { get; set; }
|
||||||
|
public int TemperatureC { get; set; }
|
||||||
|
public string? Summary { get; set; }
|
||||||
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||||
|
}
|
||||||
|
}
|
||||||
6
BlazorApp/Components/Routes.razor
Normal file
6
BlazorApp/Components/Routes.razor
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<Router AppAssembly="typeof(Program).Assembly" NotFoundPage="typeof(Pages.NotFound)">
|
||||||
|
<Found Context="routeData">
|
||||||
|
<RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)" />
|
||||||
|
<FocusOnNavigate RouteData="routeData" Selector="h1" />
|
||||||
|
</Found>
|
||||||
|
</Router>
|
||||||
15
BlazorApp/Components/_Imports.razor
Normal file
15
BlazorApp/Components/_Imports.razor
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
@using System.Net.Http
|
||||||
|
@using System.Net.Http.Json
|
||||||
|
@using Microsoft.AspNetCore.Components.Forms
|
||||||
|
@using Microsoft.AspNetCore.Components.Routing
|
||||||
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
|
@using static Microsoft.AspNetCore.Components.Web.RenderMode
|
||||||
|
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||||
|
@using Microsoft.JSInterop
|
||||||
|
@using BlazorApp
|
||||||
|
@using BlazorApp.Components
|
||||||
|
@using BlazorApp.Components.Layout
|
||||||
|
@using BlazorApp.Models
|
||||||
|
@using BlazorApp.Services
|
||||||
|
@using BlazorApp.Services.Interfaces
|
||||||
|
@using BlazorApp.Services.Windows
|
||||||
15
BlazorApp/Models/CanMessage.cs
Normal file
15
BlazorApp/Models/CanMessage.cs
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
namespace BlazorApp.Models
|
||||||
|
{
|
||||||
|
public class CanMessage
|
||||||
|
{
|
||||||
|
public uint Id { get; set; }
|
||||||
|
public byte Length { get; set; }
|
||||||
|
public byte[] Data { get; set; } = new byte[8];
|
||||||
|
public DateTime Timestamp { get; set; }
|
||||||
|
|
||||||
|
// ===== CANopen Info =====
|
||||||
|
public string Meaning => CanopenDecoder.GetMeaning(Id);
|
||||||
|
public string ValueText => CanopenDecoder.GetValue(Id, Data, Length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
50
BlazorApp/Models/Canopen/CanopenDeviceRegistry.cs
Normal file
50
BlazorApp/Models/Canopen/CanopenDeviceRegistry.cs
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
using BlazorApp.Models.Canopen.Eds;
|
||||||
|
namespace BlazorApp.Models.Canopen
|
||||||
|
{
|
||||||
|
public static class CanopenDeviceRegistry
|
||||||
|
{
|
||||||
|
private static readonly Dictionary<int, ICanopenDeviceDecoder> _decoders
|
||||||
|
= new();
|
||||||
|
|
||||||
|
static CanopenDeviceRegistry()
|
||||||
|
{
|
||||||
|
// 🔹 Ví dụ cấu hình từ EDS
|
||||||
|
var encoderEds = new EdsDevice
|
||||||
|
{
|
||||||
|
NodeId = 5,
|
||||||
|
DeviceName = "Encoder GXMMW",
|
||||||
|
Tpdos =
|
||||||
|
{
|
||||||
|
[1] = new EdsTpdo
|
||||||
|
{
|
||||||
|
PdoIndex = 1,
|
||||||
|
Objects =
|
||||||
|
{
|
||||||
|
new EdsObject
|
||||||
|
{
|
||||||
|
Index = 0x6004,
|
||||||
|
Name = "Position",
|
||||||
|
BitOffset = 0,
|
||||||
|
BitLength = 32,
|
||||||
|
Factor = 0.094,
|
||||||
|
Unit = "mm"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Register(new EdsDeviceDecoder(encoderEds));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Register(ICanopenDeviceDecoder decoder)
|
||||||
|
{
|
||||||
|
_decoders[decoder.NodeId] = decoder;
|
||||||
|
}
|
||||||
|
public static ICanopenDeviceDecoder? GetDecoder(int nodeId)
|
||||||
|
{
|
||||||
|
return _decoders.TryGetValue(nodeId, out var d) ? d : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
10
BlazorApp/Models/Canopen/Eds/EdsDevice.cs
Normal file
10
BlazorApp/Models/Canopen/Eds/EdsDevice.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
namespace BlazorApp.Models.Canopen.Eds
|
||||||
|
{
|
||||||
|
public class EdsDevice
|
||||||
|
{
|
||||||
|
public int NodeId { get; set; }
|
||||||
|
public string DeviceName { get; set; } = "";
|
||||||
|
|
||||||
|
public Dictionary<int, EdsTpdo> Tpdos { get; set; } = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
47
BlazorApp/Models/Canopen/Eds/EdsDeviceDecoder.cs
Normal file
47
BlazorApp/Models/Canopen/Eds/EdsDeviceDecoder.cs
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
using BlazorApp.Models.Canopen;
|
||||||
|
using BlazorApp.Models.Canopen.Eds;
|
||||||
|
namespace BlazorApp.Models.Canopen.Eds
|
||||||
|
{
|
||||||
|
public class EdsDeviceDecoder : ICanopenDeviceDecoder
|
||||||
|
{
|
||||||
|
private readonly EdsDevice _device;
|
||||||
|
|
||||||
|
public int NodeId => _device.NodeId;
|
||||||
|
|
||||||
|
public EdsDeviceDecoder(EdsDevice device)
|
||||||
|
{
|
||||||
|
_device = device;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string DecodeTpdo(int pdoIndex, byte[] data, byte length)
|
||||||
|
{
|
||||||
|
if (!_device.Tpdos.TryGetValue(pdoIndex, out var tpdo))
|
||||||
|
return "-";
|
||||||
|
|
||||||
|
var results = new List<string>();
|
||||||
|
|
||||||
|
foreach (var obj in tpdo.Objects)
|
||||||
|
{
|
||||||
|
ulong raw = ReadBits(data, obj.BitOffset, obj.BitLength);
|
||||||
|
double value = raw * obj.Factor;
|
||||||
|
|
||||||
|
results.Add($"{obj.Name}: {value:F2} {obj.Unit}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Join(" | ", results);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ulong ReadBits(byte[] data, int bitOffset, int bitLength)
|
||||||
|
{
|
||||||
|
ulong value = 0;
|
||||||
|
int byteOffset = bitOffset / 8;
|
||||||
|
|
||||||
|
for (int i = 0; i < bitLength / 8; i++)
|
||||||
|
{
|
||||||
|
value |= (ulong)data[byteOffset + i] << (8 * i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
BlazorApp/Models/Canopen/Eds/EdsObject.cs
Normal file
13
BlazorApp/Models/Canopen/Eds/EdsObject.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
namespace BlazorApp.Models.Canopen.Eds
|
||||||
|
{
|
||||||
|
public class EdsObject
|
||||||
|
{
|
||||||
|
public ushort Index { get; set; }
|
||||||
|
public byte SubIndex { get; set; }
|
||||||
|
public string Name { get; set; } = "";
|
||||||
|
public double Factor { get; set; } = 1.0;
|
||||||
|
public string Unit { get; set; } = "";
|
||||||
|
public int BitOffset { get; set; }
|
||||||
|
public int BitLength { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
8
BlazorApp/Models/Canopen/Eds/EdsTpdo.cs
Normal file
8
BlazorApp/Models/Canopen/Eds/EdsTpdo.cs
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
namespace BlazorApp.Models.Canopen.Eds
|
||||||
|
{
|
||||||
|
public class EdsTpdo
|
||||||
|
{
|
||||||
|
public int PdoIndex { get; set; }
|
||||||
|
public List<EdsObject> Objects { get; set; } = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
10
BlazorApp/Models/Canopen/ICanopenDeviceDecoder.cs
Normal file
10
BlazorApp/Models/Canopen/ICanopenDeviceDecoder.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
using BlazorApp.Models;
|
||||||
|
namespace BlazorApp.Models.Canopen
|
||||||
|
{
|
||||||
|
public interface ICanopenDeviceDecoder
|
||||||
|
{
|
||||||
|
int NodeId { get; }
|
||||||
|
|
||||||
|
string DecodeTpdo(int pdoIndex, byte[] data, byte length);
|
||||||
|
}
|
||||||
|
}
|
||||||
56
BlazorApp/Models/CanopenDecoder.cs
Normal file
56
BlazorApp/Models/CanopenDecoder.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
using BlazorApp.Models.Canopen;
|
||||||
|
namespace BlazorApp.Models
|
||||||
|
{
|
||||||
|
public class CanopenDecoder
|
||||||
|
{
|
||||||
|
public static string GetMeaning(uint id)
|
||||||
|
{
|
||||||
|
if (id == 0x080) return "SYNC";
|
||||||
|
|
||||||
|
if (id >= 0x081 && id <= 0x0FF)
|
||||||
|
return $"EMCY (Node {id - 0x080})";
|
||||||
|
|
||||||
|
if (id >= 0x700 && id <= 0x77F)
|
||||||
|
return $"Heartbeat (Node {id - 0x700})";
|
||||||
|
|
||||||
|
if (id >= 0x180 && id <= 0x4FF)
|
||||||
|
{
|
||||||
|
int pdoIndex = (int)((id - 0x180) / 0x100) + 1;
|
||||||
|
int nodeId = (int)(id - (0x180 + (pdoIndex - 1) * 0x100));
|
||||||
|
return $"TPDO{pdoIndex} (Node {nodeId})";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetValue(uint id, byte[] data, byte length)
|
||||||
|
{
|
||||||
|
if (id >= 0x180 && id <= 0x4FF)
|
||||||
|
{
|
||||||
|
int pdoIndex = (int)((id - 0x180) / 0x100) + 1;
|
||||||
|
int nodeId = (int)(id - (0x180 + (pdoIndex - 1) * 0x100));
|
||||||
|
|
||||||
|
var decoder = CanopenDeviceRegistry.GetDecoder(nodeId);
|
||||||
|
if (decoder != null)
|
||||||
|
return decoder.DecodeTpdo(pdoIndex, data, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id >= 0x700 && id <= 0x77F && length >= 1)
|
||||||
|
return DecodeNmtState(data[0]);
|
||||||
|
|
||||||
|
return "No Error";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string DecodeNmtState(byte value)
|
||||||
|
{
|
||||||
|
return value switch
|
||||||
|
{
|
||||||
|
0x00 => "Boot-up",
|
||||||
|
0x04 => "Stopped",
|
||||||
|
0x05 => "Operational",
|
||||||
|
0x7F => "Pre-operational",
|
||||||
|
_ => $"Unknown (0x{value:X2})"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
33
BlazorApp/Program.cs
Normal file
33
BlazorApp/Program.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
using BlazorApp.Components;
|
||||||
|
using BlazorApp.Services.Interfaces;
|
||||||
|
using BlazorApp.Services.Windows;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
if (OperatingSystem.IsWindows())
|
||||||
|
{
|
||||||
|
builder.Services.AddSingleton<ICanService, PcanCanService>();
|
||||||
|
}
|
||||||
|
builder.Services.AddRazorComponents()
|
||||||
|
.AddInteractiveServerComponents();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (!app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseExceptionHandler("/Error", createScopeForErrors: true);
|
||||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||||
|
app.UseHsts();
|
||||||
|
}
|
||||||
|
app.UseStatusCodePagesWithReExecute("/not-found", createScopeForStatusCodePages: true);
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseAntiforgery();
|
||||||
|
|
||||||
|
app.MapStaticAssets();
|
||||||
|
app.MapRazorComponents<App>()
|
||||||
|
.AddInteractiveServerRenderMode();
|
||||||
|
|
||||||
|
app.Run();
|
||||||
20
BlazorApp/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
20
BlazorApp/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<DeleteExistingFiles>false</DeleteExistingFiles>
|
||||||
|
<ExcludeApp_Data>false</ExcludeApp_Data>
|
||||||
|
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
|
||||||
|
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||||
|
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||||
|
<PublishProvider>FileSystem</PublishProvider>
|
||||||
|
<PublishUrl>D:\CanRead\BlazorApp\publish\</PublishUrl>
|
||||||
|
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||||
|
<_TargetId>Folder</_TargetId>
|
||||||
|
<SiteUrlToLaunchAfterPublish />
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||||
|
<ProjectGuid>d120649d-2906-09dd-7896-0626a755fff4</ProjectGuid>
|
||||||
|
<SelfContained>false</SelfContained>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<_PublishTargetUrl>D:\CanRead\BlazorApp\publish\</_PublishTargetUrl>
|
||||||
|
<History>True|2026-01-14T02:29:51.0511608Z||;True|2026-01-13T14:26:13.6767019+07:00||;True|2026-01-13T09:37:31.0751103+07:00||;</History>
|
||||||
|
<LastFailureDetails />
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
23
BlazorApp/Properties/launchSettings.json
Normal file
23
BlazorApp/Properties/launchSettings.json
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "http://localhost:5119",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "https://localhost:7122;http://localhost:5119",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
15
BlazorApp/Services/Interfaces/ICanService.cs
Normal file
15
BlazorApp/Services/Interfaces/ICanService.cs
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
using BlazorApp.Models;
|
||||||
|
|
||||||
|
namespace BlazorApp.Services.Interfaces
|
||||||
|
{
|
||||||
|
public interface ICanService
|
||||||
|
{
|
||||||
|
Task InitAsync();
|
||||||
|
Task<List<CanMessage>> ReadAsync();
|
||||||
|
|
||||||
|
// STREAM
|
||||||
|
event Action<CanMessage>? OnMessageReceived;
|
||||||
|
void StartStream();
|
||||||
|
void StopStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
94
BlazorApp/Services/Windows/PcanCanService.cs
Normal file
94
BlazorApp/Services/Windows/PcanCanService.cs
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
using BlazorApp.Models;
|
||||||
|
using BlazorApp.Services.Interfaces;
|
||||||
|
using Peak.Can.Basic.BackwardCompatibility;
|
||||||
|
|
||||||
|
namespace BlazorApp.Services.Windows
|
||||||
|
{
|
||||||
|
public class PcanCanService : ICanService, IDisposable
|
||||||
|
{
|
||||||
|
private const ushort PCAN_USBBUS1 = 0x51;
|
||||||
|
private CancellationTokenSource? _cts;
|
||||||
|
private bool _initialized;
|
||||||
|
public event Action<CanMessage>? OnMessageReceived;
|
||||||
|
|
||||||
|
public Task InitAsync()
|
||||||
|
{
|
||||||
|
if (_initialized) return Task.CompletedTask;
|
||||||
|
|
||||||
|
var status = PCANBasic.Initialize(
|
||||||
|
PCAN_USBBUS1,
|
||||||
|
TPCANBaudrate.PCAN_BAUD_250K
|
||||||
|
);
|
||||||
|
|
||||||
|
if (status != TPCANStatus.PCAN_ERROR_OK)
|
||||||
|
throw new Exception($"PCAN init failed: {status}");
|
||||||
|
|
||||||
|
_initialized = true;
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<List<CanMessage>> ReadAsync()
|
||||||
|
{
|
||||||
|
var list = new List<CanMessage>();
|
||||||
|
TPCANMsg msg;
|
||||||
|
TPCANTimestamp ts;
|
||||||
|
|
||||||
|
if (PCANBasic.Read(PCAN_USBBUS1, out msg, out ts)
|
||||||
|
== TPCANStatus.PCAN_ERROR_OK)
|
||||||
|
{
|
||||||
|
list.Add(Map(msg));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Task.FromResult(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartStream()
|
||||||
|
{
|
||||||
|
if (_cts != null) return;
|
||||||
|
|
||||||
|
_cts = new CancellationTokenSource();
|
||||||
|
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
while (!_cts.IsCancellationRequested)
|
||||||
|
{
|
||||||
|
TPCANMsg msg;
|
||||||
|
TPCANTimestamp ts;
|
||||||
|
|
||||||
|
var result = PCANBasic.Read(
|
||||||
|
PCAN_USBBUS1,
|
||||||
|
out msg,
|
||||||
|
out ts
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result == TPCANStatus.PCAN_ERROR_OK)
|
||||||
|
OnMessageReceived?.Invoke(Map(msg));
|
||||||
|
else
|
||||||
|
Thread.Sleep(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopStream()
|
||||||
|
{
|
||||||
|
_cts?.Cancel();
|
||||||
|
_cts = null;
|
||||||
|
|
||||||
|
if (_initialized)
|
||||||
|
{
|
||||||
|
PCANBasic.Uninitialize(PCAN_USBBUS1);
|
||||||
|
_initialized = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CanMessage Map(TPCANMsg msg) => new()
|
||||||
|
{
|
||||||
|
Id = msg.ID,
|
||||||
|
Length = msg.LEN,
|
||||||
|
Data = msg.DATA,
|
||||||
|
Timestamp = DateTime.Now
|
||||||
|
};
|
||||||
|
|
||||||
|
public void Dispose() => StopStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
8
BlazorApp/appsettings.Development.json
Normal file
8
BlazorApp/appsettings.Development.json
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
BlazorApp/appsettings.json
Normal file
9
BlazorApp/appsettings.json
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
57
BlazorApp/bin/Debug/net10.0/BlazorApp.deps.json
Normal file
57
BlazorApp/bin/Debug/net10.0/BlazorApp.deps.json
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v10.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v10.0": {
|
||||||
|
"BlazorApp/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Peak.PCANBasic.NET": "4.10.1.968",
|
||||||
|
"SocketCANSharp": "0.13.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"BlazorApp.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/PCANBasic.NET.dll": {
|
||||||
|
"assemblyVersion": "4.10.1.968",
|
||||||
|
"fileVersion": "4.10.1.968"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SocketCANSharp/0.13.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/SocketCANSharp.dll": {
|
||||||
|
"assemblyVersion": "0.13.0.0",
|
||||||
|
"fileVersion": "0.13.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"BlazorApp/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-sUxW8dhaIB+x7XFcpepad1DaD1N5a9l6qB2cyOgDCv7M+SmF87hOIK/EsT42Th92exA02PfCr6+ilnZ0XYeyrg==",
|
||||||
|
"path": "peak.pcanbasic.net/4.10.1.968",
|
||||||
|
"hashPath": "peak.pcanbasic.net.4.10.1.968.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"SocketCANSharp/0.13.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-71mLS40IMpnyWeKf0zeWKGlgO6lkll36DdhKmsJ9z/SGnENcq/8XhOYFgLKJ8Wbs2a4WaFelmlz8cKBU82lWyA==",
|
||||||
|
"path": "socketcansharp/0.13.0",
|
||||||
|
"hashPath": "socketcansharp.0.13.0.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.dll
Normal file
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.dll
Normal file
Binary file not shown.
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.exe
Normal file
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.exe
Normal file
Binary file not shown.
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.pdb
Normal file
BIN
BlazorApp/bin/Debug/net10.0/BlazorApp.pdb
Normal file
Binary file not shown.
20
BlazorApp/bin/Debug/net10.0/BlazorApp.runtimeconfig.json
Normal file
20
BlazorApp/bin/Debug/net10.0/BlazorApp.runtimeconfig.json
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net10.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
|
||||||
|
"Microsoft.AspNetCore.Components.Endpoints.NavigationManager.DisableThrowNavigationException": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
BlazorApp/bin/Debug/net10.0/PCANBasic.NET.dll
Normal file
BIN
BlazorApp/bin/Debug/net10.0/PCANBasic.NET.dll
Normal file
Binary file not shown.
57
BlazorApp/bin/Debug/net10.0/Publish/BlazorApp.deps.json
Normal file
57
BlazorApp/bin/Debug/net10.0/Publish/BlazorApp.deps.json
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v10.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v10.0": {
|
||||||
|
"BlazorApp/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Peak.PCANBasic.NET": "4.10.1.968",
|
||||||
|
"SocketCANSharp": "0.13.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"BlazorApp.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/PCANBasic.NET.dll": {
|
||||||
|
"assemblyVersion": "4.10.1.968",
|
||||||
|
"fileVersion": "4.10.1.968"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SocketCANSharp/0.13.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/netstandard2.0/SocketCANSharp.dll": {
|
||||||
|
"assemblyVersion": "0.13.0.0",
|
||||||
|
"fileVersion": "0.13.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"BlazorApp/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-sUxW8dhaIB+x7XFcpepad1DaD1N5a9l6qB2cyOgDCv7M+SmF87hOIK/EsT42Th92exA02PfCr6+ilnZ0XYeyrg==",
|
||||||
|
"path": "peak.pcanbasic.net/4.10.1.968",
|
||||||
|
"hashPath": "peak.pcanbasic.net.4.10.1.968.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"SocketCANSharp/0.13.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-71mLS40IMpnyWeKf0zeWKGlgO6lkll36DdhKmsJ9z/SGnENcq/8XhOYFgLKJ8Wbs2a4WaFelmlz8cKBU82lWyA==",
|
||||||
|
"path": "socketcansharp/0.13.0",
|
||||||
|
"hashPath": "socketcansharp.0.13.0.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net10.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
|
||||||
|
"Microsoft.AspNetCore.Components.Endpoints.NavigationManager.DisableThrowNavigationException": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
BlazorApp/bin/Debug/net10.0/Publish/appsettings.json
Normal file
9
BlazorApp/bin/Debug/net10.0/Publish/appsettings.json
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
11
BlazorApp/bin/Debug/net10.0/Publish/web.config
Normal file
11
BlazorApp/bin/Debug/net10.0/Publish/web.config
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<location path="." inheritInChildApplications="false">
|
||||||
|
<system.webServer>
|
||||||
|
<handlers>
|
||||||
|
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
|
||||||
|
</handlers>
|
||||||
|
<aspNetCore processPath="dotnet" arguments=".\BlazorApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
|
||||||
|
</system.webServer>
|
||||||
|
</location>
|
||||||
|
</configuration>
|
||||||
BIN
BlazorApp/bin/Debug/net10.0/SocketCANSharp.dll
Normal file
BIN
BlazorApp/bin/Debug/net10.0/SocketCANSharp.dll
Normal file
Binary file not shown.
8
BlazorApp/bin/Debug/net10.0/appsettings.Development.json
Normal file
8
BlazorApp/bin/Debug/net10.0/appsettings.Development.json
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
BlazorApp/bin/Debug/net10.0/appsettings.json
Normal file
9
BlazorApp/bin/Debug/net10.0/appsettings.json
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
506
BlazorApp/obj/BlazorApp.csproj.nuget.dgspec.json
Normal file
506
BlazorApp/obj/BlazorApp.csproj.nuget.dgspec.json
Normal file
|
|
@ -0,0 +1,506 @@
|
||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj",
|
||||||
|
"projectName": "BlazorApp",
|
||||||
|
"projectPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj",
|
||||||
|
"packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\",
|
||||||
|
"outputPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\obj\\",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"fallbackFolders": [
|
||||||
|
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||||
|
],
|
||||||
|
"configFilePaths": [
|
||||||
|
"C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net10.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net10.0": {
|
||||||
|
"targetAlias": "net10.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"restoreAuditProperties": {
|
||||||
|
"enableAudit": "true",
|
||||||
|
"auditLevel": "low",
|
||||||
|
"auditMode": "all"
|
||||||
|
},
|
||||||
|
"SdkAnalysisLevel": "10.0.100"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net10.0": {
|
||||||
|
"targetAlias": "net10.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.App.Internal.Assets": {
|
||||||
|
"suppressParent": "All",
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[10.0.1, )",
|
||||||
|
"autoReferenced": true
|
||||||
|
},
|
||||||
|
"Peak.PCANBasic.NET": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[4.10.1.968, )"
|
||||||
|
},
|
||||||
|
"SocketCANSharp": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[0.13.0, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.AspNetCore.App": {
|
||||||
|
"privateAssets": "none"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.101/PortableRuntimeIdentifierGraph.json",
|
||||||
|
"packagesToPrune": {
|
||||||
|
"Microsoft.AspNetCore": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Antiforgery": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.App": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.BearerToken": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Cookies": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.OAuth": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authorization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authorization.Policy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Authorization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Endpoints": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Forms": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Server": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Web": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Connections.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.CookiePolicy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cors": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cryptography.Internal": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection.Extensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HostFiltering": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting.Server.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Html.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Connections": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Connections.Common": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Extensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Features": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Results": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpLogging": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpOverrides": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpsPolicy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Identity": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Localization.Routing": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Metadata": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.ApiExplorer": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Cors": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.DataAnnotations": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Formatters.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Formatters.Xml": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Razor": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.RazorPages": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.TagHelpers": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.ViewFeatures": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.OutputCaching": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.RateLimiting": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Razor": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Razor.Runtime": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.RequestDecompression": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCaching": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCaching.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCompression": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Rewrite": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Routing": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Routing.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.HttpSys": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.IIS": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.IISIntegration": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.Quic": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Session": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Common": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Protocols.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.StaticAssets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.StaticFiles": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.WebSockets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.WebUtilities": "(,10.0.32767]",
|
||||||
|
"Microsoft.CSharp": "(,4.7.32767]",
|
||||||
|
"Microsoft.Extensions.Caching.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Caching.Memory": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Binder": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.CommandLine": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.FileExtensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Ini": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.KeyPerFile": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.UserSecrets": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Xml": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.DependencyInjection": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Features": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Composite": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Physical": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileSystemGlobbing": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Hosting": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Hosting.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Http": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Identity.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Identity.Stores": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Localization.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Configuration": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Console": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Debug": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.EventLog": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.EventSource": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.TraceSource": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.ObjectPool": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options.ConfigurationExtensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options.DataAnnotations": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Primitives": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Validation": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.WebEncoders": "(,10.0.32767]",
|
||||||
|
"Microsoft.JSInterop": "(,10.0.32767]",
|
||||||
|
"Microsoft.Net.Http.Headers": "(,10.0.32767]",
|
||||||
|
"Microsoft.VisualBasic": "(,10.4.32767]",
|
||||||
|
"Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"Microsoft.Win32.Registry": "(,5.0.32767]",
|
||||||
|
"runtime.any.System.Collections": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Globalization": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.IO": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Collections": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Globalization": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.IO": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Console": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Console": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"System.AppContext": "(,4.3.32767]",
|
||||||
|
"System.Buffers": "(,5.0.32767]",
|
||||||
|
"System.Collections": "(,4.3.32767]",
|
||||||
|
"System.Collections.Concurrent": "(,4.3.32767]",
|
||||||
|
"System.Collections.Immutable": "(,10.0.32767]",
|
||||||
|
"System.Collections.NonGeneric": "(,4.3.32767]",
|
||||||
|
"System.Collections.Specialized": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.Annotations": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.Primitives": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
|
||||||
|
"System.Console": "(,4.3.32767]",
|
||||||
|
"System.Data.Common": "(,4.3.32767]",
|
||||||
|
"System.Data.DataSetExtensions": "(,4.4.32767]",
|
||||||
|
"System.Diagnostics.Contracts": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
|
||||||
|
"System.Diagnostics.EventLog": "(,10.0.32767]",
|
||||||
|
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Process": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.StackTrace": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.TraceSource": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"System.Drawing.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Dynamic.Runtime": "(,4.3.32767]",
|
||||||
|
"System.Formats.Asn1": "(,10.0.32767]",
|
||||||
|
"System.Formats.Cbor": "(,10.0.32767]",
|
||||||
|
"System.Formats.Tar": "(,10.0.32767]",
|
||||||
|
"System.Globalization": "(,4.3.32767]",
|
||||||
|
"System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"System.Globalization.Extensions": "(,4.3.32767]",
|
||||||
|
"System.IO": "(,4.3.32767]",
|
||||||
|
"System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"System.IO.Compression.ZipFile": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
|
||||||
|
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
|
||||||
|
"System.IO.IsolatedStorage": "(,4.3.32767]",
|
||||||
|
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
|
||||||
|
"System.IO.Pipelines": "(,10.0.32767]",
|
||||||
|
"System.IO.Pipes": "(,4.3.32767]",
|
||||||
|
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
|
||||||
|
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
|
||||||
|
"System.Linq": "(,4.3.32767]",
|
||||||
|
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
|
||||||
|
"System.Linq.Expressions": "(,4.3.32767]",
|
||||||
|
"System.Linq.Parallel": "(,4.3.32767]",
|
||||||
|
"System.Linq.Queryable": "(,4.3.32767]",
|
||||||
|
"System.Memory": "(,5.0.32767]",
|
||||||
|
"System.Net.Http": "(,4.3.32767]",
|
||||||
|
"System.Net.Http.Json": "(,10.0.32767]",
|
||||||
|
"System.Net.NameResolution": "(,4.3.32767]",
|
||||||
|
"System.Net.NetworkInformation": "(,4.3.32767]",
|
||||||
|
"System.Net.Ping": "(,4.3.32767]",
|
||||||
|
"System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Net.Requests": "(,4.3.32767]",
|
||||||
|
"System.Net.Security": "(,4.3.32767]",
|
||||||
|
"System.Net.ServerSentEvents": "(,10.0.32767]",
|
||||||
|
"System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"System.Net.WebHeaderCollection": "(,4.3.32767]",
|
||||||
|
"System.Net.WebSockets": "(,4.3.32767]",
|
||||||
|
"System.Net.WebSockets.Client": "(,4.3.32767]",
|
||||||
|
"System.Numerics.Vectors": "(,5.0.32767]",
|
||||||
|
"System.ObjectModel": "(,4.3.32767]",
|
||||||
|
"System.Private.DataContractSerialization": "(,4.3.32767]",
|
||||||
|
"System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"System.Reflection": "(,4.3.32767]",
|
||||||
|
"System.Reflection.DispatchProxy": "(,6.0.32767]",
|
||||||
|
"System.Reflection.Emit": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Reflection.Metadata": "(,10.0.32767]",
|
||||||
|
"System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Reflection.TypeExtensions": "(,4.3.32767]",
|
||||||
|
"System.Resources.Reader": "(,4.3.32767]",
|
||||||
|
"System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"System.Resources.Writer": "(,4.3.32767]",
|
||||||
|
"System.Runtime": "(,4.3.32767]",
|
||||||
|
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
|
||||||
|
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Loader": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Numerics": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Json": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
|
||||||
|
"System.Security.AccessControl": "(,6.0.32767]",
|
||||||
|
"System.Security.Claims": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Cng": "(,5.0.32767]",
|
||||||
|
"System.Security.Cryptography.Csp": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
|
||||||
|
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Xml": "(,10.0.32767]",
|
||||||
|
"System.Security.Principal": "(,4.3.32767]",
|
||||||
|
"System.Security.Principal.Windows": "(,5.0.32767]",
|
||||||
|
"System.Security.SecureString": "(,4.3.32767]",
|
||||||
|
"System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"System.Text.Encoding.CodePages": "(,10.0.32767]",
|
||||||
|
"System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Text.Encodings.Web": "(,10.0.32767]",
|
||||||
|
"System.Text.Json": "(,10.0.32767]",
|
||||||
|
"System.Text.RegularExpressions": "(,4.3.32767]",
|
||||||
|
"System.Threading": "(,4.3.32767]",
|
||||||
|
"System.Threading.AccessControl": "(,10.0.32767]",
|
||||||
|
"System.Threading.Channels": "(,10.0.32767]",
|
||||||
|
"System.Threading.Overlapped": "(,4.3.32767]",
|
||||||
|
"System.Threading.RateLimiting": "(,10.0.32767]",
|
||||||
|
"System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
|
||||||
|
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
|
||||||
|
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
|
||||||
|
"System.Threading.Thread": "(,4.3.32767]",
|
||||||
|
"System.Threading.ThreadPool": "(,4.3.32767]",
|
||||||
|
"System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"System.ValueTuple": "(,4.5.32767]",
|
||||||
|
"System.Xml.ReaderWriter": "(,4.3.32767]",
|
||||||
|
"System.Xml.XDocument": "(,4.3.32767]",
|
||||||
|
"System.Xml.XmlDocument": "(,4.3.32767]",
|
||||||
|
"System.Xml.XmlSerializer": "(,4.3.32767]",
|
||||||
|
"System.Xml.XPath": "(,4.3.32767]",
|
||||||
|
"System.Xml.XPath.XDocument": "(,5.0.32767]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
BlazorApp/obj/BlazorApp.csproj.nuget.g.props
Normal file
19
BlazorApp/obj/BlazorApp.csproj.nuget.g.props
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?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\Admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="C:\Users\Admin\.nuget\packages\" />
|
||||||
|
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\build\Microsoft.AspNetCore.App.Internal.Assets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\build\Microsoft.AspNetCore.App.Internal.Assets.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
6
BlazorApp/obj/BlazorApp.csproj.nuget.g.targets
Normal file
6
BlazorApp/obj/BlazorApp.csproj.nuget.g.targets
Normal file
|
|
@ -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">
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\buildTransitive\Microsoft.AspNetCore.App.Internal.Assets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\buildTransitive\Microsoft.AspNetCore.App.Internal.Assets.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
|
||||||
1
BlazorApp/obj/Debug/net10.0/ApiEndpoints.json
Normal file
1
BlazorApp/obj/Debug/net10.0/ApiEndpoints.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
[]
|
||||||
23
BlazorApp/obj/Debug/net10.0/BlazorApp.AssemblyInfo.cs
Normal file
23
BlazorApp/obj/Debug/net10.0/BlazorApp.AssemblyInfo.cs
Normal file
|
|
@ -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("BlazorApp")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+314a28bf8ff7028abdd8305908ee1062cbadf848")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("BlazorApp")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("BlazorApp")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
8b3c00ab1ba2f661a2f6812224109506d90ffd56f94a6bb600073091fa8f61a0
|
||||||
|
|
@ -0,0 +1,71 @@
|
||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = net10.0
|
||||||
|
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||||
|
build_property.TargetFrameworkVersion = v10.0
|
||||||
|
build_property.TargetPlatformMinVersion =
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb = true
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.InvariantGlobalization =
|
||||||
|
build_property.PlatformNeutralAssembly =
|
||||||
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
|
build_property.RootNamespace = BlazorApp
|
||||||
|
build_property.RootNamespace = BlazorApp
|
||||||
|
build_property.ProjectDir = C:\Users\Admin\source\repos\CanRead\BlazorApp\
|
||||||
|
build_property.EnableComHosting =
|
||||||
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
|
build_property.RazorLangVersion = 9.0
|
||||||
|
build_property.SupportLocalizedComponentNames =
|
||||||
|
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||||
|
build_property.MSBuildProjectDirectory = C:\Users\Admin\source\repos\CanRead\BlazorApp
|
||||||
|
build_property._RazorSourceGeneratorDebug =
|
||||||
|
build_property.EffectiveAnalysisLevelStyle = 10.0
|
||||||
|
build_property.EnableCodeStyleSeverity =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/App.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xBcHAucmF6b3I=
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Can.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xDYW4ucmF6b3I=
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Counter.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xDb3VudGVyLnJhem9y
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Error.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xFcnJvci5yYXpvcg==
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Home.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xIb21lLnJhem9y
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/NotFound.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xOb3RGb3VuZC5yYXpvcg==
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Weather.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xXZWF0aGVyLnJhem9y
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Routes.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xSb3V0ZXMucmF6b3I=
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/_Imports.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xfSW1wb3J0cy5yYXpvcg==
|
||||||
|
build_metadata.AdditionalFiles.CssScope =
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/MainLayout.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTWFpbkxheW91dC5yYXpvcg==
|
||||||
|
build_metadata.AdditionalFiles.CssScope = b-qgsvw684bo
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/NavMenu.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTmF2TWVudS5yYXpvcg==
|
||||||
|
build_metadata.AdditionalFiles.CssScope = b-g8o6n169oq
|
||||||
|
|
||||||
|
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/ReconnectModal.razor]
|
||||||
|
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcUmVjb25uZWN0TW9kYWwucmF6b3I=
|
||||||
|
build_metadata.AdditionalFiles.CssScope = b-pphnjiao61
|
||||||
18
BlazorApp/obj/Debug/net10.0/BlazorApp.GlobalUsings.g.cs
Normal file
18
BlazorApp/obj/Debug/net10.0/BlazorApp.GlobalUsings.g.cs
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
// <auto-generated/>
|
||||||
|
global using Microsoft.AspNetCore.Builder;
|
||||||
|
global using Microsoft.AspNetCore.Hosting;
|
||||||
|
global using Microsoft.AspNetCore.Http;
|
||||||
|
global using Microsoft.AspNetCore.Routing;
|
||||||
|
global using Microsoft.Extensions.Configuration;
|
||||||
|
global using Microsoft.Extensions.DependencyInjection;
|
||||||
|
global using Microsoft.Extensions.Hosting;
|
||||||
|
global using Microsoft.Extensions.Logging;
|
||||||
|
global using Microsoft.Extensions.Validation.Embedded;
|
||||||
|
global using System;
|
||||||
|
global using System.Collections.Generic;
|
||||||
|
global using System.IO;
|
||||||
|
global using System.Linq;
|
||||||
|
global using System.Net.Http;
|
||||||
|
global using System.Net.Http.Json;
|
||||||
|
global using System.Threading;
|
||||||
|
global using System.Threading.Tasks;
|
||||||
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.assets.cache
Normal file
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.assets.cache
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
dcbb699325d1f189632edd97c075e7ab80e2dbfd360d3ed8a4839026314a16b0
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\appsettings.Development.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\appsettings.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.staticwebassets.runtime.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.staticwebassets.endpoints.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.exe
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.deps.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.runtimeconfig.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.pdb
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\PCANBasic.NET.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\SocketCANSharp.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\EmbeddedAttribute.cs
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\ValidatableTypeAttribute.cs
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.AssemblyReference.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rpswa.dswa.cache.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.AssemblyInfoInputs.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.AssemblyInfo.cs
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.CoreCompileInputs.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.MvcApplicationPartsAssemblyInfo.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjimswa.dswa.cache.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjsmrazor.dswa.cache.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjsmcshtml.dswa.cache.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\MainLayout.razor.rz.scp.css
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\NavMenu.razor.rz.scp.css
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\ReconnectModal.razor.rz.scp.css
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\bundle\BlazorApp.styles.css
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\projectbundle\BlazorApp.bundle.scp.css
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\v7vyzcc6qh-{0}-bqjiyaj88i-bqjiyaj88i.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\m5e6rnmcep-{0}-c2jlpeoesf-c2jlpeoesf.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\o0q64zz2g2-{0}-erw9l3u2r3-erw9l3u2r3.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\7joa6vf0w2-{0}-aexeepp0ev-aexeepp0ev.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\taqldvnaul-{0}-d7shbmvgxk-d7shbmvgxk.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\jfzlrv9cgx-{0}-ausgxo2sd3-ausgxo2sd3.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\rogc4sk0pw-{0}-k8d9w2qqmf-k8d9w2qqmf.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\9wb38qhjvq-{0}-cosvhxvwiu-cosvhxvwiu.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\e0tkuniv2q-{0}-ub07r2b239-ub07r2b239.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\5exm1mo63l-{0}-fvhpjtyr6v-fvhpjtyr6v.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\sgf5lx3sbn-{0}-b7pk76d08c-b7pk76d08c.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\xifcgn9ief-{0}-fsbi9cje9m-fsbi9cje9m.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\xcqk6qv13p-{0}-rzd6atqjts-rzd6atqjts.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\65ii6i50cu-{0}-ee0r1s7dh0-ee0r1s7dh0.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\8ny1ssfslj-{0}-dxx9fxp4il-dxx9fxp4il.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\loo7f5x1gx-{0}-jd9uben2k1-jd9uben2k1.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\p45ce5yffh-{0}-khv3u5hwcm-khv3u5hwcm.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\0546dfdd6f-{0}-r4e9w2rdcm-r4e9w2rdcm.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\03xqw0swdg-{0}-lcd1t2u6c8-lcd1t2u6c8.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\lf383621gq-{0}-c2oey78nd0-c2oey78nd0.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\dcz3aqb7og-{0}-tdbxkamptv-tdbxkamptv.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\oej83ydp7q-{0}-j5mq2jizvt-j5mq2jizvt.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\n5un2q0rmp-{0}-06098lyss8-06098lyss8.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\72hk1wsa3c-{0}-nvvlpmu67g-nvvlpmu67g.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\jt3e1rdii1-{0}-s35ty4nyc5-s35ty4nyc5.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\3til2bm5ay-{0}-pj5nd1wqec-pj5nd1wqec.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\kdgbnj3stq-{0}-46ein0sx1k-46ein0sx1k.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\pgyksi01id-{0}-v0zj4ognzu-v0zj4ognzu.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\k2mw846ued-{0}-37tfw0ft22-37tfw0ft22.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hevz5itu9o-{0}-hrwsygsryq-hrwsygsryq.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\1qbqjgk7wr-{0}-pk9g2wxc8p-pk9g2wxc8p.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\kay38lw82v-{0}-ft3s53vfgj-ft3s53vfgj.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\vrc98ic1o2-{0}-6cfz1n2cew-6cfz1n2cew.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\h56f1aupc7-{0}-6pdc2jztkx-6pdc2jztkx.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\gh25061luz-{0}-493y06b0oq-493y06b0oq.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\byvyapvtmi-{0}-iovd86k7lj-iovd86k7lj.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\lxae500s9q-{0}-vr1egmr9el-vr1egmr9el.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\5whq523p0y-{0}-kbrnm935zg-kbrnm935zg.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\08cqgvfzcy-{0}-jj8uyg4cgr-jj8uyg4cgr.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\zp2adb4uhm-{0}-y7v9cxd14o-y7v9cxd14o.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\onq1f5nzz4-{0}-notf2xhcfb-notf2xhcfb.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\mxp9w50l4b-{0}-h1s4sie4z3-h1s4sie4z3.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\l2mhd45r4z-{0}-63fj8s7r0e-63fj8s7r0e.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\i0oilot2q1-{0}-0j3bgjxly4-0j3bgjxly4.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hsa0fwp5ls-{0}-13ja33weya-13ja33weya.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\0txged01c1-{0}-wmp8iwak4q-wmp8iwak4q.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\e2p7e3doxt-{0}-2lgipwaf5j-2lgipwaf5j.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\8v4adbxxmx-{0}-2mc2qwa0tf-2mc2qwa0tf.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\rrzzv9ip5o-{0}-2mc2qwa0tf-2mc2qwa0tf.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.json.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.development.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.endpoints.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\swae.build.ex.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.Up2Date
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\refint\BlazorApp.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.pdb
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.genruntimeconfig.cache
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\ref\BlazorApp.dll
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hh92lrx13d-{0}-ag9i8ft9fn-ag9i8ft9fn.gz
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.sourcelink.json
|
||||||
|
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.upToDateCheck.txt
|
||||||
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.dll
Normal file
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.dll
Normal file
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
23bd4f7a70c83ce2f9a3ca44dc14b3ee4f327b3cb9f8b52a1d346110324da545
|
||||||
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.pdb
Normal file
BIN
BlazorApp/obj/Debug/net10.0/BlazorApp.pdb
Normal file
Binary file not shown.
1
BlazorApp/obj/Debug/net10.0/BlazorApp.sourcelink.json
Normal file
1
BlazorApp/obj/Debug/net10.0/BlazorApp.sourcelink.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"documents":{"D:\\CanRead\\BlazorApp\\*":"https://raw.githubusercontent.com/DTQuan1212/BlazorApp/96751a2cf1944c4425809e0d870e8df75a4252da/*"}}
|
||||||
7
BlazorApp/obj/Debug/net10.0/EmbeddedAttribute.cs
Normal file
7
BlazorApp/obj/Debug/net10.0/EmbeddedAttribute.cs
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
// <auto-generated/>
|
||||||
|
namespace Microsoft.CodeAnalysis
|
||||||
|
{
|
||||||
|
internal sealed partial class EmbeddedAttribute : global::System.Attribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
9
BlazorApp/obj/Debug/net10.0/ValidatableTypeAttribute.cs
Normal file
9
BlazorApp/obj/Debug/net10.0/ValidatableTypeAttribute.cs
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
// <auto-generated/>
|
||||||
|
namespace Microsoft.Extensions.Validation.Embedded
|
||||||
|
{
|
||||||
|
[global::Microsoft.CodeAnalysis.EmbeddedAttribute]
|
||||||
|
[global::System.AttributeUsage(global::System.AttributeTargets.Class)]
|
||||||
|
internal sealed class ValidatableTypeAttribute : global::System.Attribute
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
BlazorApp/obj/Debug/net10.0/apphost.exe
Normal file
BIN
BlazorApp/obj/Debug/net10.0/apphost.exe
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user