86 lines
3.1 KiB
Python
86 lines
3.1 KiB
Python
"""
|
|
Test B9 Message Access
|
|
Quick verification script to check if B9 message is accessible via Python interface.
|
|
"""
|
|
|
|
import __init__
|
|
import sys
|
|
import time
|
|
import logging
|
|
from leo_grifo_1553 import theGrifo1553
|
|
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
|
def test_b9_access():
|
|
"""Test if B9 message is accessible and readable."""
|
|
logging.info("=== B9 Message Access Test ===")
|
|
|
|
try:
|
|
# Get interface
|
|
interface = theGrifo1553.getInterface()
|
|
logging.info("✓ Interface obtained successfully")
|
|
|
|
# Check if B9 message is defined
|
|
try:
|
|
is_rx = interface.isMessageReadOnly("B9")
|
|
logging.info(f"✓ B9 message is defined, RX={is_rx}")
|
|
except Exception as e:
|
|
logging.error(f"✗ B9 message not defined or not accessible: {e}")
|
|
return False
|
|
|
|
# Try to get message counter
|
|
try:
|
|
msg_count = interface.getSingleMessageReceivedSz("B9")
|
|
logging.info(f"✓ B9 message counter accessible: {msg_count} messages received")
|
|
except Exception as e:
|
|
logging.error(f"✗ Cannot get B9 message counter: {e}")
|
|
return False
|
|
|
|
# Try to read key fields (even if count is 0)
|
|
fields_to_test = [
|
|
"b9_t_num", # Number of targets
|
|
"b9_t1_rng", # Target 1 range
|
|
"b9_w12", # Word 12 (timetag)
|
|
"b9_t1_az", # Target 1 azimuth
|
|
"b9_t2_rng", # Target 2 range
|
|
]
|
|
|
|
logging.info("\nTesting field access:")
|
|
for field in fields_to_test:
|
|
try:
|
|
value = interface.getMessageFieldValue("B9", field)
|
|
logging.info(f" ✓ {field:15s} = {value}")
|
|
except Exception as e:
|
|
logging.warning(f" ✗ {field:15s} - Error: {e}")
|
|
|
|
# If message count > 0, B9 is being transmitted
|
|
if msg_count > 0:
|
|
logging.info(f"\n✓✓ SUCCESS: B9 message is active and receiving data! ({msg_count} messages)")
|
|
else:
|
|
logging.warning(f"\n⚠ B9 message is accessible but no messages received yet (count={msg_count})")
|
|
logging.warning(" This is normal if radar is not transmitting or not in operational mode")
|
|
|
|
return True
|
|
|
|
except Exception as e:
|
|
logging.error(f"✗ Test failed with exception: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
if __name__ == '__main__':
|
|
logging.info("Starting B9 access test...")
|
|
logging.info("Note: This test only checks if B9 is accessible, not if radar is transmitting it.\n")
|
|
|
|
success = test_b9_access()
|
|
|
|
if success:
|
|
logging.info("\n=== TEST PASSED ===")
|
|
logging.info("B9 message is accessible via Python interface.")
|
|
logging.info("Next step: Verify radar is configured to transmit B9 (operational mode required)")
|
|
else:
|
|
logging.error("\n=== TEST FAILED ===")
|
|
logging.error("B9 message is NOT accessible. Check ICD configuration or bindings.")
|
|
|
|
sys.exit(0 if success else 1)
|