From 9aa6a964345583a11e2ed4acded0bf7d745cc0eb Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Thu, 5 Jan 2023 09:52:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DJSON=E5=B7=A5=E5=85=B7BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cfg-tools/apps/scanner-check/CDlgMgr.cpp | 86 +++++++++++++++++- cfg-tools/apps/scanner-check/page.h | 1 + .../apps/scanner-check/scanner-checkDlg.cpp | 7 ++ .../apps/scanner-check/scanner-checkDlg.h | 1 + cfg-tools/solution/Release/scanner-check.exe | Bin 324096 -> 326144 bytes 5 files changed, 90 insertions(+), 5 deletions(-) diff --git a/cfg-tools/apps/scanner-check/CDlgMgr.cpp b/cfg-tools/apps/scanner-check/CDlgMgr.cpp index 85290c0..851e933 100644 --- a/cfg-tools/apps/scanner-check/CDlgMgr.cpp +++ b/cfg-tools/apps/scanner-check/CDlgMgr.cpp @@ -1121,12 +1121,12 @@ std::wstring CDlgMgr::export_config(bool *ok, bool used_in_code, int code_ver) static void trans_code_json(std::wstring& json) { - size_t pos = json.find(L"(L\""); + size_t pos = json.find(L"(\""); if (pos == std::wstring::npos) return; - json.erase(0, pos + 3); + json.erase(0, pos + 2); pos = json.rfind(L'\"'); if (pos != std::wstring::npos) json.erase(pos); @@ -1188,8 +1188,13 @@ void CDlgMgr::add_param_from_config(CComboBox* param_ctrl, CComboBox* val_ctrl, } void CDlgMgr::reload(std::wstring& cont) { - if (cont.find(L"static std::wstring") == 0) + bool code_jsn = false; + + if (cont.find(L"static std::string") == 0) + { trans_code_json(cont); + code_jsn = true; + } known_file_util::IJsonW* jsn = known_file_util::create_jsonW(); if (jsn->attach(cont.c_str())) @@ -1270,6 +1275,75 @@ void CDlgMgr::reload(std::wstring& cont) } write->release(); } + else + { + int nv = 0; + if (child->get_value(L"vid-to", nv)) + { + FIND_DATA(combo_param_, GetCount, PARAM_VID, ind); + if (ind != -1) + { + wchar_t hex[40] = { 0 }; + + swprintf_s(hex, _countof(hex) - 1, L"%04x", nv); + combo_param_.SetCurSel(ind); + OnCbnSelchangeComboParam(); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_PARAM_VAL, hex); + OnBnClickedButtonAddParam(); + } + } + if (child->get_value(L"pid-to", nv)) + { + FIND_DATA(combo_param_, GetCount, PARAM_PID, ind); + if (ind != -1) + { + wchar_t hex[40] = { 0 }; + + swprintf_s(hex, _countof(hex) - 1, L"%04x", nv); + combo_param_.SetCurSel(ind); + OnCbnSelchangeComboParam(); + ::SetDlgItemTextW(m_hWnd, IDC_EDIT_PARAM_VAL, hex); + OnBnClickedButtonAddParam(); + } + } + if (child->get_value(L"speed-mode", nv)) + { + FIND_DATA(combo_param_, GetCount, PARAM_SPEED, ind); + if (ind != -1) + { + combo_param_.SetCurSel(ind); + OnCbnSelchangeComboParam(); + SetDlgItemInt(IDC_EDIT_PARAM_VAL, nv); + OnBnClickedButtonAddParam(); + } + } + if (child->get_value(L"sleep-time", nv)) + { + ind = -1; + for (int i = 0; i < combo_param_.GetCount(); ++i) + { + DWORD_PTR data = combo_param_.GetItemData(i); + if (data != PARAM_VID && data != PARAM_PID && data != PARAM_SPEED) + { + known_file_util::IJsonW* jsn = (known_file_util::IJsonW*)data; + if (wcscmp(jsn->key(), L"time-to-sleep") == 0) + { + ind = i; + break; + } + } + } + if (ind != -1) + { + combo_param_.SetCurSel(ind); + OnCbnSelchangeComboParam(); + ind = combo_param_val_.FindStringExact(-1, L"\u4E94\u5206\u949F"); + if (ind != -1) + combo_param_val_.SetCurSel(ind); + OnBnClickedButtonAddParam(); + } + } + } child->release(); } @@ -1279,10 +1353,12 @@ void CDlgMgr::reload(std::wstring& cont) { known_file_util::IJsonW* tpl = NULL; child->get_value(L"name", &val); - ind = find_template(&combo_param_, val, &tpl); + if (child->get_value(L"ver", id)) + ::PostMessage(GetParent()->m_hWnd, WM_SET_CODE_VER, 0, (LPARAM)id); + id = find_template(&combo_, val, &tpl); if (tpl) { - combo_.SetCurSel(ind); + combo_.SetCurSel(id); OnBnClickedButtonAdd(); FIND_DATA(list_, GetItemCount, tpl, id); if (id != -1) diff --git a/cfg-tools/apps/scanner-check/page.h b/cfg-tools/apps/scanner-check/page.h index 42720ba..e8aef63 100644 --- a/cfg-tools/apps/scanner-check/page.h +++ b/cfg-tools/apps/scanner-check/page.h @@ -9,6 +9,7 @@ #define WM_TO_ITEM_MGR_TAB WM_USER + 102 #define WM_TEST_ITEM_CHANGED WM_USER + 103 #define WM_REFRESH_TEST_ITEM WM_USER + 104 +#define WM_SET_CODE_VER WM_USER + 105 // WPARAM: unused, LPARAM: ver #include #include diff --git a/cfg-tools/apps/scanner-check/scanner-checkDlg.cpp b/cfg-tools/apps/scanner-check/scanner-checkDlg.cpp index 5c4d579..4383510 100644 --- a/cfg-tools/apps/scanner-check/scanner-checkDlg.cpp +++ b/cfg-tools/apps/scanner-check/scanner-checkDlg.cpp @@ -48,6 +48,7 @@ BEGIN_MESSAGE_MAP(CscannercheckDlg, CDialogEx) ON_MESSAGE(WM_TO_ITEM_MGR_TAB, &CscannercheckDlg::on_to_item_manager_tab) ON_MESSAGE(WM_TEST_ITEM_CHANGED, &CscannercheckDlg::on_test_item_changed) ON_MESSAGE(WM_REFRESH_TEST_ITEM, &CscannercheckDlg::on_refresh_test_items) + ON_MESSAGE(WM_SET_CODE_VER, &CscannercheckDlg::on_set_code_ver) END_MESSAGE_MAP() void CscannercheckDlg::add_page(const wchar_t* title, CDialogEx* child) @@ -265,4 +266,10 @@ LRESULT CscannercheckDlg::on_refresh_test_items(WPARAM wp, LPARAM lp) return 0; } +LRESULT CscannercheckDlg::on_set_code_ver(WPARAM wp, LPARAM lp) +{ + SetDlgItemInt(IDC_EDIT_VER, (UINT)lp); + + return 0; +} diff --git a/cfg-tools/apps/scanner-check/scanner-checkDlg.h b/cfg-tools/apps/scanner-check/scanner-checkDlg.h index b0a892b..a3c5105 100644 --- a/cfg-tools/apps/scanner-check/scanner-checkDlg.h +++ b/cfg-tools/apps/scanner-check/scanner-checkDlg.h @@ -48,5 +48,6 @@ public: afx_msg LRESULT on_to_item_manager_tab(WPARAM, LPARAM); afx_msg LRESULT on_test_item_changed(WPARAM wp, LPARAM lp); afx_msg LRESULT on_refresh_test_items(WPARAM wp, LPARAM lp); + afx_msg LRESULT on_set_code_ver(WPARAM wp, LPARAM lp); afx_msg void OnTcnSelchangingTab1(NMHDR* pNMHDR, LRESULT* pResult); }; diff --git a/cfg-tools/solution/Release/scanner-check.exe b/cfg-tools/solution/Release/scanner-check.exe index b3c0004fea397b56250b671e9aa51fa0ea47821b..0d90b433de43167409ba13fd9aad96e5cc72f7d1 100644 GIT binary patch delta 29836 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%0Dk91!Q`q_!t8Xo$DtQ$^3e~OLmGU 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 Ch4bA2 delta 28298 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 Pa(|N)OT?^MH0J*R)BBb;