Overview
Implemented functionality to display the server's "RFID data received successfully" message in the UI when RFID data is sent to the central system.
Changes Made
1. charge_point.py - Enhanced Response Logging
- Added logging of server response data:
print(f"Server data: {response.data}")
- This captures the "RFID data received successfully" message from the server
2. charging_ui.py - WorkerThread Updates
- Modified
process_rfid_queue()to capture server response:
response = await self.charge_point_instance.send_rfid_data(rfid_uid)
if response and response.data:
# Send server response data to UI thread
self.rfid_data_signal.emit(response.data)
- Uses the existing
rfid_data_signalto communicate with UI thread
3. charging_ui.py - MainWindow Updates
- Added
update_rfid_server_response()method:
def update_rfid_server_response(self, server_response_data):
"""Update UI with server response data from RFID communication"""
print(f"Received server response: {server_response_data}")
# Update label_5 in step6 with the server response
if hasattr(self, 'ui_step6') and hasattr(self.ui_step6, 'label_5'):
self.ui_step6.label_5.setText(server_response_data)
print(f"Updated UI with server response: {server_response_data}")
- Updates
label_5in step6 (which is positioned below the RFID UID)
4. charging_ui.py - Signal Connection
- Connected the RFID data signal to the UI update method:
thread_a.rfid_data_signal.connect(win.update_rfid_server_response)
UI Element Used
- Element:
label_5in step6.ui (lines 264-282) - Position: Below the RFID UID display
- Styling: Green text (
color: rgb(143, 255, 45)) - Font: 18pt
- Perfect location: The white line area mentioned in the image
How It Works
- RFID Read: User scans RFID card (simulated)
- Send to Server: RFID data sent via OCPP DataTransfer
- Server Response: Central system responds with "RFID data received successfully"
- Capture Response: Charge point captures the response data
- Signal Emission: WorkerThread emits signal with response data
- UI Update: MainWindow receives signal and updates label_5
- Display: "RFID data received successfully" appears in the UI
Expected UI Flow
Step 6 Display:
Access granted
Card ID: [RFID UID in green box]
RFID data received successfully ← This will now appear
[Timestamp]
[Previous] [Start Charging]
Testing
To test the implementation:
1. Start central system: python central_system.py
2. Start UI: cd ui_hori && python charging_ui.py
3. Navigate to step 4 and click "CARD"
4. Wait for RFID simulation
5. Check step 6 - you should see:
- RFID UID: 92345678901234567890 (in green box)
- Server response: RFID data received successfully (below the UID)
Console Output
Client Console:
RFID read: 92345678901234567890
RFID data sent to server: 92345678901234567890
Server response: Accepted
Server data: RFID data received successfully
Received server response: RFID data received successfully
Updated UI with server response: RFID data received successfully
Server Console:
=== RFID DATA RECEIVED FROM CLIENT ===
Charge Point ID: CP_1
Vendor ID: ChargingStation
RFID UID: 92345678901234567890
Timestamp: 2025-10-10T15:XX:XX.XXXXXX+00:00
=====================================
The implementation ensures that the server's response message is properly captured and displayed in the UI at the location indicated in the image.