From acfa1e40181d3b390164c189fcebb2821978f5b4 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Mon, 6 Feb 2023 14:56:19 +0800 Subject: [PATCH] vault backup: 2023-02-06 14:56:19 --- .obsidian/workspace.json | 2 +- 00. Inbox/vc-fwUpdate code trace(Meetup).canvas | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index b0fc29e..e8abf48 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -44,7 +44,7 @@ "file": "00. Inbox/vc-fwUpdate code trace(Meetup).canvas", "viewState": { "x": 612, - "y": 9.937327478042675, + "y": -63, "zoom": -0.9105785977715345, "snapToGrid": false } diff --git a/00. Inbox/vc-fwUpdate code trace(Meetup).canvas b/00. Inbox/vc-fwUpdate code trace(Meetup).canvas index c115631..53d01d3 100644 --- a/00. Inbox/vc-fwUpdate code trace(Meetup).canvas +++ b/00. Inbox/vc-fwUpdate code trace(Meetup).canvas @@ -21,8 +21,9 @@ {"id":"551e749e0cf332d3","x":427,"y":-28,"width":635,"height":249,"type":"text","text":"```cpp\nDoOpenDevice()\n⬇\nd_->OpenDevice();\n⬇\nUvcDeviceFactory().CreateUvcDevice({ UsbVidLogitech, UsbVideoPid });\n⬇\nWindowsUvcDevice::FindDevice(usbId);\n⬇\nImpl::OpenUvcDevice(usbId.Vid, usbId.Pid, devicePath, friendlyName);\n```"}, {"id":"18c6dbc9cf46e214","x":1132,"y":-33,"width":333,"height":260,"type":"text","text":"`Impl::OpenUvcDevice` 會使用\n```cpp\nSetupDiGetClassDevs(...)\nSetupDiEnumDeviceInterfaces(...)\n```\n等 API 來列舉裝置。\n\n----\n在 `Impl::OpenUvcDevice` 也會打開 XU 。\n在 `uvcDevice->d_->Init();` 裡面。"}, {"id":"c0e439a5140dbceb","x":1531,"y":-36,"width":443,"height":267,"type":"text","text":"`vc-fwUpdate\\UpdateController\\WindowsUvcDevice.cpp`\n\n----\n\n`uvcDevice->d_->Init();` 也就是 `Impl::Init()`\n會呼叫 `InitExtensionUnits();`,其呼叫順序:\n```cpp\nInitExtensionUnits();\n⬇\nEnumNodePropertySets();\n⬇\nDeviceIoControl(...)\n```\n\n"}, - {"id":"7ff8bac3fc3253f1","x":-434,"y":531,"width":311,"height":55,"type":"text","text":"`Impl::InitializeDynamicControls()`"}, - {"id":"cb5dc2c4eb714d15","x":-7,"y":231,"width":369,"height":223,"type":"text","text":"`vc-fwUpdate\\Frontends-developer\\LogiFWUpdate\\Ui\\LogiFWUpdateDlg.cpp:2117`\n\n----\n```cpp\nfor (...) {\n task->GetImageInfo();\n}\n```"} + {"id":"cb5dc2c4eb714d15","x":-7,"y":231,"width":369,"height":223,"type":"text","text":"`vc-fwUpdate\\Frontends-developer\\LogiFWUpdate\\Ui\\LogiFWUpdateDlg.cpp:2117`\n\n----\n```cpp\nfor (...) {\n task->GetImageInfo();\n}\n```"}, + {"id":"b272fd16c8f236a3","x":-7,"y":499,"width":432,"height":60,"type":"text","text":"```cpp\ncontroller_->SetTaskEnabled(taskId, enable);\n```"}, + {"id":"7ff8bac3fc3253f1","x":-434,"y":642,"width":311,"height":55,"type":"text","text":"`Impl::InitializeDynamicControls()`"} ], "edges":[ {"id":"b621a476fd748a7d","fromNode":"35301ec811a15aa2","fromSide":"bottom","toNode":"e01a865b5a13d6e9","toSide":"left"}, @@ -46,6 +47,7 @@ {"id":"dbf07f00980f3a0f","fromNode":"551e749e0cf332d3","fromSide":"right","toNode":"18c6dbc9cf46e214","toSide":"left"}, {"id":"762bcd1254df7890","fromNode":"18c6dbc9cf46e214","fromSide":"right","toNode":"c0e439a5140dbceb","toSide":"left"}, {"id":"d03a2aa8290e6113","fromNode":"dade636ce2d72147","fromSide":"bottom","toNode":"ce300adbc95c5a4b","toSide":"left"}, - {"id":"27e46e4e71993a05","fromNode":"dade636ce2d72147","fromSide":"bottom","toNode":"cb5dc2c4eb714d15","toSide":"left"} + {"id":"27e46e4e71993a05","fromNode":"dade636ce2d72147","fromSide":"bottom","toNode":"cb5dc2c4eb714d15","toSide":"left"}, + {"id":"41d665388fdcd5fd","fromNode":"dade636ce2d72147","fromSide":"bottom","toNode":"b272fd16c8f236a3","toSide":"left"} ] } \ No newline at end of file