Printer realtime status
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user