TOOL PRINT RSA v31 — HƯỚNG DẪN SỬ DỤNG

CÁCH CHẠY
1. Giải nén toàn bộ ToolPrintRSA, giữ EXE, DLL và cấu hình cạnh nhau.
   Cần Windows và .NET Framework 4.7.2 trở lên. Mở lại để áp dụng cập nhật.
2. Giữ Shift TRÁI khi bấm/kéo/cuộn trên giao diện chính. Di chuyển chuột
   và con trỏ vẫn hoạt động bình thường; hộp thoại phụ không bị khóa.
3. Hai nút Cấu hình máy in và Nhập mã shop đều yêu cầu passcode gốc.
   Sau khi mở hộp thoại, không cần giữ Shift để nhập hoặc bấm tiếp.

NHẬP MÃ SHOP TRÊN MÁY MỚI
- Bấm Nhập mã shop, nhập passcode, điền mã shop rồi Lưu.
- Mã shop mới lưu ngay cùng ID hiện tại vào file ID/mã shop, dùng lại khi
  mở phần mềm. Có thể lưu khi không có mạng, không cần đợi server.
- Dữ liệu lưu tại %LOCALAPPDATA%\ToolPrintRsa\confirmed-connection.json
  (tên file giữ từ bản cũ) và prefs.json cạnh EXE nếu ghi được. Khi có hai
  bản, chương trình chọn bản cập nhật mới hơn. Có file dự phòng .bak.
- Hủy không đổi dữ liệu. Nếu không ghi được cả hai nơi, báo lỗi và không
  đổi mã đang dùng. Không tạo ID giả khi máy chưa có ID/card mạng hợp lệ.
- Lưu shop mới sẽ khởi tạo phiên kết nối mới bằng mã đó khi mạng có.
- prefs.json của bộ đóng gói ban đầu có shop 30985; dùng Nhập mã shop để
  đặt đúng shop cho máy mới. Máy in phải được cài trên Windows.

KẾT NỐI VÀ TRẠNG THÁI
- Kiểm tra 8.8.8.8 mỗi 30 giây, tối đa 3 giây/lần, chạy riêng hoàn toàn
  với worker socket. Không hiện dòng trạng thái mạng trên giao diện.
- Mất mạng: hiện Mất kết nối; luồng in chỉ chờ thông tin từ monitor.
- Mạng có lại: tạo socket mới, đăng ký shop/ID và nhận lệnh in.
- Chỉ hiện Đã kết nối bằng chữ lớn, đậm, màu xanh sau khi máy chủ xác
  nhận đăng ký thành công từ đúng socket và đúng mã shop hiện tại.
- Có mạng nhưng Connect/đăng ký lỗi: Mất kết nối máy chủ in và dừng.
  Đã bỏ hoàn toàn lịch chờ 1800 giây, thử 3 lần và khoảng cách 15 giây.
  Ping online tiếp theo không tự mở lại kết nối đã dừng.
- Mạng mất rồi phục hồi, lưu mã shop mới hoặc mở lại phần mềm sẽ tạo
  phiên kết nối mới. Socket ngắt trong khi mạng vẫn có cũng báo lỗi
  máy chủ và dừng, không tự thử lại.
- Timeout kết nối socket 30 giây, chờ xác nhận shop 20 giây. Ping bị
  chặn sẽ được xem là mất mạng theo target 8.8.8.8 đã chọn.

GIAO DIỆN VÀ DỮ LIỆU
- Logo FPT nhúng sẵn. ID/mã shop trên main vẫn là chữ cố định, không thể
  chọn/copy/sửa/Tab vào. Đổi shop qua nút Nhập mã shop có passcode.
- Nút Thoát/Kết nối socket ẩn; Thu nhỏ vô hiệu hóa. Không có bộ đếm in.
- IP tự cập nhật 2 giây/lần. Log:
  %LOCALAPPDATA%\ToolPrintRsa\Logs\startup-yyyyMMdd.log

KIỂM TRA VÀ LƯU TRỮ
178 kiểm tra mô phỏng đạt; đã xem ảnh trạng thái và hộp thoại nhập shop.
Chưa thử chuột/phím vật lý, ICMP ngoài mạng, máy chủ hoặc in thật.
Mã sửa và bản trước: luu-tru\ToolPrintRSA-KyThuat-v20.zip (gói kỹ thuật
riêng, không nằm trong ZIP triển khai). Logo: https://fpt.com/fpt-logo.svg

