初始化工程,调整UI隐藏

This commit is contained in:
chenjiangqun
2026-04-13 09:53:21 +08:00
parent 8783bf1f60
commit 0e8d1aecde
32 changed files with 4002 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,94 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|d:\\code\\c#\\msi\\dp\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\win10_winisp_srccode_for_moka_20250416_1\\winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\winisp\\baseclass\\graphiccardi2cctrl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\baseclass\\graphiccardi2cctrl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 7,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "GraphicCardI2CCtrl.cs",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"RelativeDocumentMoniker": "WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"RelativeToolTip": "WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"ViewState": "AgIAAEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:59:00.721Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "frmISP.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs",
"RelativeDocumentMoniker": "WinISP\\frmISP.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs [\u8BBE\u8BA1]*",
"RelativeToolTip": "WinISP\\frmISP.cs [\u8BBE\u8BA1]*",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:57:00.325Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "frmISP.cs",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs",
"RelativeDocumentMoniker": "WinISP\\frmISP.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs*",
"RelativeToolTip": "WinISP\\frmISP.cs*",
"ViewState": "AgIAAKIGAAAAAAAAAAAswKwGAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:52:33.123Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -0,0 +1,94 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|d:\\code\\c#\\msi\\dp\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\win10_winisp_srccode_for_moka_20250416_1\\winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\frmisp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\winisp\\baseclass\\graphiccardi2cctrl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}|WinISP\\WinISP.csproj|solutionrelative:winisp\\baseclass\\graphiccardi2cctrl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 7,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "GraphicCardI2CCtrl.cs",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"RelativeDocumentMoniker": "WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"RelativeToolTip": "WinISP\\BaseClass\\GraphicCardI2CCtrl.cs",
"ViewState": "AgIAAEIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:59:00.721Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "frmISP.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs",
"RelativeDocumentMoniker": "WinISP\\frmISP.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "WinISP\\frmISP.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:57:00.325Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "frmISP.cs",
"DocumentMoniker": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs",
"RelativeDocumentMoniker": "WinISP\\frmISP.cs",
"ToolTip": "D:\\Code\\C#\\MSI\\DP\u5347\u7EA7\u5F00\u53D1\u8D44\u6599\\WIN10_WinISP_SrcCode_For_MOKA_20250416_1\\WinISP\\frmISP.cs",
"RelativeToolTip": "WinISP\\frmISP.cs",
"ViewState": "AgIAAKIGAAAAAAAAAAAswKwGAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-04-10T03:52:33.123Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch WinISP (.NET Framework)",
"type": "clr",
"request": "launch",
"program": "${workspaceFolder}/WinISP/bin/Debug/WinISP.exe",
"cwd": "${workspaceFolder}/WinISP",
"preLaunchTask": "build WinISP"
}
]
}

View File

@@ -0,0 +1,3 @@
{
"dotnet.preferCSharpExtension": true
}

View File

@@ -0,0 +1,26 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build WinISP",
"type": "shell",
"command": "dotnet",
"args": [
"build",
"${workspaceFolder}/WinISP/WinISP.csproj"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$msCompile"
},
{
"label": "run WinISP exe",
"type": "shell",
"command": "${workspaceFolder}/WinISP/bin/Debug/WinISP.exe",
"dependsOn": "build WinISP",
"problemMatcher": []
}
]
}

View File

