Printer realtime status

This commit is contained in:
2026-02-07 09:38:36 -05:00
parent 20d8cefe22
commit 7fd2e0050b
4 changed files with 200 additions and 11 deletions

View File

@@ -6,7 +6,7 @@ from datetime import datetime, timedelta
from .database import engine, get_db, Base
from .models import Drug, DrugVariant, Dispensing, User
from .auth import hash_password, verify_password, create_access_token, get_current_user, get_current_admin_user, ACCESS_TOKEN_EXPIRE_MINUTES
from .mqtt_service import publish_label_print
from .mqtt_service import publish_label_print_with_response
from pydantic import BaseModel
# Create tables
@@ -543,19 +543,31 @@ def print_label(label_request: LabelPrintRequest, current_user: User = Depends(g
"test": test_mode
}
# Publish to MQTT
success = publish_label_print(mqtt_message)
# Publish to MQTT and wait for response
success, response = publish_label_print_with_response(mqtt_message, timeout=10.0)
print(f"Label print result: success={success}, response={response}")
if success:
return LabelPrintResponse(
result = LabelPrintResponse(
success=True,
message="Label print request sent successfully"
message=response.get("message", "Label printed successfully")
)
print(f"Returning success response: {result}")
return result
else:
raise HTTPException(
status_code=500,
detail="Failed to send label print request to MQTT broker"
# Return error details from printer
# Check both 'message' and 'error' fields for error details
if response:
error_msg = response.get("message") or response.get("error", "Unknown error")
else:
error_msg = "No response from printer"
result = LabelPrintResponse(
success=False,
message=f"Print failed: {error_msg}"
)
print(f"Returning error response: {result}")
return result
except Exception as e:
raise HTTPException(