BẢN v21
- Đồng bộ giao diện cấu hình máy in với hộp nhập mã shop: nền sáng, bố cục gọn, bảng danh sách và nút Thêm máy in / Xóa / Đóng.
- Giữ nguyên xử lý thêm, xóa, chọn máy in và API hiện tại.
- Bỏ 15 phương thức không còn dùng, gồm cập nhật cũ, sự kiện nút chính đã ẩn, trạng thái socket cũ, tiện ích không có nơi gọi và sửa máy in không có nút gọi. Bỏ hàm Resolve cũ không dùng.
- Giữ các DLL và API tương thích chưa chắc chắn có thể bỏ. Giữ nguyên bộ điều khiển kết nối RsaStartupFix.dll.
- 167 kiểm tra tự động đã qua; bắt tay Socket.IO trực tiếp tới máy chủ thành công. Chưa chạy in vật lý trên máy in thực tế.


BẢN v22
- Các trạng thái kết nối dùng chung cỡ chữ Segoe UI 20pt, in đậm.
- Chấm trạng thái vẽ tròn, căn giữa theo chữ và giữ khoảng cách cố định.
- Qua 15 kiểm tra trạng thái; đã xem ảnh các trạng thái kết nối/mất mạng/lỗi máy chủ.


BẢN v23
- Ẩn nhãn ID và giá trị ID trên giao diện chính; căn giữa dòng mã shop trong thẻ thông tin.
- Giữ dữ liệu ID cho kết nối và lưu cấu hình. Qua 10 kiểm tra trường dữ liệu và đã kiểm tra ảnh giao diện.


BẢN v24
- Bật lại nút thu nhỏ; chỉ cho bấm khi giữ Shift trái. Kiểm tra phím một lần nữa tại thời điểm bấm.
- Thả Shift trái khóa lại nút. Hộp thoại phụ vẫn thao tác bình thường.
- Qua 7 kiểm tra thu nhỏ và 35 kiểm tra khóa chuột.


BẢN v25
- Giảm chiều cao ô mã shop từ 98 xuống 56px, căn giữa nhãn và mã theo chiều dọc.
- Thu gọn phần bên dưới 42px; cửa sổ 460x338. Giữ nguyên cỡ chữ trạng thái và nút thu nhỏ theo Shift trái.
- Đã xem ảnh giao diện; qua 15 kiểm tra trạng thái và 7 kiểm tra thu nhỏ.


BẢN v26
- Bỏ ô tick Ẩn máy in ảo khỏi giao diện cấu hình; luôn bật bộ lọc theo danh sách tên máy in ảo hiện có (7 tên).
- Thu gọn cửa sổ cấu hình còn 760x550. Giữ nguyên API thêm/xóa máy in.
- Qua 32 kiểm tra giao diện/hành vi và 5 kiểm tra lọc với danh sách máy in giả lập.


BẢN v27
- Giảm khoảng cách giữa ô mã shop và trạng thái kết nối từ 18px xuống 8px; thu gọn chiều cao cửa sổ còn 328px.
- Đã kiểm tra ảnh giao diện, qua 15 kiểm tra trạng thái và 7 kiểm tra thu nhỏ.


BẢN v28
- Hai ô mã shop và trạng thái đặt cạnh nhau, rộng 200px, cách 12px, viền bo góc đồng bộ và thẳng cột với hai nút bên dưới.
- Trạng thái giữ chữ 20pt; lỗi máy chủ xuống hai dòng. ID tiếp tục ẩn.
- Qua 15 kiểm tra trạng thái, 7 kiểm tra thu nhỏ và 10 kiểm tra dữ liệu.


BẢN v30
- Dựa trên v28, ô trạng thái có nhãn Trạng thái phía trên, nội dung phía dưới, căn giữa giống ô mã shop. Bỏ chấm trạng thái.
- Hai giá trị dùng chữ 14pt in đậm; giữ kích thước ô và bố cục v28.
- Qua 15 kiểm tra trạng thái, 7 kiểm tra thu nhỏ và 10 kiểm tra dữ liệu.


BẢN v31
- Chữ mã shop và nội dung trạng thái 20pt in đậm như v28. Giữ nhãn phía trên, căn giữa, không chấm trạng thái.
- Đã kiểm tra ảnh lỗi máy chủ hai dòng, qua 32 kiểm tra trạng thái/thu nhỏ/dữ liệu.

