From 3efe301f8af2728e07d3cf58b30b826484e1d8bb Mon Sep 17 00:00:00 2001 From: "DESKTOP-064TTA1\\Fai LUK" Date: Thu, 26 Mar 2026 00:52:02 +0800 Subject: [PATCH] no message --- python/Bag2.py | 188 +++++++++++++++++++++--- python/__pycache__/Bag2.cpython-313.pyc | Bin 0 -> 88353 bytes python/bag2_settings.json | 9 ++ 3 files changed, 176 insertions(+), 21 deletions(-) create mode 100644 python/__pycache__/Bag2.cpython-313.pyc create mode 100644 python/bag2_settings.json diff --git a/python/Bag2.py b/python/Bag2.py index 513ed8d..2ffab22 100644 --- a/python/Bag2.py +++ b/python/Bag2.py @@ -730,6 +730,130 @@ def laser_push_loop( pass +def run_laser_continuous_print( + root: tk.Tk, + laser_conn_ref: list, + laser_thread_ref: list, + laser_stop_ref: list, + ip: str, + port: int, + item_id: Optional[int], + stock_in_line_id: Optional[int], + item_code: str, + item_name: str, + set_status_message: Callable[[str, bool], None], +) -> None: + """ + Laser continuous send (連續 C) in a background thread. + User can stop via Stop button or keyboard: `Esc` / `Q`. + """ + # Stop any previous continuous run. + if laser_stop_ref[0] is not None: + try: + laser_stop_ref[0].set() + except Exception: + pass + + stop_event = threading.Event() + laser_stop_ref[0] = stop_event + + win = tk.Toplevel(root) + win.title("激光機 連續列印") + win.geometry("360x170") + win.transient(root) + win.configure(bg=BG_TOP) + + ttk.Label( + win, + text="連續送出中,按「停止」或 Esc / Q 結束", + font=get_font(FONT_SIZE), + background=BG_TOP, + ).pack(pady=(14, 8)) + + count_lbl = tk.Label(win, text="已送出:0 次", font=get_font(FONT_SIZE), bg=BG_TOP) + count_lbl.pack(pady=6) + + # Ensure stop keys work even if focus is on the main window. + def _unbind_stop_keys() -> None: + try: + root.unbind_all("") + root.unbind_all("") + root.unbind_all("") + except Exception: + pass + + def on_stop() -> None: + if stop_event.is_set(): + return + stop_event.set() + _unbind_stop_keys() + try: + win.destroy() + except Exception: + pass + + def _key_stop(_e: tk.Event) -> str: + on_stop() + return "break" + + root.bind_all("", _key_stop) + root.bind_all("", _key_stop) + root.bind_all("", _key_stop) + + ttk.Button(win, text="停止", command=on_stop, width=12).pack(pady=10) + win.protocol("WM_DELETE_WINDOW", on_stop) + + def worker() -> None: + sent = 0 + try: + while not stop_event.is_set(): + ok, msg = send_job_to_laser_with_retry( + laser_conn_ref, + ip, + port, + item_id, + stock_in_line_id, + item_code, + item_name, + ) + if not ok: + root.after(0, lambda m=msg: set_status_message(f"連續送出失敗:{m}", is_error=True)) + break + + sent += 1 + root.after(0, lambda s=sent: count_lbl.configure(text=f"已送出:{s} 次")) + + # Small delay between sends; check stop frequently. + for _ in range(4): # 4 * 0.05 = 0.20 sec + if stop_event.is_set(): + break + time.sleep(0.05) + except Exception as e: + root.after(0, lambda err=str(e): set_status_message(f"連續送出意外錯誤:{err}", is_error=True)) + finally: + _unbind_stop_keys() + if not stop_event.is_set(): + # Failure path ended the worker; keep window close. + try: + win.destroy() + except Exception: + pass + else: + # Stopped intentionally. + root.after(0, lambda s=sent: set_status_message(f"已停止激光機連續送出:{s} 次", is_error=False)) + + laser_stop_ref[0] = None + laser_thread_ref[0] = None + try: + win.destroy() + except Exception: + pass + + t = threading.Thread(target=worker, daemon=True) + laser_thread_ref[0] = t + t.start() + + def send_job_to_laser( conn_ref: list, ip: str, @@ -740,16 +864,23 @@ def send_job_to_laser( item_name: str, ) -> tuple[bool, str]: """ - Send to laser. Standard format: {"itemId": xxx, "stockInLineId": xxx}. + Send to laser using `;` separated 3 params: + {"itemID": itemId, "stockInLineId": stockInLineId} ; itemCode ; itemName ;; conn_ref: [socket or None] - reused across calls; closed only when switching printer. - When both item_id and stock_in_line_id present, sends JSON; else fallback: 0;item_code;item_name;; + When both item_id and stock_in_line_id present, sends JSON first param; else fallback: 0;item_code;item_name;; Returns (success, message). """ + code_str = (item_code or "").strip().replace(";", ",") + name_str = (item_name or "").strip().replace(";", ",") + if item_id is not None and stock_in_line_id is not None: - reply = json.dumps({"itemId": item_id, "stockInLineId": stock_in_line_id}) + # Use compact JSON so device-side parser doesn't get spaces. + json_part = json.dumps( + {"itemID": item_id, "stockInLineId": stock_in_line_id}, + separators=(",", ":"), + ) + reply = f"{json_part};{code_str};{name_str};;" else: - code_str = (item_code or "").strip().replace(";", ",") - name_str = (item_name or "").strip().replace(";", ",") reply = f"0;{code_str};{name_str};;" conn = conn_ref[0] try: @@ -1487,23 +1618,38 @@ def main() -> None: stock_in_line_id = j.get("stockInLineId") item_code_val = j.get("itemCode") or "" item_name_val = j.get("itemName") or "" - n = 100 if count == -1 else count - sent = 0 - for i in range(n): - ok, msg = send_job_to_laser_with_retry( - laser_conn_ref, ip, port, - item_id, stock_in_line_id, - item_code_val, item_name_val, + if count == -1: + run_laser_continuous_print( + root=root, + laser_conn_ref=laser_conn_ref, + laser_thread_ref=laser_thread_ref, + laser_stop_ref=laser_stop_ref, + ip=ip, + port=port, + item_id=item_id, + stock_in_line_id=stock_in_line_id, + item_code=item_code_val, + item_name=item_name_val, + set_status_message=set_status_message, ) - if ok: - sent += 1 - else: - set_status_message(f"已送出 {sent} 次,第 {sent + 1} 次失敗:{msg}", is_error=True) - break - if i < n - 1: - time.sleep(0.2) - if sent == n: - set_status_message(f"已送出激光機:{sent} 次", is_error=False) + else: + n = count + sent = 0 + for i in range(n): + ok, msg = send_job_to_laser_with_retry( + laser_conn_ref, ip, port, + item_id, stock_in_line_id, + item_code_val, item_name_val, + ) + if ok: + sent += 1 + else: + set_status_message(f"已送出 {sent} 次,第 {sent + 1} 次失敗:{msg}", is_error=True) + break + if i < n - 1: + time.sleep(0.2) + if sent == n: + set_status_message(f"已送出激光機:{sent} 次", is_error=False) for w in (row, left, batch_lbl, code_lbl, name_lbl): w.bind("", _on_click) diff --git a/python/__pycache__/Bag2.cpython-313.pyc b/python/__pycache__/Bag2.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64e5842fd13f13b89ea67cef34c26b0aa28bca0c GIT binary patch literal 88353 zcmd443shX!eK&gM{bmLj-jX;xB!L772@ps~vUp190TPF?WPybT7!Vc=_{?Al5+^uG z8{|0E$S>j4t#RVs;Kpf5lQv50_OoLs65wWwyl8d1Z3wW5~&>O>v;)r)%eYY+|W*C-mT>v)ONsn8RY|59S`o6Y~zN5!W18E3Q4TPF%-x?27?k^2PjE-UVWTU=#~`)Sazz z7bw4-ZHiy^31-1kqn6&p^*tL3xgMQh6-+f6DXb(G(Y=A=kZZe~PWkOTs`zDJkFK** z_A9?ND#ZtwnW2xH!}v_@EmkbH{UvmK#43#}Cj#5$o++#wW+JB4DgURW>g!tZWjgSbc7DBdNMh*3FkS3@ixhtL?yM-ZCCE}>a;2`%E?LaTU8*e4zr_KWujZQ=>xK+jQ>nkCoaZbO?u8i?qTKmgl`}lvpT6R4*K5p(lmT9&_hE zDRWEq2?AQuh1$9BdpG`$^`!Px_iW#yMrt+dH<}qK!f}?*eJkSA7o%_w`{EW(AT{Me zp?aa4h4!It{XIwJF_3b^%GDa&490o3^Kq z>c0gLHKF!ap`Yb^>ZYj%dWHoL{s!?U_eiqYB+sCgIpqV+=vz^8X-^S@1R>hd` z07gdau_AmJ;XamTT<~KS{i`wxvQL$YP4Z8Ni9N@!2rRLVd#2O=cn1hO~0A zHa^GV`tK<2=ULo|JBs@di~FGPW#J3Vcc$m8@Wq|SInIrpxaUkER}*Uv&kd=E)CF8m zhJkbIISxCST6E@f`!wz62f5vvd~Q$``)ZAS%|r~eAA6))%waJfPl(AUSjbX+OHNh#m5C)(*4*eG+RFdy^yB_qBBK zTgE51AW?ZNQHghq9~m1O_VS|Vfr(+!Gf;}OC}qOy8Q=%UMBY6F&x8*p?Bqw>;*du~ zu-9M4cZu$SVgK-$*FC~Fof`Ifd>%yT^Nje)_;Jzm;1;jvtUp#8bLWJ2CqF*vKQ-p% zsW}znljf^55bdR!sFtc6HInNe9`!^`jZ4}X>Cic@Ty3fSCt*C9($U-~DeWj|H|Jbm%t2LU!y0N#hL1^i9 zbsn0^Ipz0{@7%IwWUSvka%#-y-&t3=qjHOTd^oBf6vw7K-l?=c_t3UppU3YX_73?f z?)Qy(r<@~hpTD=y?e9O;+dnqp^;h`M`lF_JE>SII6Xl}Xs>;f`DcjZ^+bXthudCQv zTd}n=s;jQqURyWi=n|UvuC62H+p4!8=8uSDrG}^;CHD@GM~(D5J|?0i18!7+!pxFS z3PlAxA`6v#EY!rt12r0r>P3%#LiF~>CO`YZq~{3T`k({|(v#S173`!lhMFZt@1%WV z)zeLRut!FH;)vT0j_WqbUzK=-UJ9BW8a3zTx)}mZaXPWYRzHQDi<5Kpsw%ne6gftV z%B5;i`P71z{>exX&lOV}(&bo6d^wk5u7E4!LGY0mNu8HAmHBzNmKG?LQUO5Bn&~s7+|; z>S}A>C-k_zlSXjEU)2yKbDPZ zkgYVgkH(hgqeV?Sdj>oY_OK;T-skQ=?ePxuNQ<-wi*y?nY1Bsf$7j1(iKIvH=bM5v z&0W*#b+%=T?R@RI+VgwP?Rlm=Vkrq(N|sYIo*11I7HY4g)?a#HIVtfe1XIjdvQ!G|pcL2bdu7JPa$wf@r&^_(^1 z15Ty0y=}B!)8O~IuL8w?skTwe{fKX<(!7#mg7=jwbEC@e%5Dw(KUOhUYi>-{{Mey_ z8#T%U){k+IKiCwcHSi^Pp5(gY-@4-~AYsO;y0vo3&iKriLpZLGJC1{xpcC{vwAfAz z^iP?cLx!8rz9EA&`$~;dd4l^vk21Re@8fd|lje-bqdc(y&Q+>mD+X3S>>cm`$XPvJ z--PJtb^H2wLE=zA6!q4waqpkwBE#BX8YawM%tF3iT~hXatQ* zox%xPmj|L4>f6Osb;b{iQ$m}Yymz`?}Rua?!nhS{P}jnndX+vj)*xwa4=%p5Hf8Dn@Xk|m#of+ zb=|B!Vp$)utPfi@PB$;voPo|j^Q>yNcs6s^AG8z)wZ$JG11@SE7l*xmfOxMPJEWH8 za`GPichrk|R8TRb=RC)`lJ=#bmZ9PeJ*nxWv03#b_Ir@IDvZT zJ9Acj#H&2Moq0EY6C83K<0Wnfrm{wkNxK7^gYgj14sLjWo9N|yyapw8Cx1g!>oM|KhrCxoo2<8WyO-^q|RA5JwB9>Ul<4pw|bz4P9=$A9z9uf6xevwXAL z?`|FOoE5VXEE1L}($tG;cWkY!Yy}c$pkvF}gum+}LVMr)Z_~f}qjN|o=2BFeiDCvE z>ErybH6K|QV#1TD>oYKA<1v7WwY0Q94J-xzQ+e>AmU^x%vHe4e!s zN3Uq+kPOmQ*(2?M8vBtiT_pxpxfd!K}?;!{()wwDYIVoeE5aQwk#~ zC3Afd+m?`ROW3w`M!n?BzPSIw{@I?eb5q1wJwF&puMefyhtqe@7=LL`T}scsrq-Ks zmeVr>XCL1^)4c4+j5tcJI7;RV=W`c#3n53>Ov94Zc7ETveUG*+rDt8!b4F+2b74c_ zoflg(KNLyd6-wU~PT%uiFE%anV#$S)+4^wW#z+*h^x>S^fPUGL8*yyB;@CK^Uvz9)%F3f0)6VT-y`@8MrDb0%f2@2?zn}`GZJTLY zvf9tLoojpapwvIs)K5O_P;seQ7p)hp&)omw#-M#0aC=kE+vsf#en0&%`<7pM&bbx| zY-`^}1vU8n^ushHh&VQc92;IV1nre8vb*lvk6G~wU$gHn?$w%_{l(l*3d`C|+#A{J z+j6)!?#ka^pt;Pe$Suxq(`$aJQ;};jw`FR6nxP^$C%0|8=BG6(xL4_Dc-2l09ayi@ zE_FTQ@NmC4<{KOI^9N3OyhHmv!@R5QDlPk~kHQ(A#*~~g6t&c~R<}06(_9U2Ero1t zt!!O?s8hExhHrB9^*4Cz`rbdJ`ZledD9hEIDJ1XI+tlVB*Svg!efvoTQpD2W| zwX1ZL7JK2WINoRxK%YNog+pjzQq&Dca`~8&^t(nmWCLy1O;xw}`rYFm-cJ-BA`+cA za)>|K+FVglak5q5OXw`=10CWNkHyUQyKy2e#o482O5M{FRh`7oNnqCo(F1~2zo%5i z>g^-o7sIA4y;I{Oy&hJI_yEFR!k>?agQab;p5Jk9N1$tVd)QJKv1|%iHqBQp=)#um zLG5<&E<}nNB~pxcENU9|dqx2$20$5NUIy?C%sY&Ov(FFM+B@v+9RUTa7a{tQF@G-- zT8YZlD|&_|K=q26*jwM&$Uwgl1;`K01lGOZK;;upk1q8MxT5M-xSfn2c#X;lG|3s~ z&hjw1bP1(f=scC=gr&Y!eZ1y`dc^Txuf?V5!;a{}> z?QSdym$}1^2}%98>XGp`uQj0-)_5P;aEi0hDbA&bt9KdU8e)D6{6?37g`41-s_dAu z=83;T5#~@MLD|$t?jW6l!s>4yljuZ5hdo0@ zfkf)Vp}mX;!PLXc^OY}YJWCI9`G`8^U#Fj7sKyI)%17ne25?TNDcj~fgbCX=FjaH% zc!T+5Q`@#W^T{K}YAY+vCl4K}p`Rlie7pH%Ysc2gvTb;6JlbBit*jc$^k_rbR1Ov@ z`&cV|ZP?pcR=bVFeCh+t4(-(gz&~NhS-mUIAjcYydIIzCju>?HM<81nLCH*ui($O1ZSH2a2;pO znl(kTH_f>sSzAL{TfPYI=Q0mrjYSr|CWk=rZ zfv{uablW?Il#n4en7<{IU%#A@bMeGuC+2HI{N3ST0Cu4nB^cIkKs)6p4!*p9DDY)SSg<#eXzmPr8Se;u-7+t) zDWM*wIN&e?e645T3x^RU#vK4MwF1cExmh}NAS!VwT$S2u0Z1ZXq>F(b0z(o=(lPL4 zjD0mHfTXJ!1~cuPw1d7Up9pXiAt<#|fkjdXfDfPv0UiGH2|#Bv0T&)zoDyWhphzjt z;82B`fi|z-J?!=IpDUE0N8wH$(4~woTmeL+(1#?z)HmioB}1qBmCy;SA@8sR>lnl- zt!KO-B380SG!74y*YG8tilGYrFsRvwhF$v)3QYo_nfN)hR{T7i>l%VT^((*@gI6)I z#Q@gU8UUxp>blCZsYC>r>;k4T6 zgUgu(bDP7N71JF{iNGms?K1<<-v5pJ7xslpd&BGQ3#Yly8QyVb%^Cw!!L-5|1HmLK zV3I9$W_ut#&=nv^ln2O@KC=V94EP+YzDV!ALFak^r46fr(r^%nz;GIzt3)Kex``a3 zPhZ6f<*r_V17hd!lxHfFaqx(lSJ5hZJYAFH9(q}U?dlPop<}0zAzl4_F|2_^szVNX*UZWq+BMYT#$59PHOfIkDl@jBktf7`F#^!N>^$SPoZ8@X*Zs4 zqlOrGkJ@6MUIyr=>`L5w+&Bn>CNw-M{|Xb{QkzIXkP)9m7x{{*>Dv3phP_dP$NS*0 zIOY`(QJCIycG&0lMU8%tV>x|IBz^sr^!0NC;qwr>m?H-7SA5tp&%nPb89^+YYni8_e9Vgq?)4VRkzOjgidKy;FfsMSei zmyAz|jKjFB&bRI92+}#P`?jMye$4G?+OB?8pV4enzgpmIF6Lg{?r1jaUNfo4wKDqT@4z(SMHNIGLRYrQ=WsIJ^SA`hc-27+OD$ zv)yqVR$*d!5}`YlvFa)01dYNR>ZVD^9>_*%Wtmg2UJ)5c4(k-6|7iA#qi~v>UuT?g zA%`%waJ8UQFi5Wfn4><1IU1C@sy0$?26}h1sF_s?{#D4DY=ruy8gi z@nxUO)Gbd3PVrU8=~O(|O|)nBbeG9K1vgLlT5-cyYr@yc8@}3<@{~FgyIcvUH*bpa z?zJZ&_}DwEncB^;^b&StH zAt#}ZcS54Ob*-~pws@^GZdq%@lxywM7vHLVS@C)!UTN;c+ZaA`C**=4_7^{*N@9Mz z+XsXPcn!~hJYRC=6wa7@-%uIf2eR&Ii8{O)r&b*QAdUzM+c1QoNJx(z78w(Vgra<7 zGTOus4EsP5p7enxCyHR(jZD__XCSJGl0*+b0HHoF-#0u2Aw*E*B!NXAe`I)M1V?5f zH9sKI=@bWM_b|ynLh6usatvP}rk)o^W%q;bVVto>AS2m6)pbK!R*)tV} z$e9T;4v#~Q3*54i5xI1!&V7wh9qSHu;uRl7FJ7f1he&IfBp4yh*h|Nn zsJ@R$Vs?QZt{EKmM|G_45XB71uMrTgM~Ht%1a;Zp>G8Qo$3YAmVrS~8mZcup?)Fu>CB#|eHB z^;pn$7>_>@e=~Hb1f$n{{1IAWF5S*25Nii~hWHZM_P?i=E<>`OaK(vGJcl|Gs52h^ zix{9(>IhKrzp^J4c}xY7f%FUY6}DhV8JICaKv7RRYI?yUaN4*;=B>tViyEjD5H;!P zatKy=yO&2}pUPdz(a2g{bm093`ooGho6Cx~ud~@@yIntaIg%c%Z8xdEO`cIMm5{PS z<4tj;2qtPTep$O|+jXg_HwG}j4!2-Sjvw`1@zjDP9^-Drw)_Taf-)aoyIM~obu~IGR+}(DcdJE(RF-n-jW51Wj zlhp$w?y?_I9|mcG5CE^mYftFGxYSd^jI-Qw##uhojI+2b#hAmNv5xu`b&SjOB-HT_ zx+-YbCp+6G zIMdQO-`smfbdUG4ZL$>E1DENQsI306Ubeee>|&DozC9I6)CWKT@I8$7e=^N2XJpUj zKHfXi3Q>??R%bX}m}y?h&YNjl$}gB{St=-+*|+4(nrZpB%-n!_DLrG>`S{KyXAaQ_ z=F+~M^<36`R=8kmq@XrbP#Z4TvFO~nw2lw#TUwJJXnEVY=AFXgZMudv4peYoDu~ zuUSZ4NSoggE~<$X)rX4e!$rG;*?R&yN|F`u&z^|bORm^U&-bqUy69Q+)8@Ht&!jBn7d`vX(+|zxz0mo?W8XV=N%(%xW$o-k!TiIs+NHewIn~p( zb6xWV&m9ZpmCaASnOFCc@N)V;9KWpk#~$?3vj?6&FeiTd%yVbveG63!jq_*28|xw) z_k=d?32)rHxTayLXv3WNT%+22{nmziR)Qb;1hgJkLH_v5>k@~Ahq$9kh`{(*UM zzBXJ`6)D;gDnhr^2Xl7?nwGM11LpsWUmtdE{-$nrE3!KJoNlHi=-j+)Py1{gi@~2c z^dJA8%4L=P$G@Aoj4~gQA1@b}53016x9H*iw90%?ul<=y4;SLxw7#NRLKm+R2)Rn) zideJ6GY|(UfXFYUeALprzd`5)!rptdQ^a0}^(bMjQEMWi9MyO|XQH-44UH{_dfN^+ z>}%;gw(@nqNPBx!OG-A3y(@l+<#x2QiR3Jd?tuZu?}%zg-KRa!;DIYGw5S0jHv$k* zLwid@XN%B9iYW{cjum(mqHJv^TB5pfXw*RSL8``)hURAIKQQ`S)G39vcC>f(wl^GZ zkrE_^Hgz<|LNgNLHa2uM?Prl=5R2r`4zrewfYKN>dAt*&j72QLt$)I&(wti}f*_zb zIwWFSh7jKaB6TPlIutcQaD-v$U|17jQIgu0yb?>Bg))9!)NrhOmwt{y#8;^#)v)+e`ZZEkES^b{AD{;P3%>Y>Oq2i!S9tfv_~A(*p?DoB z_Y>%QQUZM+=Yr?-Nc}VGpDurK`wM%PQ*wiO4}??1pix{l+s~IiQW|J^=J1QVgLykH z)rQSY(@o13=lMO4?3pbJTh>iCuV8*dI&ITqo8}FnwL&

)Z;~(z_=6`L&O%om0&h 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