@@ -0,0 +1,56 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinISP", "WinISP\WinISP.csproj", "{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_x64|Any CPU = Debug_x64|Any CPU
Debug_x64|Mixed Platforms = Debug_x64|Mixed Platforms
Debug_x64|Win32 = Debug_x64|Win32
Debug_x64|x64 = Debug_x64|x64
Debug_x64|x86 = Debug_x64|x86
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Any CPU.ActiveCfg = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Any CPU.Build.0 = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Mixed Platforms.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Mixed Platforms.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Win32.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|Win32.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|x64.ActiveCfg = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|x86.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug_x64|x86.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Mixed Platforms.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Win32.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|Win32.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|x64.ActiveCfg = Debug|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|x86.ActiveCfg = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Debug|x86.Build.0 = Debug|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Any CPU.Build.0 = Release|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Win32.ActiveCfg = Release|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|Win32.Build.0 = Release|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|x64.ActiveCfg = Release|Any CPU
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|x86.ActiveCfg = Release|x86
{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,322 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using MTK;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WinISP.BaseClass
{
public class GraphicCardI2CCtrl : ISimI2CCtrl
{
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate string PCallBack(string strParam);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void SetCallBack([MarshalAs(UnmanagedType.FunctionPtr)] PCallBack pCallBack);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static public extern IntPtr CreateGraphicCardCtrl();
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static public extern IntPtr CreateGraphicCardCtrl(int GraphicCardType);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static public extern void DisposeGraphicCardCtrl();
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern bool InitGraphicCardCtrl(IntPtr pGraphicCardCtrlObj);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static private extern int DllGetGraphicCardType(IntPtr pGraphicCardCtrlObj);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static public extern int GetPortType(IntPtr pGraphicCardCtrlObj);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
static public extern int GetPortType(IntPtr pGraphicCardCtrlObj, byte idx);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern bool DllGetMonitorName(IntPtr pGraphicCardCtrlObj, byte[] name);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern bool DDCRead(IntPtr pGraphicCardCtrlObj, byte slaveAddr, uint rdLen, byte[] rdBuf);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern bool DDCWrite(IntPtr pGraphicCardCtrlObj, byte slaveAddr, uint wrLen, byte[] wrBuf);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern byte InitConnectedMTKMonitor(IntPtr pGraphicCardCtrlObj);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern void SetConnectedMonitorIndex(IntPtr pGraphicCardCtrlObj, byte idx);
[DllImport("GraphicsCardCtrl.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.I1)]
static public extern void GetMonitorNameByIndex(IntPtr pGraphicCardCtrlObj, byte idx, byte[] pName);
public enum GRAPHIC_CARD
{
INTEL = 0,
AMD = 1,
NVIDIA = 2,
INTEL_IGCL = 3,
NA = 4
}
public enum PortTypes
{
NA = 0,
HDMI = 1,
DISPALYPORT = 2,
VGA = 3,
DVI = 4
}
public GRAPHIC_CARD GraphicCardType;
public PortTypes PortType;
private static byte[] MonitorName = new byte[13];
public enum GPUTypes { AUTO_Search, AMD, NVIDIA, INTEL };
private GCHandle gch;
private static bool _IsInit = false;
private static IntPtr _hMod;
private static IntPtr pGraphicCardCtrl;
static string CallBackFunction(string strParam)
{
WinISP.frmISP.WriteLog("GraphicCard Msg = " + strParam, "debug");
return strParam;
}
public void ReCreateGraphicCardCtrl()
{
FreeGraphicsCardCtrl();
CreateGraphicsCardCtrl();
}
private void CreateGraphicsCardCtrl()
{
// Declare an instance of the CallBack delegate.
PCallBack callback_delegate = new PCallBack(CallBackFunction);
// Use GCHandle to hold the delegate object in memory.
gch = GCHandle.Alloc(callback_delegate);
// Invoke the managed callback from unmanaged code.
try
{
SetCallBack(callback_delegate);
}
catch (Exception e)
{
frmISP.WriteLog("Exception: " + e.Message, "debug");
}
try
{
pGraphicCardCtrl = CreateGraphicCardCtrl();
if (pGraphicCardCtrl != IntPtr.Zero)
_IsInit = true;
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
}
private void FreeGraphicsCardCtrl()
{
// Free the GCHandle.
frmISP.WriteLog("Free the GCHandle.", "debug");
if (gch.IsAllocated)
gch.Free();
DisposeGraphicCardCtrl();
pGraphicCardCtrl = IntPtr.Zero;
_IsInit = false;
}
public GraphicCardI2CCtrl()
{
if (_IsInit == true)
return;
CreateGraphicsCardCtrl();
return;
}
~GraphicCardI2CCtrl()
{
FreeGraphicsCardCtrl();
}
public GraphicCardI2CCtrl(GPUTypes type)
{
switch (type)
{
case GPUTypes.AUTO_Search:
pGraphicCardCtrl = CreateGraphicCardCtrl();
break;
case GPUTypes.AMD:
pGraphicCardCtrl = CreateGraphicCardCtrl((int)GPUTypes.AMD);
break;
case GPUTypes.NVIDIA:
pGraphicCardCtrl = CreateGraphicCardCtrl((int)GPUTypes.NVIDIA);
break;
case GPUTypes.INTEL:
pGraphicCardCtrl = CreateGraphicCardCtrl((int)GPUTypes.INTEL);
break;
}
}
public Levels SDA
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public Levels SCL
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public bool I2C_Start()
{
return true;
}
public void I2C_Stop()
{
return;
}
public byte I2C_RecvByte(bool IsAck)
{
throw new NotImplementedException();
}
public bool I2C_SendByte(byte data)
{
throw new NotImplementedException();
}
public bool WriteData(byte slvAddr, byte[] arr)
{
unsafe
{
fixed (Byte* pArr = arr)
{
return DDCWrite(pGraphicCardCtrl, slvAddr, (uint)(arr.Length), arr);
}
}
}
public byte ReadData(byte slvAddr, byte[] arr)
{
throw new NotImplementedException();
}
public bool WriteData(byte[] data)
{
Byte slvAddr = data[0];
Byte[] wrBuf = new Byte[data.Length - 1];
Array.Copy(data, 1, wrBuf, 0, wrBuf.Length);
const Byte maxWrLen = 16;
int idx = 0;
unsafe
{
fixed (Byte* pArr = wrBuf)
{
return DDCWrite(pGraphicCardCtrl, slvAddr, (uint)(wrBuf.Length), wrBuf);
}
}
}
public bool ReadData(byte[] data, byte[] wrCmds = null)
{
uint revlen = (uint)data.Length;
unsafe
{
fixed (Byte* pArr = data)
{
return DDCRead(pGraphicCardCtrl, wrCmds[0], revlen, data);
}
}
}
public bool Init()
{
if (_IsInit == true)
return true;
else
return InitGraphicCardCtrl(pGraphicCardCtrl);
}
public GRAPHIC_CARD GetGraphicCardType
{
get
{
GraphicCardType = (GRAPHIC_CARD)DllGetGraphicCardType(pGraphicCardCtrl);
return GraphicCardType;
}
}
public PortTypes GetConnectedPortType
{
get
{
return PortType;
}
}
public PortTypes GetConnectedPortTypeByIdx(Byte idx)
{
return (PortTypes)GetPortType(pGraphicCardCtrl, idx);
}
public String GetMonitorName
{
get
{
return ASCIIEncoding.ASCII.GetString(MonitorName);
}
}
public List<String> InitConnectedMonitor
{
get
{
//if (Program.isManagedDll)
{
List<String> list = new List<string>();
Byte[] buf = new Byte[13];
char[] charsToTrim = { ',', '/', ' ' };
String mntName;
Byte numOfMnt;
numOfMnt = InitConnectedMTKMonitor(pGraphicCardCtrl);
for (Byte idx = 0; idx < numOfMnt; idx++)
{
unsafe
{
fixed (byte* pBuf = buf)
{
GetMonitorNameByIndex(pGraphicCardCtrl, idx, buf);
}
}
mntName = ASCIIEncoding.ASCII.GetString(buf);
mntName.Replace("\n", "").Replace("\r", "").Replace("\0", "");
list.Add(mntName);
}
return list;
}
//else //TBD
// return null;
}
}
public void SetConnectedMonitorIndex(Byte index)
{
SetConnectedMonitorIndex(pGraphicCardCtrl, index);
}
}
}

View File

@@ -0,0 +1,224 @@
using System;
namespace MTK
{
public static class MTKDebugCmd
{
private const Byte _BIT0 = 0x01;
private const Byte _BIT1 = 0x02;
private const Byte _BIT2 = 0x04;
private const Byte _BIT3 = 0x08;
private const Byte _BIT4 = 0x10;
private const Byte _BIT5 = 0x20;
private const Byte _BIT6 = 0x40;
private const Byte _BIT7 = 0x80;
private static ISimI2CCtrl _i2cCtrl;
public static void InitI2CCtrl(ISimI2CCtrl i2cCtrl)
{
_i2cCtrl = i2cCtrl;
}
public static bool DDC_Write(Byte[] data)
{
//6E-51-Len-Data-chkSum
const Byte dest = 0x6E;
const Byte src = 0x51;
Byte len = (Byte)(data.Length | _BIT7);
Byte chkSum = 0;
Byte[] wrBuf = new Byte[data.Length + 4];
wrBuf[0] = dest;
wrBuf[1] = src;
wrBuf[2] = len;
Array.Copy(data, 0, wrBuf, 3, data.Length);
for (int idx = 0; idx < (wrBuf.Length - 1); idx++)
{
chkSum ^= wrBuf[idx];
}
wrBuf[wrBuf.Length - 1] = chkSum;
bool ret = false;
ret = _i2cCtrl.WriteData(wrBuf);
string strData = "";
for (int i = 3; i < wrBuf.Length; ++i)
strData += wrBuf[i].ToString("X2") + " ";
if (ret)
WinISP.frmISP.WriteLog("[Write DDC]" + strData, "debug");
else
WinISP.frmISP.WriteLog("[Write DDC Fail]" + strData, "debug");
return ret;
}
public static Byte[] DDC_Read(Byte[] data, int recvLen, int delayTime = 1000)
{
string strData = "";
for (int i = 0; i < data.Length; ++i)
strData += data[i].ToString("X2") + " ";
if (!DDC_Write(data))
return null;
WinIOLib.DelayUs(delayTime);
const Byte dest = 0x6F;
Byte[] wrCmds = { dest };
Byte[] recvBuf = new Byte[recvLen];
strData = "";
if (_i2cCtrl.ReadData(recvBuf, wrCmds) == true)
{
for (int i = 0; i < recvBuf.Length; ++i)
strData += recvBuf[i].ToString("X2") + " ";
if ((recvBuf[0] != 0x6E) || (recvBuf[1] <= 0x80))
{
WinISP.frmISP.WriteLog("[Read DDC Fail]" + strData + " I2C Format Error!", "debug");
return null;
}
else
{
WinISP.frmISP.WriteLog("[Read DDC]" + strData, "debug");
return recvBuf;
}
}
else
{
for (int i = 0; i < recvBuf.Length; ++i)
strData += recvBuf[i].ToString("X2") + " ";
WinISP.frmISP.WriteLog("[Read DDC Fail]", "debug");
return null;
}
}
private static Byte CalCheckSum(Byte[] data, int startIdx = 0)
{
Byte chkSum = 0;
for (int idx = startIdx; idx < data.Length; idx++)
{
chkSum ^= data[idx];
}
return chkSum;
}
//Write EDID 128 bytes
public static bool DDC_WriteEDID(Byte[] data)
{
//DDC Wr EDID Cmd : CC-20-Idx-data
const int maxWrLen = 32;
const int maxRetryCnt = 5;
int retryCnt = 0;
int wrCnt = 0;
Byte wrChkSum = 0, rdChkSum = 0;
Byte[] cmds = new Byte[maxWrLen + 3];
const Byte MTKCmd = 0xCC;
const Byte wrEdidCmd = 0x20;
cmds[0] = MTKCmd;
cmds[1] = wrEdidCmd;
while ((wrCnt < data.Length) && (retryCnt < maxRetryCnt))
{
cmds[2] = (Byte)wrCnt;
Array.Copy(data, wrCnt, cmds, 3, maxWrLen);
wrChkSum = CalCheckSum(cmds, 3);
DDC_Write(cmds);
WinIOLib.DelayMs(100);
rdChkSum = DDC_ReadChkSum();
if (wrChkSum != rdChkSum)
{
retryCnt++;
continue;
}else{
retryCnt = 0;
wrCnt += maxWrLen;
}
}
if ((retryCnt == 0) && (wrCnt == data.Length))
return true;
else
return false;
}
public static Byte DDC_ReadChkSum()
{
Byte[] cmds = new Byte[2];
const Byte MTKCmd = 0xCC;
const Byte wrRdChkSumCmd = 0x8E;
cmds[0] = MTKCmd;
cmds[1] = wrRdChkSumCmd;
//Recv procedure : 6E-Len-Data0-Data1-ChkSum
const int recvLen = 5;
Byte[] recvBuf = DDC_Read(cmds, recvLen);
if (recvBuf == null)
return 0;
if ((recvBuf[1] & 0x7F) == (recvLen - 3))
return recvBuf[2];
else
return 0;
}
public static bool IsDDCFormatOK(byte[] ddc, ref int slaveAddrIndex, ref int lengthIndex, ref int checkSumIndex)
{
int _slaveAddrIndex = -1, _lengthIndex = -1, _checkSumIndex = -1;
for (int i = 0; i < ddc.Length; ++i)
{
if (ddc[i] == 0x6E)
{
_slaveAddrIndex = i;
if (_slaveAddrIndex + 1 < ddc.Length)
if (ddc[_slaveAddrIndex + 1] > 0x80)
{
_lengthIndex = _slaveAddrIndex + 1;
if ((_lengthIndex + (ddc[_slaveAddrIndex + 1] - 0x80) + 1) < ddc.Length)
{
_checkSumIndex = _lengthIndex + (ddc[_slaveAddrIndex + 1] - 0x80) + 1;
break;
}
}
}
}
WinISP.frmISP.WriteLog("DDCFormat check - _slaveAddrIndex: " + _slaveAddrIndex.ToString(), "debug");
WinISP.frmISP.WriteLog("DDCFormat check - _lengthIndex: " + _lengthIndex.ToString(), "debug");
WinISP.frmISP.WriteLog("DDCFormat check - _checkSumIndex: " + _checkSumIndex.ToString(), "debug");
if ((_slaveAddrIndex == -1) || (_lengthIndex == -1) || (_checkSumIndex == -1))
{
WinISP.frmISP.WriteLog("DDCFormat check fail - Index: -1", "debug");
return false;
}
if ((_checkSumIndex - _lengthIndex <= 0) || (_lengthIndex - _slaveAddrIndex <= 0) || (_checkSumIndex - _slaveAddrIndex <= 0))
{
WinISP.frmISP.WriteLog("DDCFormat check fail - Index fail", "debug");
return false;
}
byte checkSum = 0;
for (int i = _slaveAddrIndex; i < _checkSumIndex; ++i)
checkSum = (byte)(checkSum ^ ddc[i]);
checkSum = (byte)(checkSum ^ 0x50);
WinISP.frmISP.WriteLog("DDCFormat check - Calculated Checksum: " + checkSum.ToString("X2"), "debug");
WinISP.frmISP.WriteLog("DDCFormat check - Received Checksum: " + ddc[_checkSumIndex].ToString("X2"), "debug");
if (checkSum == ddc[_checkSumIndex])
{
slaveAddrIndex = _slaveAddrIndex;
lengthIndex = _lengthIndex;
checkSumIndex = _checkSumIndex;
return true;
}
else
{
WinISP.frmISP.WriteLog("DDCFormat check fail - Checksum fail", "debug");
return false;
}
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
//using System.Linq;
using System.Text;
namespace MTK
{
public enum Levels {Low, High};
public interface ISimI2CCtrl
{
Levels SDA { get; set; }
Levels SCL { get; set; }
bool I2C_Start();
void I2C_Stop();
byte I2C_RecvByte(bool IsAck);
bool I2C_SendByte(byte data);
bool WriteData(Byte slvAddr, Byte[] arr);
byte ReadData(Byte slvAddr, Byte[] arr);
bool WriteData(Byte[] data);
bool ReadData(Byte[] data, byte[] wrCmds = null);
bool Init();
}
}

View File

@@ -0,0 +1,75 @@
using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Windows.Forms;
namespace MTK
{
public unsafe class WinIOLib
{
[DllImport("kernel32.dll")]
extern static short QueryPerformanceCounter(ref long x);
[DllImport("kernel32.dll")]
extern static short QueryPerformanceFrequency(ref long x);
static double _baseCnt = 0;
static long _cpuCnt = 0;
static long _dlyCnt = 0;
public static int _dftI2CDlyTime = 10;
public static void Delaytime(long dtime)
{
int tick = Environment.TickCount;
while (Environment.TickCount - tick < dtime)
{
System.Windows.Forms.Application.DoEvents();
}
}
public static void DelayUs(int us = -1)
{
if (us == -1)
us = _dftI2CDlyTime;
if (us == 0)
return;
if (_baseCnt == 0)
{
long cpuFreq = 0;
QueryPerformanceFrequency(ref cpuFreq);
_baseCnt = (cpuFreq) / 1000000;
}
QueryPerformanceCounter(ref _cpuCnt);
_dlyCnt = _cpuCnt + (long)(_baseCnt * us);
while (true)
{
QueryPerformanceCounter(ref _cpuCnt);
if (_cpuCnt > _dlyCnt)
break;
}
}
public static void DelayMs(int ms)
{
DelayUs(ms * 1000);
}
private static int GetTickCount()
{
return Environment.TickCount & Int32.MaxValue;
}
public static void ExDelayMs(int ms)
{
int endCnt = GetTickCount() + ms;
while (endCnt > GetTickCount())
{
System.Windows.Forms.Application.DoEvents();
}
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace WinISP
{
public class AccessIni
{
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public static bool IsShowErrorMsg = true;
public AccessIni() { }
public static StringBuilder GetProfileString(string section, string key, string filePath)
{
StringBuilder retStr = new StringBuilder(255);
try
{
int retError = GetPrivateProfileString(section, key, "", retStr, retStr.Capacity, filePath);
if (retError == 0)
{
if (IsShowErrorMsg)
System.Windows.Forms.MessageBox.Show("section = [ " + section.ToString() + " ] key = [ " + key.ToString() + " ] \n format error !!");
}
}
catch (Exception ex)
{
if (IsShowErrorMsg)
System.Windows.Forms.MessageBox.Show("section = [ " + section.ToString() + " ] key = [ " + key.ToString() + " ] \n" + ex.Message);
}
return retStr;
}
}
}

View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0.201</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1 @@
Console.WriteLine("Hello, World!");

View File

@@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace WinISP
{
static class Program
{
public static bool isManagedDll = false;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ApplicationExit += Application_ApplicationExit;
{
Application.Run(new frmISP());
}
}
public static bool IsManagedAssembly(string fileName)
{
if (!System.IO.Directory.Exists(fileName))
return true;
using (Stream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
if (fileStream.Length < 64)
{
return false;
}
//PE Header starts @ 0x3C (60). Its a 4 byte header.
fileStream.Position = 0x3C;
uint peHeaderPointer = binaryReader.ReadUInt32();
if (peHeaderPointer == 0)
{
peHeaderPointer = 0x80;
}
// Ensure there is at least enough room for the following structures:
// 24 byte PE Signature & Header
// 28 byte Standard Fields (24 bytes for PE32+)
// 68 byte NT Fields (88 bytes for PE32+)
// >= 128 byte Data Dictionary Table
if (peHeaderPointer > fileStream.Length - 256)
{
return false;
}
// Check the PE signature. Should equal 'PE\0\0'.
fileStream.Position = peHeaderPointer;
uint peHeaderSignature = binaryReader.ReadUInt32();
if (peHeaderSignature != 0x00004550)
{
return false;
}
// skip over the PEHeader fields
fileStream.Position += 20;
const ushort PE32 = 0x10b;
const ushort PE32Plus = 0x20b;
// Read PE magic number from Standard Fields to determine format.
var peFormat = binaryReader.ReadUInt16();
if (peFormat != PE32 && peFormat != PE32Plus)
{
return false;
}
// Read the 15th Data Dictionary RVA field which contains the CLI header RVA.
// When this is non-zero then the file contains CLI data otherwise not.
ushort dataDictionaryStart = (ushort)(peHeaderPointer + (peFormat == PE32 ? 232 : 248));
fileStream.Position = dataDictionaryStart;
uint cliHeaderRva = binaryReader.ReadUInt32();
if (cliHeaderRva == 0)
{
return false;
}
return true;
}
}
static void Application_ApplicationExit(object sender, EventArgs e)
{
}
static void deleteFile(string path)
{
try
{
if (File.Exists(path))
File.Delete(path);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
static void SetFileAttrHiden(string path)
{
if (File.Exists(path))
{
FileInfo fileInfo = new FileInfo(path);
fileInfo.Attributes = FileAttributes.Hidden;
}
}
static void WriteFile(string path, byte[] binary)
{
try
{
System.IO.File.WriteAllBytes(path, binary);
SetFileAttrHiden(path);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Display firmware update tool")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("www.mediatek.com")]
[assembly: AssemblyProduct("ISP Tool")]
[assembly: AssemblyCopyright("Copyright © Mediatek Inc 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("497598ab-acf1-47e2-bf34-9ea38c9d82fb")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.0.1")]
[assembly: AssemblyFileVersion("1.2.0.1")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------
namespace WinISP.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WinISP.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</root>

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------
namespace WinISP.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel node will disable file and registry virtualization.
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of all Windows versions that this application is designed to work with.
Windows will automatically select the most compatible environment.-->
<!-- If your application is designed to work with Windows Vista, uncomment the following supportedOS node-->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>-->
<!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
<!-- If your application is designed to work with Windows 8, uncomment the following supportedOS node-->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>-->
</application>
</compatibility>
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!-- <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>-->
</asmv1:assembly>

View File

@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{033DCDDE-510B-46E8-8F6E-6BBEB8681D7E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WinISP</RootNamespace>
<AssemblyName>WinISP</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;UNMANAGED_DLL;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;UNMANAGED_DLL;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;UNMANAGED_DLL;</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;UNMANAGED_DLL;</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Security" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BaseClass\ini\AccessIni.cs" />
<Compile Include="BaseClass\GraphicCardI2CCtrl.cs" />
<Compile Include="BaseClass\MTKDebugCmd.cs" />
<Compile Include="BaseClass\SimI2CCtrl.cs" />
<Compile Include="BaseClass\WinIOLib.cs" />
<Compile Include="frmISP.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmISP.Designer.cs">
<DependentUpon>frmISP.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmISP.resx">
<DependentUpon>frmISP.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\app.manifest">
<SubType>Designer</SubType>
</None>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
<Visible>False</Visible>
<ProductName>Windows Installer 4.5</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinISP", "WinISP.csproj", "{BB96FAE8-5F8F-9378-6248-D5D92CB77471}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BB96FAE8-5F8F-9378-6248-D5D92CB77471}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB96FAE8-5F8F-9378-6248-D5D92CB77471}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB96FAE8-5F8F-9378-6248-D5D92CB77471}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB96FAE8-5F8F-9378-6248-D5D92CB77471}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4580AF4B-5D5E-4C98-8BC6-4A05FF27BCB4}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,3 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

View File

@@ -0,0 +1,548 @@
namespace WinISP
{
partial class frmISP
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnRunISP = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.lblBinName = new System.Windows.Forms.Label();
this.txtPktDelayTime = new System.Windows.Forms.TextBox();
this.label16 = new System.Windows.Forms.Label();
this.lblVer = new System.Windows.Forms.Label();
this.btnRunDPISP = new System.Windows.Forms.Button();
this.pnlConnState = new System.Windows.Forms.Panel();
this.btnConnect = new System.Windows.Forms.Button();
this.btnOpenBin = new System.Windows.Forms.Button();
this.labelFile = new System.Windows.Forms.Label();
this.lblGraphicCardTitle = new System.Windows.Forms.Label();
this.lblFileSize = new System.Windows.Forms.Label();
this.lblGraphicCard = new System.Windows.Forms.Label();
this.lblConnectedPort = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.lblTransferTime = new System.Windows.Forms.Label();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.label14 = new System.Windows.Forms.Label();
this.label19 = new System.Windows.Forms.Label();
this.lblDisplayName = new System.Windows.Forms.Label();
this.label20 = new System.Windows.Forms.Label();
this.lblMTKChipType = new System.Windows.Forms.Label();
this.label21 = new System.Windows.Forms.Label();
this.lblPktDelayTime = new System.Windows.Forms.Label();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.lblPgsPercentage = new System.Windows.Forms.Label();
this.lblUpdatingFWmsg = new System.Windows.Forms.Label();
this.label22 = new System.Windows.Forms.Label();
this.label23 = new System.Windows.Forms.Label();
this.cboConnectedMonitor = new System.Windows.Forms.ComboBox();
this.label24 = new System.Windows.Forms.Label();
this.lblDisplayNumber = new System.Windows.Forms.Label();
this.txtDelayUnit = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// btnRunISP
//
this.btnRunISP.Location = new System.Drawing.Point(940, 109);
this.btnRunISP.Name = "btnRunISP";
this.btnRunISP.Size = new System.Drawing.Size(75, 23);
this.btnRunISP.TabIndex = 119;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Calibri", 12F);
this.label1.Location = new System.Drawing.Point(6, 13);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(114, 19);
this.label1.TabIndex = 56;
this.label1.Text = "Binary file name";
//
// lblBinName
//
this.lblBinName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblBinName.Font = new System.Drawing.Font("Calibri", 12F);
this.lblBinName.Location = new System.Drawing.Point(125, 8);
this.lblBinName.Name = "lblBinName";
this.lblBinName.Size = new System.Drawing.Size(584, 28);
this.lblBinName.TabIndex = 57;
//
// txtPktDelayTime
//
this.txtPktDelayTime.Font = new System.Drawing.Font("Calibri", 12F);
this.txtPktDelayTime.Location = new System.Drawing.Point(439, 111);
this.txtPktDelayTime.Name = "txtPktDelayTime";
this.txtPktDelayTime.Size = new System.Drawing.Size(153, 27);
this.txtPktDelayTime.TabIndex = 118;
this.txtPktDelayTime.Visible = false;
//
// label16
//
this.label16.AutoSize = true;
this.label16.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label16.Location = new System.Drawing.Point(302, 82);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(90, 19);
this.label16.TabIndex = 82;
this.label16.Text = "Com Version";
this.label16.Visible = false;
//
// lblVer
//
this.lblVer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblVer.Font = new System.Drawing.Font("Calibri", 12F);
this.lblVer.Location = new System.Drawing.Point(439, 76);
this.lblVer.Name = "lblVer";
this.lblVer.Size = new System.Drawing.Size(153, 28);
this.lblVer.TabIndex = 83;
this.lblVer.Visible = false;
//
// btnRunDPISP
//
this.btnRunDPISP.Font = new System.Drawing.Font("Calibri", 12F);
this.btnRunDPISP.Location = new System.Drawing.Point(664, 42);
this.btnRunDPISP.Name = "btnRunDPISP";
this.btnRunDPISP.Size = new System.Drawing.Size(97, 31);
this.btnRunDPISP.TabIndex = 65;
this.btnRunDPISP.Text = "Update";
this.btnRunDPISP.UseVisualStyleBackColor = true;
this.btnRunDPISP.Click += new System.EventHandler(this.btnRunDPISP_Click);
//
// pnlConnState
//
this.pnlConnState.BackColor = System.Drawing.Color.Red;
this.pnlConnState.Location = new System.Drawing.Point(636, 42);
this.pnlConnState.Name = "pnlConnState";
this.pnlConnState.Size = new System.Drawing.Size(23, 31);
this.pnlConnState.TabIndex = 32;
//
// btnConnect
//
this.btnConnect.Font = new System.Drawing.Font("Calibri", 12F);
this.btnConnect.Location = new System.Drawing.Point(664, 106);
this.btnConnect.Name = "btnConnect";
this.btnConnect.Size = new System.Drawing.Size(97, 31);
this.btnConnect.TabIndex = 31;
this.btnConnect.Text = "Connect";
this.btnConnect.UseVisualStyleBackColor = true;
this.btnConnect.Visible = false;
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
//
// btnOpenBin
//
this.btnOpenBin.Font = new System.Drawing.Font("Calibri", 12F);
this.btnOpenBin.Location = new System.Drawing.Point(713, 8);
this.btnOpenBin.Name = "btnOpenBin";
this.btnOpenBin.Size = new System.Drawing.Size(48, 28);
this.btnOpenBin.TabIndex = 73;
this.btnOpenBin.Text = "...";
this.btnOpenBin.UseVisualStyleBackColor = true;
this.btnOpenBin.Click += new System.EventHandler(this.btnOpenBin_Click);
//
// labelFile
//
this.labelFile.AutoSize = true;
this.labelFile.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelFile.Location = new System.Drawing.Point(7, 46);
this.labelFile.Name = "labelFile";
this.labelFile.Size = new System.Drawing.Size(103, 19);
this.labelFile.TabIndex = 78;
this.labelFile.Text = "Binary file size";
this.labelFile.Visible = false;
//
// lblGraphicCardTitle
//
this.lblGraphicCardTitle.AutoSize = true;
this.lblGraphicCardTitle.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblGraphicCardTitle.Location = new System.Drawing.Point(7, 80);
this.lblGraphicCardTitle.Name = "lblGraphicCardTitle";
this.lblGraphicCardTitle.Size = new System.Drawing.Size(91, 19);
this.lblGraphicCardTitle.TabIndex = 79;
this.lblGraphicCardTitle.Text = "Graphic card";
this.lblGraphicCardTitle.Visible = false;
//
// lblFileSize
//
this.lblFileSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblFileSize.Font = new System.Drawing.Font("Calibri", 12F);
this.lblFileSize.Location = new System.Drawing.Point(125, 42);
this.lblFileSize.Name = "lblFileSize";
this.lblFileSize.Size = new System.Drawing.Size(171, 28);
this.lblFileSize.TabIndex = 80;
this.lblFileSize.Visible = false;
//
// lblGraphicCard
//
this.lblGraphicCard.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblGraphicCard.Font = new System.Drawing.Font("Calibri", 12F);
this.lblGraphicCard.Location = new System.Drawing.Point(125, 77);
this.lblGraphicCard.Name = "lblGraphicCard";
this.lblGraphicCard.Size = new System.Drawing.Size(171, 28);
this.lblGraphicCard.TabIndex = 81;
this.lblGraphicCard.Visible = false;
//
// lblConnectedPort
//
this.lblConnectedPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblConnectedPort.Font = new System.Drawing.Font("Calibri", 12F);
this.lblConnectedPort.Location = new System.Drawing.Point(125, 110);
this.lblConnectedPort.Name = "lblConnectedPort";
this.lblConnectedPort.Size = new System.Drawing.Size(171, 28);
this.lblConnectedPort.TabIndex = 89;
this.lblConnectedPort.Text = "Unknow";
this.lblConnectedPort.Visible = false;
//
// label17
//
this.label17.AutoSize = true;
this.label17.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label17.Location = new System.Drawing.Point(7, 113);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(108, 19);
this.label17.TabIndex = 88;
this.label17.Text = "Connected port";
this.label17.Visible = false;
//
// lblTransferTime
//
this.lblTransferTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblTransferTime.Font = new System.Drawing.Font("Calibri", 12F);
this.lblTransferTime.Location = new System.Drawing.Point(439, 144);
this.lblTransferTime.Name = "lblTransferTime";
this.lblTransferTime.Size = new System.Drawing.Size(153, 28);
this.lblTransferTime.TabIndex = 92;
this.lblTransferTime.Visible = false;
//
// statusStrip1
//
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripProgressBar1,
this.toolStripStatusLabel1});
this.statusStrip1.Location = new System.Drawing.Point(0, 240);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(1055, 22);
this.statusStrip1.TabIndex = 94;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripProgressBar1
//
this.toolStripProgressBar1.Name = "toolStripProgressBar1";
this.toolStripProgressBar1.Size = new System.Drawing.Size(167, 16);
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(131, 17);
this.toolStripStatusLabel1.Text = "toolStripStatusLabel1";
//
// label14
//
this.label14.AutoSize = true;
this.label14.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label14.Location = new System.Drawing.Point(302, 149);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(127, 19);
this.label14.TabIndex = 96;
this.label14.Text = "Transfer Time(ms)";
this.label14.Visible = false;
//
// label19
//
this.label19.AutoSize = true;
this.label19.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label19.Location = new System.Drawing.Point(310, 183);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(99, 19);
this.label19.TabIndex = 106;
this.label19.Text = "Dispaly Name";
this.label19.Visible = false;
//
// lblDisplayName
//
this.lblDisplayName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblDisplayName.Font = new System.Drawing.Font("Calibri", 12F);
this.lblDisplayName.Location = new System.Drawing.Point(439, 178);
this.lblDisplayName.Name = "lblDisplayName";
this.lblDisplayName.Size = new System.Drawing.Size(153, 28);
this.lblDisplayName.TabIndex = 105;
this.lblDisplayName.Visible = false;
//
// label20
//
this.label20.AutoSize = true;
this.label20.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label20.Location = new System.Drawing.Point(302, 46);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(72, 19);
this.label20.TabIndex = 109;
this.label20.Text = "Chip Type";
this.label20.Visible = false;
//
// lblMTKChipType
//
this.lblMTKChipType.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblMTKChipType.Font = new System.Drawing.Font("Calibri", 12F);
this.lblMTKChipType.Location = new System.Drawing.Point(439, 41);
this.lblMTKChipType.Name = "lblMTKChipType";
this.lblMTKChipType.Size = new System.Drawing.Size(153, 28);
this.lblMTKChipType.TabIndex = 110;
this.lblMTKChipType.Visible = false;
//
// label21
//
this.label21.AutoSize = true;
this.label21.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label21.Location = new System.Drawing.Point(302, 116);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(107, 19);
this.label21.TabIndex = 112;
this.label21.Text = "Delay Time(us)";
this.label21.Visible = false;
//
// lblPktDelayTime
//
this.lblPktDelayTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblPktDelayTime.Font = new System.Drawing.Font("Calibri", 12F);
this.lblPktDelayTime.Location = new System.Drawing.Point(439, 111);
this.lblPktDelayTime.Name = "lblPktDelayTime";
this.lblPktDelayTime.Size = new System.Drawing.Size(153, 28);
this.lblPktDelayTime.TabIndex = 111;
this.lblPktDelayTime.Visible = false;
//
// progressBar1
//
this.progressBar1.Location = new System.Drawing.Point(9, 41);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(621, 34);
this.progressBar1.TabIndex = 115;
this.progressBar1.Visible = false;
//
// lblPgsPercentage
//
this.lblPgsPercentage.AutoSize = true;
this.lblPgsPercentage.BackColor = System.Drawing.SystemColors.Control;
this.lblPgsPercentage.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblPgsPercentage.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblPgsPercentage.Location = new System.Drawing.Point(645, 38);
this.lblPgsPercentage.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblPgsPercentage.Name = "lblPgsPercentage";
this.lblPgsPercentage.Size = new System.Drawing.Size(28, 19);
this.lblPgsPercentage.TabIndex = 116;
this.lblPgsPercentage.Text = "0%";
this.lblPgsPercentage.Visible = false;
//
// lblUpdatingFWmsg
//
this.lblUpdatingFWmsg.AutoSize = true;
this.lblUpdatingFWmsg.BackColor = System.Drawing.SystemColors.Control;
this.lblUpdatingFWmsg.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblUpdatingFWmsg.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblUpdatingFWmsg.Location = new System.Drawing.Point(7, 85);
this.lblUpdatingFWmsg.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblUpdatingFWmsg.Name = "lblUpdatingFWmsg";
this.lblUpdatingFWmsg.Size = new System.Drawing.Size(141, 19);
this.lblUpdatingFWmsg.TabIndex = 117;
this.lblUpdatingFWmsg.Text = "Updating firmware...";
this.lblUpdatingFWmsg.Visible = false;
//
// label22
//
this.label22.AutoSize = true;
this.label22.BackColor = System.Drawing.Color.White;
this.label22.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(136)));
this.label22.ForeColor = System.Drawing.Color.Red;
this.label22.Location = new System.Drawing.Point(10, 210);
this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(569, 28);
this.label22.TabIndex = 113;
this.label22.Text = "Do not power off or disconnect cable while updating!";
this.label22.Visible = false;
//
// label23
//
this.label23.AutoSize = true;
this.label23.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label23.Location = new System.Drawing.Point(7, 181);
this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(117, 19);
this.label23.TabIndex = 115;
this.label23.Text = "MTK Display List";
this.label23.Visible = false;
//
// cboConnectedMonitor
//
this.cboConnectedMonitor.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cboConnectedMonitor.FormattingEnabled = true;
this.cboConnectedMonitor.Location = new System.Drawing.Point(125, 178);
this.cboConnectedMonitor.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cboConnectedMonitor.Name = "cboConnectedMonitor";
this.cboConnectedMonitor.Size = new System.Drawing.Size(171, 27);
this.cboConnectedMonitor.TabIndex = 114;
this.cboConnectedMonitor.Visible = false;
this.cboConnectedMonitor.SelectedIndexChanged += new System.EventHandler(this.cboConnectedMonitor_SelectedIndexChanged);
//
// label24
//
this.label24.AutoSize = true;
this.label24.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label24.Location = new System.Drawing.Point(7, 149);
this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(112, 19);
this.label24.TabIndex = 116;
this.label24.Text = "Display Number";
this.label24.Visible = false;
//
// lblDisplayNumber
//
this.lblDisplayNumber.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.lblDisplayNumber.Font = new System.Drawing.Font("Calibri", 12F);
this.lblDisplayNumber.Location = new System.Drawing.Point(125, 144);
this.lblDisplayNumber.Name = "lblDisplayNumber";
this.lblDisplayNumber.Size = new System.Drawing.Size(171, 28);
this.lblDisplayNumber.TabIndex = 117;
this.lblDisplayNumber.Text = "0";
this.lblDisplayNumber.Visible = false;
//
// txtDelayUnit
//
this.txtDelayUnit.Location = new System.Drawing.Point(940, 210);
this.txtDelayUnit.MaxLength = 8;
this.txtDelayUnit.Name = "txtDelayUnit";
this.txtDelayUnit.Size = new System.Drawing.Size(100, 21);
this.txtDelayUnit.TabIndex = 121;
this.txtDelayUnit.Text = "5";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(939, 194);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(65, 12);
this.label10.TabIndex = 120;
this.label10.Text = "Delay Unit";
//
// frmISP
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1055, 262);
this.Controls.Add(this.txtDelayUnit);
this.Controls.Add(this.label10);
this.Controls.Add(this.lblUpdatingFWmsg);
this.Controls.Add(this.lblPgsPercentage);
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.txtPktDelayTime);
this.Controls.Add(this.lblDisplayNumber);
this.Controls.Add(this.label24);
this.Controls.Add(this.label23);
this.Controls.Add(this.cboConnectedMonitor);
this.Controls.Add(this.label22);
this.Controls.Add(this.label21);
this.Controls.Add(this.lblPktDelayTime);
this.Controls.Add(this.label20);
this.Controls.Add(this.lblMTKChipType);
this.Controls.Add(this.label19);
this.Controls.Add(this.lblDisplayName);
this.Controls.Add(this.label14);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.lblTransferTime);
this.Controls.Add(this.lblConnectedPort);
this.Controls.Add(this.label16);
this.Controls.Add(this.label17);
this.Controls.Add(this.lblVer);
this.Controls.Add(this.lblGraphicCard);
this.Controls.Add(this.lblFileSize);
this.Controls.Add(this.lblGraphicCardTitle);
this.Controls.Add(this.labelFile);
this.Controls.Add(this.btnOpenBin);
this.Controls.Add(this.btnRunDPISP);
this.Controls.Add(this.lblBinName);
this.Controls.Add(this.pnlConnState);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnRunISP);
this.Controls.Add(this.btnConnect);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "frmISP";
this.Text = "Dispaly firmware update tool";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmISP_FormClosing);
this.Load += new System.EventHandler(this.frmISP_Load);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnRunISP;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lblBinName;
private System.Windows.Forms.Panel pnlConnState;
private System.Windows.Forms.Button btnConnect;
private System.Windows.Forms.Button btnRunDPISP;
private System.Windows.Forms.Button btnOpenBin;
private System.Windows.Forms.Label labelFile;
private System.Windows.Forms.Label lblGraphicCardTitle;
private System.Windows.Forms.Label lblFileSize;
private System.Windows.Forms.Label lblGraphicCard;
private System.Windows.Forms.Label lblVer;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label lblConnectedPort;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label lblTransferTime;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label lblDisplayName;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Label lblMTKChipType;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.Label lblPktDelayTime;
private System.Windows.Forms.TextBox txtPktDelayTime;
private System.Windows.Forms.ProgressBar progressBar1;
private System.Windows.Forms.Label lblPgsPercentage;
private System.Windows.Forms.Label lblUpdatingFWmsg;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.ComboBox cboConnectedMonitor;
private System.Windows.Forms.Label label24;
private System.Windows.Forms.Label lblDisplayNumber;
private System.Windows.Forms.TextBox txtDelayUnit;
private System.Windows.Forms.Label label10;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 14</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>57</value>
</metadata>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB