""" Test creating mapping with VideoInput field (required for GeViSet display) """ import grpc import sys import io sys.path.append(r'C:\DEV\COPILOT\geutebruck-api\src\api') if sys.platform == 'win32': sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') from protos import configuration_pb2 from protos import configuration_pb2_grpc print("="*70) print("TESTING ACTION MAPPING WITH VIDEOINPUT") print("="*70) channel = grpc.insecure_channel('localhost:50051') stub = configuration_pb2_grpc.ConfigurationServiceStub(channel) # Get current count print("\n1. Getting current mapping count...") request = configuration_pb2.ReadActionMappingsRequest() response = stub.ReadActionMappings(request) initial_count = len(response.mappings) print(f" Initial count: {initial_count}") # Create mapping WITH VideoInput print("\n2. Creating mapping WITH VideoInput=101027...") param1 = configuration_pb2.ActionParameter(name="PreAlarm", value="10") param2 = configuration_pb2.ActionParameter(name="Alarm", value="60") output1 = configuration_pb2.ActionDefinition( action="GCoreDataBase", parameters=[param1, param2] ) output2 = configuration_pb2.ActionDefinition( action="GscMail" ) mapping = configuration_pb2.ActionMappingInput( name="TEST_WITH_VIDEO_INPUT", video_input=101027, # THIS IS THE KEY FIELD! output_actions=[output1, output2] ) create_request = configuration_pb2.CreateActionMappingRequest(mapping=mapping) create_response = stub.CreateActionMapping(create_request) print(f" Success: {create_response.success}") print(f" Message: {create_response.message}") # Verify print("\n3. Verifying...") verify_response = stub.ReadActionMappings(configuration_pb2.ReadActionMappingsRequest()) final_count = len(verify_response.mappings) print(f" Initial: {initial_count}") print(f" Final: {final_count}") print(f" Increased: {final_count > initial_count}") # Find the new mapping found = False for m in verify_response.mappings: if "TEST_WITH_VIDEO_INPUT" in m.name: found = True print(f"\n [SUCCESS] Found mapping: {m.name}") break if not found: print("\n [FAIL] Mapping not found in list") print(f"\n{'='*70}") print("DONE! Now reconnect GeViSet and check if you see:") print(" 'TEST_WITH_VIDEO_INPUT'") print("with VideoInput: 101027") print(f"{'='*70}")