52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""Quick test script for new message definitions."""
|
|
|
|
from pymsc.core.message_definitions import msg_a1, msg_a2, msg_b7
|
|
from pymsc.core.field_mappings import get_field_path
|
|
|
|
print("=" * 60)
|
|
print("Testing New Message Definitions")
|
|
print("=" * 60)
|
|
|
|
# Test 1: Message structure
|
|
print("\n1. Message Structure Test:")
|
|
print(f" msg_a2 type: {type(msg_a2)}")
|
|
print(f" msg_a2._internal type: {type(msg_a2._internal)}")
|
|
print(f" msg_a2 has rdr_mode_command: {hasattr(msg_a2._internal, 'rdr_mode_command')}")
|
|
print(f" msg_a2 has param1: {hasattr(msg_a2._internal, 'param1')}")
|
|
|
|
# Test 2: Field mapping
|
|
print("\n2. Field Mapping Test:")
|
|
test_fields = ['stby', 'freeze', 'range_scale', 'rdr_mode_command']
|
|
for field in test_fields:
|
|
path = get_field_path('A2', field)
|
|
print(f" A2.{field} -> {path}")
|
|
|
|
# Test 3: Field access (read)
|
|
print("\n3. Field Access Test (nested paths):")
|
|
try:
|
|
# Test direct nested path access
|
|
val = msg_a2.get_field_value('rdr_mode_command.stby')
|
|
print(f" msg_a2.get_field_value('rdr_mode_command.stby') = {val}")
|
|
except Exception as e:
|
|
print(f" ERROR: {e}")
|
|
|
|
# Test 4: Legacy API compatibility
|
|
print("\n4. Legacy API Test:")
|
|
try:
|
|
# Test legacy flat field name
|
|
val = msg_a2.get_value_for_field('stby')
|
|
print(f" msg_a2.get_value_for_field('stby') = {val}")
|
|
except Exception as e:
|
|
print(f" ERROR: {e}")
|
|
|
|
# Test 5: B7 tellback structure
|
|
print("\n5. B7 Tellback Structure:")
|
|
print(f" msg_b7._internal type: {type(msg_b7._internal)}")
|
|
print(f" msg_b7 has rdr_mode_tellback: {hasattr(msg_b7._internal, 'rdr_mode_tellback')}")
|
|
|
|
print("\n" + "=" * 60)
|
|
print("Test Complete!")
|
|
print("=" * 60)
|