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 1/5] =?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 zcmeIb3s{sz-#>oOumUOy$Wb|}pqQw8WOvyk2ucdJo=>QF!WB)iuq?I3MAMK$$Gokm zsH}X-3d01G5|fmQ43mt?0~OkmlvHM<=>9&lyC_!A^FHtO{C@BC|6kX8cYXNGeCIo- z@63E>?t@$Y<$(O=fU;0BAY$U%^9A?SBv8_m^o|e~5J7m%!zum2!V<|8Qp&cHf!&qS zf{+$Xh1{+E1G?w;r$Q)nD%qDr-Q%A5$m56T0@ja4_I~SA1oI)P2V2=FI+$qKGCFw3 z7z)9y%Pa`y;rA?Dx*Uz*r3*qgK^Oq4FMp3tB3_or6=AX#t(g|1H$thq=y){P5_FY{0hLTH9yZ%*dQb#-+)f_2(sNy34K z8OefuL^7I}&kL*ROrKoXn&YrOvz%2*B7!@vL9?A}4(lnPIKP?6LYbCbltd6e*1cO? zM42{8IGWl)6xBK2$GS<8%&!AHV2xqppi%GApwQ@jtXq1g1`k*@jCG5nZCdtjw|-auH1L|9)VVaJb#FpGB|n;FS=351>F)4mxEZ-%=4aW9NdDNk=UcBcDTYod~c1N(UT za-J^S%g4`|exPhVqz{iKf^{~RzTuQwh2DaYBiKJlBf<-<&^ThX^3-ByD*ML!9{QS& zP41r4qu7uv6dtzN@4vJB!|sa-t|KbI|D7$ zTU!1@;Jt*h;cQND1udOZ9vWgK^vs;{X`yd;(Dpdy9j>JB$1!90D31r@2=mVjW;cHF zq#1GSrSSfAXcnstH_(fUa<7OvWZ0u}A{-knkz&QHukkrHTCYdw*l09Y5DG_2j(Mdc zUTBsaOVLPTm~^0l)kl6$N5_^Qh}uR&wmyb|Y1+%%schld3SkDp5X+aQMGonA87{s0%5kd#gWtAiDqAk(o-KA>?T_43Bk(ud` z0QR9Qf<8Z&*=45&3tyNqVUF8RQ8amNgI`fbb>ZatqSQv;kr~zFE!MXC%!2(7FLqv@ zr2HrX1{rnJ)T3Oc9_2FiD9JHTZt7#HWlqy`i%TUjBMW(WCtF zL^Giyy0a6yG_UjCH%BqB3SmAn5~0pLG-u|rH2uePadUZ)VKVXB?s-!=Uur4N!YvQzI63G z)@at!bG|Gf=}X$jgZ-3bruEdRvYWCo$=?q?xD*pTJtmaTeoyW~XDjOLuaeH0d$gh^mKy2-bh*Nand1_4^Lf5JZ9by*vq4) z(H=dvjeddd?#XtIPVk7iF0eDB(>*>%2jbHf&{f`STUs7%npf_9r;T{re^p?Qj+sU? zy;<{^F&_1Q2<5V|VZ`qS?BQ4mHv-?&Zg2Bsnd!=*%i0CLMm8%7kIb1pliSu0n`y_o zBw^wd`!mQf)vdqPlO0UIN}uRfUXc+-%?q%n9-44cx;a1liBv(mss=Ucj@V$*o#vJ(pmG%Yo~nSF>L%5?1}%?QtDg<;_^6R zWUmVKe8_hg;Y~Gt;Q1h1Jd+MceGmFEf(9Z!ec-N(oIL$L7sa(%0s*owE!y z?AP)yW+f4N;XLa%=WE*ieEIKlB!vF<9lM@YM6d(M;e{_~72nL>lUEWfzq3lcE= zJHDY}_bN(>vE&FAd&GC_^Sd|D9j934vae|E=S;J_nKm@A$lPFB)xZ*RzoTEAWMM0o z(#0p)<`p^g`e*F774adTe&%Y(t@(jd)w^iVJ-IY5oxOU`09t&M9lu9L9VZyM_YInK zrhM*zKI6VLLNh;MyY6?;nRVqat%@a7`7x_|AfC2=#QfI;G2aJ+ z>Bk?j!4DSDi661oAH2i6??Bh0+c666=1%#SK(GGnrS@r_T3$+B1* zeqt}JdxX}!&xSu7O2Zejw1<}&5|5+WCrUaT4!-&~Y)62f0FEU)o%FF}mxoSvdFW)x zF?w?|^n-Jqy1~p8>qF?vpOmMsKSAipk6F})pn-fV{V%eXPu-A8XqlWnyKyX?FJ~7w zF75uxyUssKMotut&5G{8`S%yg-ODK=P}%ZWqs=; zrhfX4c>z|Xs~O$yb2ei`^-8b8Pwi8$IvhDEj-c%YNkU=c=F}?8tqou2t;k8q5hmI* z-iBF6-rUwlx+cv?*Q6OKIp%S5(u88t9DUj_vYX=T&9kc3+X8WdEi@H+ywP5dqKu~T)|yuM@?)t@yoJY78(q}uB0HN_5@pM1+VG)ofgPekQZ%`7f^`#) zIO83b(1Pl`l)}`;4b^!D3)b&67}BwS75{s3b80J$yE4eJvJtmbxE1S~0?%O`*F{vA z+Eg^Tb%HezO|cYuJI2Qq8g}A-4dwUFAvSDEg~zQw;FiDU-tb{wze0k>=WR}{*--7fL4|hUxa_P}g3{fA@F5Jgab(vi!d&#mo0GD>4j#InfTabAj${96S62%A27`;Mb ztwwc{iu=IYijNLD9DLC1JSQfc1kY(4`*G|; z@`mb%3}_R=zEK7ED+p5yYaKx)7$;q7O!J*V-}GOHr76 zQXfq{2h(7afoZ(0t$c<%#&h2h2#~oW1~>cNb2s z#rm_$?qx~u1q|?jwkxA6&#eW=SDW0u+U9k`6y~e#1=lf?7kqAl)ep|gS#UfG9+suGrcn-Z~G*y&jV6MRu5vk{?UKPZLP0|>*0r1!MX-n zI$cjaccMSC>;DL|t!;Lk%%K*m&rMTfZ9~MZ+1({W(=j@!m2jePuAQCbhIh|0jC^dN zchTgA3C>zv?yUjt&DXgcr8j5G28>1#xBaYU_aNGY&iPu$Tgm5Zou$wNdjlrnt@&Cf zZrp+AO$qR@N77Y?2`7amUI!s~19;s9BuspZ&te9mVm9>MRpZwcZ(B zRoJ-U>y-tC5ySXm?v!@%xtOfm+c9sPw-<%8s$ALm?YZyI&!IN=jUDz^_Uvl|NIE9Or;fyt6X`s6&_S(oc*!Lc1up#@`IU#u)2d=NdTK&6%ud_ z51;tlyZN~1e0KS!s*!}woy|UZcV^!ySY2rC#fR3nd#qgYi?3hC>7tA>`|GpetESQm zTi8?Y9Uu{G(xEZ5sgRW(`Y1S3M2Q(49ylU+5#>3RBzH*MuIGcnLS_3Ki@ncRCz( z>sq*1Z4rtc4%Za)Tf}xB4ad^>;HZpB7qRxEgAj>2mOuw*u&KwU(NEIZ-eYF6oBeXk zKr_;rtTu=~wuq(GmV__GV~E0!;cFhonWG7tVbKO}?Bx8WcEz?2hxo_+!B^U8?r=BQ zk+6p)eppK7!4do+2wn`(q6)tK6&^q4<$Tuh2=Cx7_RS|L zB%TdA{yXjXjYWNGCjKnz(|3svi>%*4s@U80#bHAqL^l2i16|m}?-$Zz*1+a?rUcy+ zgXkG6+jL?ay>B&ZJfRJ{9}gxmk&a3tg^Pg`#~;NppZo5{iS`vN{xc0D&`AvmXB8(Gk~dgHL%#pXhfxw9;5|{oz2R~D9QH=T2)cX~ zJJ--}VCR#wr|*W++IqjD4Nk3T3t7KYsy-uDI_J>EfE=?mkGCYB%{^tpf`9&0Kk{~Y)u};*e!Gq}f1$)Hk-m+a z$#M2#<1<9clD-V0vlg>yUuM!qJ=_0fe6N1v_?gUg7H?yRuc^ok7W>s8I`;{d@l^!z zWJ|u%lppzO9P#>EiCLMTWTB_kG(*G2pI$=r?A_Codp)IfIB>+}=g>=cv#2v)(!AyD z>KTz1Y8g8_lSU@6wzDJXbxnEyb9jI{N6Fr7ilu34cB)BAk1uB4-^`+;Rcz5W=3bYt z;*oG_Q;wI#J|>Ut`(`73e>u~Cn@7`^v$wuYp;0-k{aXuNpkQOZTS9-Avx@IbbPj~y zEv0F4mfftTmzJ^TK>0bWvH3B&FNayruc5V4cHz94cI2?Q3v2je`7&GOG2gb~{aK25mK3A1IA?<1g z{e2n}ugd9nVa^14&6%LNmO;Iyu}7{Y&`bTC30JO3d5*Y_3>q?(-QS_1*ZU%2CExkt zu0uG5-G6;B?ahU1_QiD*PYAt{LwihS1vfObEyS7d+YK2_UCQDdyJ%Bz`EduH`=u^@ zqLJ*P(x8fm2yw>6O%#IsfQsQBB$O+NX%Yyk{VRTwaKYN872cj?nKNaT7gCCQS44V~ zGzoossc7{fv+0HIVyzE(gU46(Lj07s*x1Vz-_#rNqh6xDw=2HW7xDd`V!JQmKQ0w_ z`;p_$eEwv%$0>W?kgyrKqS^%bOaLxi53+h#6&J$tvfDx74~<9~=v;pBl>KdgkJC;Tvz zu~5)TyvNe;iM~X}PdgIsV~U4~4@HnSsrL|ZL?qeNqk%7oyD+8I;$g&Td4f1LiabfZ zOT`OOWD$LQxOi7ISxx1#in?f`CjI_#`35f?ugOsrFTHSdbdE5=YW`M?7(gDTvqp%| z4;c zV`Inwy6_kA&KT65K1_TohRFNyjvY;Hb8abZIn?ewOuQ09lzl>PlN0;<@uEJKY@@^D z#rjyXuB+d`?T%nC6z2^hCG^G}I|h@sKH<*Xc4w(}IF61XB8?-X{~PQ2eww>Xw8xP- zbm5N`cMc&73B7SqEW3l;M_*r75jPZu_FDPv4TrrnRy;e5#L*v@iQdC8f3JKmRt_g) z=&Rq0k`ZWd=^SzA2=X3|7!}i`fw&ywr`&6>F2p zXgaHhh_5Dw(cwKr^GI@$)Qj;cWFW|rLP9{+6tbSwSG1;(6%sN+oP8%5NToBx^>>oN zs>~DzYP=w#3P6bb{ za3m+tT2|3#47o~ay}qJ%2AWClnk>$^i>RqRN@RCowzug;KMPvoCvLZpB3eI195|j> z>1B&pG@hLI|G@)RO_Qwmj@g_hv2US{iuDsnE+J2fmnWi=FHaW@lSqzd9=`54m?yqI zi45{w!^3NMcwj}xB;rj;V@0>ALYC4=#v8b3q`VVM>dP^)0K)4kx z%4lv$YrEkn%BX2Ezr%S?i{>5iz8NGI<}aB+!g~F70AlAm>y{r5h&3}v9GNEmID>=) z?dB;N+gnPV8f&m#Tb?)|K9)oJDrdK$7h^gUwf0E}Rc?`@N)663uBXd*x7;$#nYp;d z;^wpiV)jfDivxjJG?Pf_rAqP8OfrN>#Fm*PEMey*URPsFX(ew>nzJrvFpCEty%n_G z3g%UciJ2rWNGe0^A-G*~*3L`ORNfHhEFwYTmQ3PH3dE93656M|f>*J-rOnCJEsZ~k zM>AoEGO;xic6f=4i|S#wmPdaQ17~5ywaP@}ED{_!4N1-Mh^=_pE)Gdw(0G^cB7ULAs)+Bmhs%0&fJ(djV)_8fH7TRc05 z1k=iW;*~ih);39rl4t+kIhi`ARB6kqecX1XExF)7x2pv0(qHVHlyZbB^LaVJ?sAGU z>@8{8?lS*0jFOxAuKwU~cvbG>8PAG)vq*qPd-)CVQZ@++szH)##=nD5rJd_MEB*|f zVU^{7ZBISgQ{c?fj?jZVOQ4GP%USHORsSSQ%FS95c@{Iz5-F~jO9FamkOg<{Ez)xF zl9dG8I$Am#^b10jOS$T)-&{TH(m}pPPjH1&uJE=?p-Vb%-d>*WbQ@2&(hG|ue3GSd zk5R;LJX>bG$%Fh>(-GT_o6;h2;5^c2s+aXICViA=MWL3P?Hk35ui@3-;cg!vJvY;F^wziCYLmW7tjO>|+hrpG72`-b&CjquNwCB$g zfg4`J6|1?T{nyTERFu)s;=Pxfu&Sl)d(OLB+ROfu|Is`wG!$|8`%ddtAXM4P3w!!z zVW<=fWOz&EUke!1h};D?b3e#)$ElHfwkTUbB72VKf=OJU5@#$R{ko;0j3Z)OHVIS* z+|1UUYvpsTAMwc2*+w8=5dtCaaR_H&>^_#eUwp;&CGh;4SaL$}mmjW-O&0?SGD#Vu;GK}j4YEX#3 z_z+ssE6s){70@fQ*nORP{esS)?=du}o&RT@*@m#H%tNA&zXQr*atxL}Ri97bo z-$Aj1D>h#0>_nFV<}>C5S8*==w_Pel8MQ6#Yg_}k&tg9$wk;xIK~F%<<^2kI25BP7 zTrNgi$uQgUJ$(F%{P;dSAK{{+cJ45yIfEK5&2R>t3dy&mY6Sl@tdH`XXq0fXwkzMF zwxztbudvs44g($&u5Ti~1$g%+h;>%t9cF*cIf<%T&LP0}h%cO6)$-|UPH)-sXqeN@Ok^!(HbcycmfN<@WB< zK%NKB16pd2{(b(--vo5p^M`LxKprpPxOjLm39?;y^@ig>AU z+fvIzRvvnfhxn(pE&F(ge?r^xDi87RWm`&lsF8EEForE zyjavMC4)(Xn6;G1K--p*45AU6mXZ|ms2F=URPPWsaQa9*e>WM?b2Rpz1DEmHEXF-* z8QE%UOyhTRg7DQi7e|kxf&^&8XRoJ$_kb6GVqgt03D5)aKyQEo)1d!D1{K-?Pm~i6 zBm!fAWk@Rko(1*+wZL#75NXCy)F#v*(^o)iimL&UcT(YoyHUows1ObK03FEij$3X= z0apQ^(Nu^8h66?*9moW%KpwCW*a_?cvXH+P+z9*tv;&@LHY)T%p)r6IFalG6dB8ou zL%=rR1>hqTPzk&YYy%zw_M;GfT}7h<@jZMba1`O)XzNioU7p)pBwVs2gX#~w~A~ew059);{lxXPC)Ss;0*8`&;ncn zegoQ&=^B`fO%l9-UO)iQ7l;C4fuVp5Py+^FBycBi7cd!^3Csl+0e1uU0uKN-V8hrX zypTm;D|PJkpbd?tm{41cU+o zfx*BqKmjC|U5D{k#D4^I$gcuM07Go}GZ1LRFhqdc{u{&K5B>ji7;OK=a{7Ng z47Qug>AyP+4w&*k8HVqXUm9ym7KDLj!4K%_+5VLiD~tQT=)}0!`Wr9y|Jv*~t#0e; z#oAy6!Rf{R$DCM*(~DVR{^Z5dD~tuiKHV!_7=ZmMQ#^5oM2WASA-%;H&XPf5{#g<} zHhRK>9T5{go*q2${fW5?qa1u=>llR9y22U@mFbn>K=fj2XAvh92#RtXV zO*|c6q49LCavga&czX3gaW+qH!iO8Y{Oc&6ATI|m-*QNNjHmN&ggVRjL>dRrUv@}* zkEdrp1-(S{0Zq)I4q8{aeiNn{D#PFmchxw9CTjzM7BnGCSS#Ni(#U<~vBX4Pzl{O``UxzO#pBR>wk zzdPSnL+=TsJq7et^KozzN_B;0*8`&;ncnegm!n1ZQ|JpcfDT z^aY}TSYRk11Jr;47zx}7+yzVqEcKY1fE0)Z`~U%H`_#byV4?yup*R;<1l$eW3#>)O zWxple^i!k05d;qIr|!>4+S@Sx|RL z~9 z@jVIXR*#_78T1gE%xI;p0mCe!L;2s_zAFEfbKDC3uEYEv+{XO>@cdhd-v1{DuMNm= z10DeKZ7~0f2xMW>{ku*v`o!(4>_0HSVEZSxk^fT%Fx&07k$n06j~>86UAK|a&;H^R zul_)?Z3~7Z3v2Pu>URRg0A7SSG+0`7kXQ2+1NePw7FHoHy=oRLKrv7c2-mI5;c;_x`f}^n`&3-FQ{LYU~#uqkPe>%s*GBkN>e|*U6PyM>( zk4P3ai68jWfx&z5jHUD9Zm|mSn*QPqe;PTNr)dTx3*NY8Zw2Q8dw>!=YT?&ElgB{c z3}gcQ>Ke`zSM;G#{Wl@$&&4@)@dq6dCW(9d(6ERFf2y%lg`1{WY=Me@2~=)toQTtA zK=)dRn`R{o9^%h^Xh^rX*~x;02Ls3|ac%$&BRla~5)Jd*jfOrKK`5R5%xB|$xpkTpSaKsiw z|E^HpuS(HBhz9iKB}wpP;4h;t8iHt4Y&4QOFK#V6)Vp50P+7FNE(k-G2h|kd<^*sK z87Ass)YF}(HbU7sasmFei0=H0vUVRtT`!)4t4eWl`b!JZlt9S&l`duk(yrID*-ahs%McpX zEfBllG;w?g4e5RvxpPsXYxc<`Na?(AnUqB1QxuKXiyueAoUxr02 z3dO|9?NTbAIGQeTUiuz1AXhvQiiuN$r0u}%M!;t%{(WhHfu~BcZZ!$pgM$~qB~{oH zIxmXAPQ*LhvSw63L=s8^L+@~D@y_rL?1Dx<7Ngs9XvF7H&tgrNvUr(XgUiB!&N5R_ zQfD{~avry%eN6~=*244hi_fe;$h%&=O-eDMALghMS)JW-&e362(CpevJ`fx{KTqqt zC<0r=btu6mfw+DO5mwA0LMdmN)%TX~9n@gNOQY7T# zKS6vdj1Iulns>wKBLi~B5Mg-U!c}=OcQ50n%7QK0`~7hd;yb zSui(mE=IV&>qn1V@t8?G<4%!8VsdBQffrzix|8l*<;o#g#9@&%WEkJcy)iuQ_i1=l7tK@c3 zY2_->;ckseH&?qgcwKR#e}5X)OPK2_mphDx57T zjYCTy<`#e2os3B=EN~@D2h#3?Am-OaFfZkbJ5CmKv4*=eRNA|XxWO$(DL!4qf;c_~ zBT?oSasM0d6b);Fh&Sb;o3FT;EOg0zz?~zo%2kTRE#jTpY%tGu517jz0`t!JL#9b^4oB`F>SL>hoL{wI-oAP;&vzEg=h=^7K1Lm2Zo8h= zB!SQ7eqer<83N|+Km*1vf(fI+J-}1IyxxUievffCn4d&ff_sAtz`g>0TzG?{bOC+*-V!_0FP$ zb6iFD1oI+!ibUg@w3ud{$z$EgympN%nYY!q)GgTfM$xL#@SL0}8h#kq?7M)Gu zcC2)%HO0{G!!4dp{S<8^wn~qIEWk*E+b=t+yM@TU6%e&T6pAmfqer-t#hdCGqI_pOSg@=38xuDs`vt{*xXrCOXmCR&I&E zD`t`_nOh+8ZkGi#;I4+^_AGX(m7tf^t4jm(Dkp$>yEDPu zT-jj0E_1#_jM*X3j2PTNcpe;!K1#QbO~iLHj5U$tOfU%i_f-TJ)FowxLR z_~p9vLvzIo@ifx&aSOgeu!uc|(SDxCC*URh1o4hxG?F$<7RNvqG;j+3i3q^U$ur%P0F(6m7u?@xpO_fx9>{glc%E&hW~sk%8orK;$wqTlxr>(^8B4l|YZtHM7o8jPZA zz}&mkfw^~SxGIh@(@5KC#PO4+0{>@7nc!CN2yo_gJo5y0W7%85xxjve*MJLvGPtnq z;1Xaj!h68`fZFk>3tZ2`$MMt$+y>b3`lACZxq){?2wT9DZs0{yCIVT26<7-70jq#~ zpa9qc6azbf62K1_fCk3@*!(P;$t z?BHA*0=#u4VBB;HmEdUbX|NeAP&{w|MS}(8OyNv1B%D#g7S706#u-;F=V(D_a>pee zh?~(V&bTa2Cc+vgQ^B^&8ITCIPWHy@DX!=zNFk4IM6d$2nI{R zefapNBf#%-Gr>XNRp3x?2{;T~2@VIJ21kH9z>(lkuVf(#tOQ4cE#Us(rQiYJV(>ul zK5z`U9y|zq8O$fFpLenlhx!F20(XEd;Gy6=a6EVmco=vOSPrfQ^QGAgmV$-u$$|_N z3O0bHV1AdL4(4wxtza#93z!>!4>$!}3mye-2HQp>;MXHrNCRuYW5DU)vET*Zao|m0 z3%CS~uFh8Yw`(buN9tZ9Xo(A>> z7r1#3*bnhKF#jsY4(esC;>-E zR`5WuUmwh3a2z-moDLoY&I1nyZwJSLE5Sp+r@?Y?2Ur1)4!}_nYzFgRVzYu12&Ta% z1k@1h25Z0#;BUa~VD2IO0$m&rCWxnjDcB1302hEI;N9SE;99UJxEbsP_6~yo0LOv5 zgHymgz*cZieuOMQzz2d|;9lTraBpz4naxCz_?ED6ULg5$wHU<qeGlG!cFNkRID3ALm$B(z@wsWjHGTm*(5%BPNJ|Ss8iLs>LT^4>V4`O^`~lu zX1XR{)2M0IQ0*}7WvxE(k;Hu6)4Er5cj<>3l!o67M&k@)wz0(6V(c&yQ?O}(NomS9 zEivVrnCTCbP=@Ub_4`VfNmokWlb)4^$mYtdvMsVQS-4y+&y&9;KPL}V>{rw(1}n$d zleBMRx#O+1+RknVu4MmI<= z*Qe;m=F3J+*Y4S|DRbD86Q{FE3P=qQ{6jKygip7fMiUP%> zisuwBDQxd3suiCrzE-p;t|)pc{guO%3T2vdoN~T$v2wZc8D*LBpz?+?R28XGsI;na zs!6KFs^zL@RAs7PR6PMZ$>$Pj#sJOSPvaR3q0+(Y&mAO;fJ< zR`b0kK|5c2zqUYIu05cAUwd48N_$RwUi+i=H=Fjlc2wd6iBBcImH1)esl;y+rMii_ zX}T=kHeIdmYh9D>dtG1sRQ(QpiGHvCsQ#4xcYT5(-7wKG&G4Y%VMCFj!f?glV+=8> zjU$cQji-#~jr~mNre{n-6PyHwHV2b%q->MyDNMgIxlA!ealhgSx_X~-XhL>^ZDqo{ z30~?LwMsojW7TZcRA@fcOwneebqR?h6Za<`MWcRC+^Bm(cS`4L2s2K`6gp!3!uYN6 zZ9ak8uuXyPkY+n)`}b0{tU$I$u0!#glzyrd)ef~??XBsf8K4=axuo^f1?hI^!j1PE z_ZvSjE-}4qGx1`GFb##wlI>?2^%6~Y?aSIq?a;)J6SH-zbm_2d54uar(KcxRa|FQmr{tNvX z{df8n{U!Zx`fGY(@G|r=1Q_}nq71Qyp$3^jZ7>){8tydQWteQ3X_#wRWHa1txYzK2 z!DiTCC^T#}h=ykjFJj!^G`wv%XgF**X86Q#((t9>oZ-CTqTy%E?CWry-HpD+AY+)Z zzj3f}m{DQW8cpz{V~yjDQ;oBX^Nov*%Z)3ItBvc7j~I)L%=o17Ipa(4`#nr6OeLnh zrv0Xarqh^DKbheF1q*JnG3Ig7S<)-gaJY(nvhQWR?u|Kb9#rR)U5T&=$R~f8~R1Q)O zS0*Y)I{oT2NPlus)wm7m*`Un`rG7nDCMe^*jfcU5myh$>cfhbmEJQdv|} zR5MlCs%5H|Rlll264qg7yqM6I5TG8Q9;();$Ei1|x2j)I?^ge!zNRLcKuwcI(Du+8 zv@^9&YoFKNz)bQWKSL&PfKj_=^SM(ivYVbDnHUwfPi#7~0#2e%WjlpP0F^n--3{wo5 zhIt07VVNNhZaLqu5sP=5VJDXE1;ZbP-o}2$7~>1Z-q_4iOk+$Ilhw4%w9j^-BZ`FUOx8awo3^@jeVTQ55__494slREcNo6vb?les_%`z>*gjsFcV0s*rM#v>X z9vbQ?9VwlFxl#akT`GN5`j+%voN|7Wwo9q3k1PWIVw`N6Y@Td|?0&fNZL$|-Z_5tJ zevn<3-H-*!`^)c;C(G02Hu+{blRp(De?h(n2cj1FuX6lWnZie5QrxMSsF(p~vKWsD zD)L(-yFBhvqTVv&K4Yb^%2;izG1eOEjHiuFIDrM4;$hQFQ=VyyX_u+W)L?4m9vMz- z5)P>nX}DA=O_wf^u90q+?vd6=PfIULeJUQmD0!Sjq$npTvy=;zR^=9Dv2r^$m=a~F za+h+qa*wi1?0!jN)7GeVCX^)XOQ?fa?MMhz$HV5CIE`(=tlOh5!=bTKU8SzZ(Xm!t zr><8ws2kO%)lKT=ii%5;CB!Ql^DRynFE0N|B<*jmw!dnroh*9X_qNgb`6?ryz=UwFKCIO$Wj&T^v(m0?RkkTFE8CSF*mS~G z@hZK_jGaDHm8DvsvZ|J<@>RvE?bzwcRQptwsw!1Ae1Egbu4+}asce^3?WzuykRVC$ zNeE1cPmp3iPfu8oke5)9usvaC!tR7U2~`Qz2{j3)6PjT4_5^RWkJ?Wi2ir?=Cf2Ca zF#=iY1!}8$DUR-W>NVE`)E%;aa6OMVqG0(&lROaB|zE-J&hl z?$nlGG40mw(UxiVX=}BO+SA%5oP9gAfr+7s(nND&3O3xGrczTa9Beb@qVs%!d*50N zd8jl-YD>X%oFvVX=1VtWO74?ZVN%vh+nlq(M;0&BU`}M=h9MWbdp>5x9?XeG%m+JW zLLf#z4yW2l81-T};yoDYMx1R0jB=ntiBV2dSQWX7Rf>GY7R4S#B?h=zA;I8EF|1}d zV2f0liPQTg%<(de=xK~+8_sFr7{fG-T^`1*L{*28x{N{MLli1rzaklEt4**cT*mwl zhu4v+Ef|3{u=sAw{|3x=e#G6dJZ5s?INsLL1ho7F7n3ZUSpWdEWlDG@^GW!y%;Ir(u#J0rtL_z1H z3)CrfdR+<*$ho>Tx)R+kU74;ycUsr1Yt>!Wb?78|AAO)cTpy#4*K73C^jUhVK3Bg6 z$LC%88htJNxgB>SF@`vU6nAqPgV`_%zB|{j3LbmAp@cu3v|xc!z8^}Z8mU>DCbdW_ Pa(|N)OT?^MH0J*R)BBb; From 57f5ddd9b1615a45d7ab8fc9093149eb95835154 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Thu, 5 Jan 2023 10:29:33 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=A6=86=E7=9B=96=E6=8B=B7=E8=B4=9D?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=88=B0=E6=9C=AC=E5=9C=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/HGProductionTool/dialog_uploadcfgfile.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/HGProductionTool/dialog_uploadcfgfile.cpp b/app/HGProductionTool/dialog_uploadcfgfile.cpp index 42adf3a..11a4b7b 100644 --- a/app/HGProductionTool/dialog_uploadcfgfile.cpp +++ b/app/HGProductionTool/dialog_uploadcfgfile.cpp @@ -53,6 +53,9 @@ void Dialog_uploadCfgFile::on_pbtn_upload_clicked() strcat(cfgPath, ".json"); QFile file(filename); + QFile file2(cfgPath); + if (file2.exists()) + file2.remove(); file.copy(filename, cfgPath); HGResult ret = HGPdtToolDb_UploadFile(m_pdtToolDbuserMgr, tag.toStdString().c_str(), getStdString(filename).c_str()); From 52d48261555566a95cb33a723a699394984a530a Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Thu, 5 Jan 2023 10:34:23 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A8=A1=E6=9D=BFBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cfg-tools/apps/scanner-check/CDlgItemMgr.cpp | 5 ++++- cfg-tools/solution/Release/scanner-check.exe | Bin 326144 -> 326144 bytes 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cfg-tools/apps/scanner-check/CDlgItemMgr.cpp b/cfg-tools/apps/scanner-check/CDlgItemMgr.cpp index 19af00d..925b9e0 100644 --- a/cfg-tools/apps/scanner-check/CDlgItemMgr.cpp +++ b/cfg-tools/apps/scanner-check/CDlgItemMgr.cpp @@ -165,7 +165,8 @@ void CDlgItemMgr::OnBnClickedButtonAdd() std::wstring desc(get_window_text(GetDlgItem(IDC_EDIT_DESC)->m_hWnd)); replace(desc, L"\r", L"\\r"); replace(desc, L"\n", L"\\n"); - jsn->set_value(L"desc", desc.c_str()); + replace(desc, L"\t", L"\\t"); +jsn->set_value(L"desc", desc.c_str()); list_.SetItemText(ind, 7, desc.c_str()); // param ... @@ -269,6 +270,7 @@ void CDlgItemMgr::OnNMClickList1(NMHDR* pNMHDR, LRESULT* pResult) str = sv; replace(str, L"\\r", L"\r"); replace(str, L"\\n", L"\n"); + replace(str, L"\\t", L"\t"); ::SetDlgItemTextW(m_hWnd, IDC_EDIT_DESC, str.c_str()); str.clear(); } @@ -303,6 +305,7 @@ void CDlgItemMgr::OnNMClickList1(NMHDR* pNMHDR, LRESULT* pResult) { lst_param_.SetItemText(nv, 1, jm.str_val); } + lst_param_.SetItemData(nv, (DWORD_PTR)sane); sane->release(); } jm = param->next_member(); diff --git a/cfg-tools/solution/Release/scanner-check.exe b/cfg-tools/solution/Release/scanner-check.exe index 0d90b433de43167409ba13fd9aad96e5cc72f7d1..d448033d01fc487ffde477a8966870bd8a78f245 100644 GIT binary patch delta 14852 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 R9%veg-|ZC7sPLW|{6Bl5-=Y8j delta 14807 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 From 590f5ca84a0257e3ac24ef5efb78f9989d6ec64d Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Thu, 5 Jan 2023 10:37:08 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cfg-tools/solution/Release/config/stored.txt | Bin 24228 -> 25326 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/cfg-tools/solution/Release/config/stored.txt b/cfg-tools/solution/Release/config/stored.txt index e3d8326d59ecc423af9962e8e72d4ecb49d64bb6..b5216ecb251432929d57088bf3a75e476df4284b 100644 GIT binary patch delta 1003 zcmZ3om+{?E#tk(QxjGC=48;s342eLT$&k;G2jp7;u@VDFCXt~OD4qcnF9OPzFjPWi z4WRM`KovzmoC_AO29mizwJ8j#P<2KOCJZq^GfWuLfH-CHLKn$!h{;7jHN`-+Iba(Q zHXAV*03pOx$v~6y7=Qm<@7O0Z^<6>I#r5QwC!o zv;^z0WH1D|2FwPDTQa0g-smhm`Glqrvl2t?Wd11S$pPUUlix(}P4c!Gmz{>SNy?e3=ckn5dre*X8x#|)b|#;)us$)@R&*j#up^k41g>H5PLGe8z(JO j1vE}|C(Fcu;?rugObiX;lKP%T#3dQ&1RT5ev8jvz3<9

Date: Thu, 5 Jan 2023 15:18:55 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=83=A7=E5=BD=95=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=85=B3=E9=97=AD=E8=AE=BE=E5=A4=87=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/HGProductionTool/ProductionTool_zh_CN.qm | Bin 10837 -> 11058 bytes app/HGProductionTool/ProductionTool_zh_CN.ts | 48 +++++++++++----- app/HGProductionTool/dialog_setburnsn.cpp | 7 +++ app/HGProductionTool/form_burnmode.cpp | 56 ++++++++++++++++--- app/HGProductionTool/form_burnmode.h | 3 + app/HGProductionTool/form_burnmode.ui | 13 +++++ 6 files changed, 105 insertions(+), 22 deletions(-) diff --git a/app/HGProductionTool/ProductionTool_zh_CN.qm b/app/HGProductionTool/ProductionTool_zh_CN.qm index afaea02384889709378e2ffd017ff4401f86b9f2..2f2601402c88a69c45bbee496a0eaad807072506 100644 GIT binary patch delta 1507 zcmY+Edu$X{6vn^ZoyX41?oM~xvhB9rE_E9MDs7OW1`$kCj0Wk0qo=Y`{`3=*fb# zZ)m?q&{ItI0Lf<|)eoJ2A?Vo*sbOe;SI~15Qga{Rm;mW~4XfQPn0!yre;D%QO2F3+ zdGjPD{1?=h>JUZRA5eF70>NUa4UIs2AJjt?fbD>wd{-}pB;*mCcs& z?AL*`RLjaGcL2{-%c@}~fK0dLtB?c?hvi!TA;8{dxi%Q$exK#%lEr{B!g_M_78bJ1 z+C8;^`>?g|iU$a!*cSSC1A33`;%Q2jyw!H8A~DPtyKO%fe9b^FOXE(y2)L!#b5?J( zSK9T=agI#ApjImw_k{F8dAr*k6>J*pnE_%Wjz9<-;gd$ z;7D5Em9_WxvK_T@{Eo|<7RQ%zZFmph&6SUSY^6YkeEOlWK!z-zGg$uv`{iCell)%3 zllLkE%u+@!V4vJA%9sf&X*W-Kq=)5Xj8Sqv;yBtCE8()6>}S3bZWUZ~cF!K_-^+TFv=G!N3qj3I<_S@BK8Ms?pdWn?N`l+Tf6i`~G{Wg6%CnIH)cB6!qI$QO07c-3CuV*(MVZ|%-*@Zb&{9Ch$q|1Mx|5_GTC56AVf@{RhLWBlNiPxNmB8avx)xcfG8 zA|@O8kw(V((+Hi9@*?MeF|&*Z<|w1ChkpWZywUiBjV&uSIxYr*VYx=<>V8(#Z=7kO zX6gdt%nAAp&oQnXn@Il*2QF`+H2n^xi3w+HcW7Pjv4BaA2M^HS+u$g?&GYyyN41}J zM#yn3k^V`8&T-KWW~#pJoIPhbE2(tOe}@kCOlQd{8YX2stACLwLDc#8`aA}{<63k- zfKSlQ8{48^mJHs8v4jR!S? za>xwcKX8pT+sjw;!ZP!0Vi6N*HP03A<;88K6mWmcrDet k^Hkkhf3w(KG`L-xifR4-vrLbrrFdgcrlhwF_~x7c0B&}7!T3?s9jR=kiz(&_aArAw9^^rhx`)6li%U)uaR)n8Qv;8W<~4 zjUwd(8qGm_fG~l9Jfg7zh5=Ndi5`GVGEzV?l{Qq2fn(Tr=l9oV&u@R{`#a}+f4|$7 zKIS;)W6LDsM~QsX8Ew0Wg!TB{b$qSAn-Ih!xWTB%jOJ=0X&aGYkWmX}3|`F`@hVYj z1CjU#QDz`f;EzPl*CKZlk-Lvbj$+hm7(;p(BUce$^B$49pV94eoA|mIBF@EVxk>yv zPkffqY6B;UY$EaXp7n1St%<}pc;Y*Z)SO(APYIyFEPagwBlMk4QzNxD!-q|av*zF;&gGOABAYK4s66O8^(Foqms zjOZp=JcvmgqAhXnqp)+7oR~mlN}^}8mWhm?Q|3E+G5^5-=!FFV6> z)?`={shgd)5{0Jgv+bveln?Y1gRm-KP=Bq^iS;r4jb!(C5L(B_^}j@9?&VJ&VX(qjq6(7MJ+o#v<%HEj~1f23PD6ody43vK6AUX#xCKbQc+BF!~q8^CR%c zuT$(T7{$hW5|`pb8HEZ zC^W*LYsI$63d5$Ou+Z*pSgd>lI%av#H8d2uELWAIAlp&7X3~Xyoo>0lS0U2+<@!F* zD@eXn3@`a;`Oma82Ogpmhv9WiXcAi0kG;PYgf_?tGO_jg%u;6jiy|M%d#(L#=@|CNM=4DMy zaUhP>0-Bpq=$sZlSdB}*TFb%fBikkI5Ok_i1?wt{b|U-$di_i5brnOpQ5*J6#gVtQ kk>~1gL`fd3nyHFWR<^eYN&5D9xyMo!6_nQgeb7$re_UQ!UH||9 diff --git a/app/HGProductionTool/ProductionTool_zh_CN.ts b/app/HGProductionTool/ProductionTool_zh_CN.ts index 54f21e7..dbf7afb 100644 --- a/app/HGProductionTool/ProductionTool_zh_CN.ts +++ b/app/HGProductionTool/ProductionTool_zh_CN.ts @@ -86,6 +86,7 @@ + tips 提示 @@ -95,6 +96,11 @@ Serial num is empty 序列号为空 + + + sn is illegal + 序列号不合法 + The device is testing @@ -523,8 +529,8 @@ - - + + tips 提示 @@ -534,12 +540,12 @@ 文件为空 - + upload succeed 上传成功 - + upload to service failed, already save to local host 上传至服务器失败,已保存至本地 @@ -571,39 +577,51 @@ 设置勾选项序列号 - + + Close + 关闭设备 + + + ID 序号 - + selected 选择 - + device 设备 - + serialNum 序列号 - - - + + + + tips 提示 - + + + Please check a devices at least + 请至少勾选一台设备 + + + Please check single devices to set sn 请只勾选一台设备再进行设置序列号 - + Please check a devices to set sn at least 请至少勾选一台设备再设置序列号 @@ -942,14 +960,14 @@ QObject - + success: success 成功: - + failed: 失败: diff --git a/app/HGProductionTool/dialog_setburnsn.cpp b/app/HGProductionTool/dialog_setburnsn.cpp index 595f357..8c9b535 100644 --- a/app/HGProductionTool/dialog_setburnsn.cpp +++ b/app/HGProductionTool/dialog_setburnsn.cpp @@ -1,6 +1,7 @@ #include "dialog_setburnsn.h" #include "ui_dialog_setburnsn.h" #include +#include Dialog_SetBurnSn::Dialog_SetBurnSn(const QString &originSn, QWidget *parent) : QDialog(parent), @@ -30,6 +31,12 @@ QString Dialog_SetBurnSn::getSn() void Dialog_SetBurnSn::on_pbtn_ok_clicked() { + if (ui->lineEdit->text().isEmpty()) + { + QMessageBox::information(this, tr("tips"), tr("Serial num is empty")); + return; + } + accept(); } diff --git a/app/HGProductionTool/form_burnmode.cpp b/app/HGProductionTool/form_burnmode.cpp index ea4925f..b27170c 100644 --- a/app/HGProductionTool/form_burnmode.cpp +++ b/app/HGProductionTool/form_burnmode.cpp @@ -46,6 +46,7 @@ void Form_BurnMode::addDevice(DeviceManager *devManager) QVariant var = QVariant::fromValue((void*)devManager); item->setData(Qt::UserRole, var); + updatetablewidget(); // for(int i = 0; i < ui->tableWidget->rowCount(); i++) // { // QTableWidgetItem *item = ui->tableWidget->item(i, 3); @@ -58,7 +59,7 @@ void Form_BurnMode::addDevice(DeviceManager *devManager) void Form_BurnMode::deleteDevice(QString devName) { - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); QTableWidgetItem *item2 = ui->tableWidget->item(i, 2); @@ -75,6 +76,7 @@ void Form_BurnMode::deleteDevice(QString devName) } } } + updatetablewidget(); } void Form_BurnMode::on_testResult(bool setStatus) @@ -111,12 +113,20 @@ void Form_BurnMode::initTableWidget() ui->tableWidget->clearContents(); } +void Form_BurnMode::updatetablewidget() +{ + for(int i = 0; i < ui->tableWidget->rowCount(); i++) + { + ui->tableWidget->setItem(i, 0, new QTableWidgetItem(QString::number(i + 1))); + } +} + void Form_BurnMode::on_cbox_selectAll_stateChanged(int arg1) { (void)arg1; bool check = ui->cbox_selectAll->isChecked(); - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); if (item != nullptr) @@ -132,7 +142,7 @@ void Form_BurnMode::on_cbox_selectAll_stateChanged(int arg1) void Form_BurnMode::on_pbtn_burn_clicked() { int select = 0; - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); if (item != nullptr && Qt::Checked == item->checkState()) @@ -142,11 +152,11 @@ void Form_BurnMode::on_pbtn_burn_clicked() } if (select == 0) { - QMessageBox::information(this, tr("tips"), tr("Please check a devices to set sn at least")); + QMessageBox::information(this, tr("tips"), tr("Please check a devices at least")); return; } - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); if (item != nullptr && Qt::Checked == item->checkState()) @@ -160,7 +170,7 @@ void Form_BurnMode::on_pbtn_burn_clicked() void Form_BurnMode::on_pbtn_setSn_clicked() { int select = 0; - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); if (item != nullptr && Qt::Checked == item->checkState()) @@ -181,7 +191,7 @@ void Form_BurnMode::on_pbtn_setSn_clicked() } else if (select == 1) { - for(int i = 0; i < ui->tableWidget->columnCount(); i++) + for(int i = 0; i < ui->tableWidget->rowCount(); i++) { QTableWidgetItem *item = ui->tableWidget->item(i, 1); QTableWidgetItem *item2 = ui->tableWidget->item(i, 3); @@ -314,4 +324,36 @@ void Form_BurnMode::on_tableWidget_itemDoubleClicked(QTableWidgetItem *item) } } +void Form_BurnMode::on_pbtn_close_clicked() +{ + int select = 0; + for(int i = 0; i < ui->tableWidget->rowCount(); i++) + { + QTableWidgetItem *item = ui->tableWidget->item(i, 1); + if (item != nullptr && Qt::Checked == item->checkState()) + { + select++; + } + } + if (select == 0) + { + QMessageBox::information(this, tr("tips"), tr("Please check a devices at least")); + return; + } + int i = 0; + while(ui->tableWidget->rowCount() > i) + { + QTableWidgetItem *item = ui->tableWidget->item(i, 1); + if (item != nullptr && Qt::Checked == item->checkState()) + { + DeviceManager *devManager = (DeviceManager*)item->data(Qt::UserRole).value(); + delete devManager; + + ui->tableWidget->removeRow(i); + m_curIndex--; + } + } + + updatetablewidget(); +} diff --git a/app/HGProductionTool/form_burnmode.h b/app/HGProductionTool/form_burnmode.h index 63a779c..c458ba9 100644 --- a/app/HGProductionTool/form_burnmode.h +++ b/app/HGProductionTool/form_burnmode.h @@ -74,8 +74,11 @@ private slots: void on_tableWidget_itemDoubleClicked(QTableWidgetItem *item); + void on_pbtn_close_clicked(); + private: void initTableWidget(); + void updatetablewidget(); private: Ui::Form_BurnMode *ui; diff --git a/app/HGProductionTool/form_burnmode.ui b/app/HGProductionTool/form_burnmode.ui index 7613b71..608b634 100644 --- a/app/HGProductionTool/form_burnmode.ui +++ b/app/HGProductionTool/form_burnmode.ui @@ -52,6 +52,19 @@ + + + + + 91 + 31 + + + + Close + + +