From 43d2b12413b333e65ae88e65a7f7316c061fcb05 Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Tue, 29 Oct 2024 08:43:55 +0100 Subject: [PATCH] test: Connect devices --- tests/revpi3/config_connect.rsc | 825 +++++++++++++ tests/revpi3/config_connect_left.rsc | 1698 ++++++++++++++++++++++++++ tests/revpi3/test_connect.py | 83 ++ 3 files changed, 2606 insertions(+) create mode 100644 tests/revpi3/config_connect.rsc create mode 100644 tests/revpi3/config_connect_left.rsc create mode 100644 tests/revpi3/test_connect.py diff --git a/tests/revpi3/config_connect.rsc b/tests/revpi3/config_connect.rsc new file mode 100644 index 0000000..7f01bce --- /dev/null +++ b/tests/revpi3/config_connect.rsc @@ -0,0 +1,825 @@ +{ + "App": { + "name": "PiCtory", + "version": "1.3.10", + "saveTS": "20180731225026", + "language": "en", + "layout": { + "north": { + "size": 70, + "initClosed": false, + "initHidden": false + }, + "south": { + "size": 420, + "initClosed": false, + "initHidden": false, + "children": { + "layout1": { + "east": { + "size": 500, + "initClosed": false, + "initHidden": false + } + } + } + }, + "east": { + "size": 70, + "initClosed": true, + "initHidden": false, + "children": {} + }, + "west": { + "size": 200, + "initClosed": false, + "initHidden": false, + "children": { + "layout1": {} + } + } + } + }, + "Summary": { + "inpTotal": 38, + "outTotal": 37 + }, + "Devices": [ + { + "GUID": "6ad3c1a4-6870-3bf1-6d55-b9d991ba9dc0", + "id": "device_RevPiConnect_20171023_1_0_001", + "type": "BASE", + "productType": "105", + "position": "0", + "name": "RevPi Connect V1.0", + "bmk": "RevPi Connect V1.0", + "inpVariant": 0, + "outVariant": 0, + "comment": "This is a RevPi Connect", + "offset": 0, + "inp": { + "0": [ + "RevPiStatus", + "0", + "8", + "0", + true, + "0000", + "", + "" + ], + "1": [ + "RevPiIOCycle", + "0", + "8", + "1", + true, + "0001", + "", + "" + ], + "2": [ + "RS485ErrorCnt", + "0", + "16", + "2", + false, + "0002", + "", + "" + ], + "3": [ + "Core_Temperature", + "0", + "8", + "4", + false, + "0003", + "", + "" + ], + "4": [ + "Core_Frequency", + "0", + "8", + "5", + false, + "0004", + "", + "" + ] + }, + "out": { + "0": [ + "RevPiLED", + "0", + "8", + "6", + true, + "0005", + "", + "" + ], + "1": [ + "RS485ErrorLimit1", + "10", + "16", + "7", + false, + "0006", + "", + "" + ], + "2": [ + "RS485ErrorLimit2", + "1000", + "16", + "9", + false, + "0007", + "", + "" + ] + }, + "mem": {}, + "extend": {} + }, + { + "GUID": "437fb6d7-6ef6-8fc8-0bf2-f618576e1aca", + "id": "device_RevPiConBT_20180425_1_0_001", + "type": "RIGHT", + "productType": "111", + "position": "32", + "name": "Connect Bluetooth", + "bmk": "Connect Bluetooth", + "inpVariant": 0, + "outVariant": 0, + "comment": "", + "offset": 11, + "inp": {}, + "out": {}, + "mem": {}, + "extend": {} + }, + { + "GUID": "2e9cd04b-b7e6-715a-4925-82ffbf0ff45e", + "id": "device_Virtual01_20160818_1_0_001", + "type": "VIRTUAL", + "productType": "32768", + "position": "64", + "name": "Virtual Device 32 Byte", + "bmk": "Virtual Device 32 Byte", + "inpVariant": 0, + "outVariant": 0, + "comment": "Virtual Device to reserve space in process image for user applications", + "offset": 11, + "inp": { + "0": [ + "Input_1", + "0", + "8", + "0", + false, + "0000", + "", + "" + ], + "1": [ + "Input_2", + "0", + "8", + "1", + false, + "0001", + "", + "" + ], + "2": [ + "Input_3", + "0", + "8", + "2", + false, + "0002", + "", + "" + ], + "3": [ + "Input_4", + "0", + "8", + "3", + false, + "0003", + "", + "" + ], + "4": [ + "Input_5", + "0", + "8", + "4", + false, + "0004", + "", + "" + ], + "5": [ + "Input_6", + "0", + "8", + "5", + false, + "0005", + "", + "" + ], + "6": [ + "Input_7", + "0", + "8", + "6", + false, + "0006", + "", + "" + ], + "7": [ + "Input_8", + "0", + "8", + "7", + false, + "0007", + "", + "" + ], + "8": [ + "Input_9", + "0", + "8", + "8", + false, + "0008", + "", + "" + ], + "9": [ + "Input_10", + "0", + "8", + "9", + false, + "0009", + "", + "" + ], + "10": [ + "Input_11", + "0", + "8", + "10", + false, + "0010", + "", + "" + ], + "11": [ + "Input_12", + "0", + "8", + "11", + false, + "0011", + "", + "" + ], + "12": [ + "Input_13", + "0", + "8", + "12", + false, + "0012", + "", + "" + ], + "13": [ + "Input_14", + "0", + "8", + "13", + false, + "0013", + "", + "" + ], + "14": [ + "Input_15", + "0", + "8", + "14", + false, + "0014", + "", + "" + ], + "15": [ + "Input_16", + "0", + "8", + "15", + false, + "0015", + "", + "" + ], + "16": [ + "Input_17", + "0", + "8", + "16", + false, + "0016", + "", + "" + ], + "17": [ + "Input_18", + "0", + "8", + "17", + false, + "0017", + "", + "" + ], + "18": [ + "Input_19", + "0", + "8", + "18", + false, + "0018", + "", + "" + ], + "19": [ + "Input_20", + "0", + "8", + "19", + false, + "0019", + "", + "" + ], + "20": [ + "Input_21", + "0", + "8", + "20", + false, + "0020", + "", + "" + ], + "21": [ + "Input_22", + "0", + "8", + "21", + false, + "0021", + "", + "" + ], + "22": [ + "Input_23", + "0", + "8", + "22", + false, + "0022", + "", + "" + ], + "23": [ + "Input_24", + "0", + "8", + "23", + false, + "0023", + "", + "" + ], + "24": [ + "Input_25", + "0", + "8", + "24", + false, + "0024", + "", + "" + ], + "25": [ + "Input_26", + "0", + "8", + "25", + false, + "0025", + "", + "" + ], + "26": [ + "Input_27", + "0", + "8", + "26", + false, + "0026", + "", + "" + ], + "27": [ + "Input_28", + "0", + "8", + "27", + false, + "0027", + "", + "" + ], + "28": [ + "Input_29", + "0", + "8", + "28", + false, + "0028", + "", + "" + ], + "29": [ + "Input_30", + "0", + "8", + "29", + false, + "0029", + "", + "" + ], + "30": [ + "Input_31", + "0", + "8", + "30", + false, + "0030", + "", + "" + ], + "31": [ + "Input_32", + "0", + "8", + "31", + false, + "0031", + "", + "" + ] + }, + "out": { + "0": [ + "Output_1", + "0", + "8", + "32", + false, + "0032", + "", + "" + ], + "1": [ + "Output_2", + "0", + "8", + "33", + false, + "0033", + "", + "" + ], + "2": [ + "Output_3", + "0", + "8", + "34", + false, + "0034", + "", + "" + ], + "3": [ + "Output_4", + "0", + "8", + "35", + false, + "0035", + "", + "" + ], + "4": [ + "Output_5", + "0", + "8", + "36", + false, + "0036", + "", + "" + ], + "5": [ + "Output_6", + "0", + "8", + "37", + false, + "0037", + "", + "" + ], + "6": [ + "Output_7", + "0", + "8", + "38", + false, + "0038", + "", + "" + ], + "7": [ + "Output_8", + "0", + "8", + "39", + false, + "0039", + "", + "" + ], + "8": [ + "Output_9", + "0", + "8", + "40", + false, + "0040", + "", + "" + ], + "9": [ + "Output_10", + "0", + "8", + "41", + false, + "0041", + "", + "" + ], + "10": [ + "Output_11", + "0", + "8", + "42", + false, + "0042", + "", + "" + ], + "11": [ + "Output_12", + "0", + "8", + "43", + false, + "0043", + "", + "" + ], + "12": [ + "Output_13", + "0", + "8", + "44", + false, + "0044", + "", + "" + ], + "13": [ + "Output_14", + "0", + "8", + "45", + false, + "0045", + "", + "" + ], + "14": [ + "Output_15", + "0", + "8", + "46", + false, + "0046", + "", + "" + ], + "15": [ + "Output_16", + "0", + "8", + "47", + false, + "0047", + "", + "" + ], + "16": [ + "Output_17", + "0", + "8", + "48", + false, + "0048", + "", + "" + ], + "17": [ + "Output_18", + "0", + "8", + "49", + false, + "0049", + "", + "" + ], + "18": [ + "Output_19", + "0", + "8", + "50", + false, + "0050", + "", + "" + ], + "19": [ + "Output_20", + "0", + "8", + "51", + false, + "0051", + "", + "" + ], + "20": [ + "Output_21", + "0", + "8", + "52", + false, + "0052", + "", + "" + ], + "21": [ + "Output_22", + "0", + "8", + "53", + false, + "0053", + "", + "" + ], + "22": [ + "Output_23", + "0", + "8", + "54", + false, + "0054", + "", + "" + ], + "23": [ + "Output_24", + "0", + "8", + "55", + false, + "0055", + "", + "" + ], + "24": [ + "Output_25", + "0", + "8", + "56", + false, + "0056", + "", + "" + ], + "25": [ + "Output_26", + "0", + "8", + "57", + false, + "0057", + "", + "" + ], + "26": [ + "Output_27", + "0", + "8", + "58", + false, + "0058", + "", + "" + ], + "27": [ + "Output_28", + "0", + "8", + "59", + false, + "0059", + "", + "" + ], + "28": [ + "Output_29", + "0", + "8", + "60", + false, + "0060", + "", + "" + ], + "29": [ + "Output_30", + "0", + "8", + "61", + false, + "0061", + "", + "" + ], + "30": [ + "Output_31", + "0", + "8", + "62", + false, + "0062", + "", + "" + ], + "31": [ + "Output_32", + "0", + "8", + "63", + false, + "0063", + "", + "" + ] + }, + "mem": {}, + "extend": {} + } + ], + "Connections": [] +} diff --git a/tests/revpi3/config_connect_left.rsc b/tests/revpi3/config_connect_left.rsc new file mode 100644 index 0000000..3b2e2be --- /dev/null +++ b/tests/revpi3/config_connect_left.rsc @@ -0,0 +1,1698 @@ +{ + "App": { + "name": "PiCtory", + "version": "1.3.10", + "saveTS": "20180801144100", + "language": "en", + "layout": { + "north": { + "size": 70, + "initClosed": false, + "initHidden": false + }, + "south": { + "size": 420, + "initClosed": false, + "initHidden": false, + "children": { + "layout1": { + "east": { + "size": 500, + "initClosed": false, + "initHidden": false + } + } + } + }, + "east": { + "size": 70, + "initClosed": true, + "initHidden": false, + "children": {} + }, + "west": { + "size": 200, + "initClosed": false, + "initHidden": false, + "children": { + "layout1": {} + } + } + } + }, + "Summary": { + "inpTotal": 108, + "outTotal": 55 + }, + "Devices": [ + { + "GUID": "9e33e8d2-3775-0c8e-14f1-85bf5d05a514", + "id": "device_RevPiDIO_20160818_1_0_001", + "type": "LEFT_RIGHT", + "productType": "96", + "position": "31", + "name": "RevPi DIO", + "bmk": "RevPi DIO", + "inpVariant": 0, + "outVariant": 0, + "comment": "", + "offset": 0, + "inp": { + "0": [ + "I_1", + "0", + "1", + "0", + true, + "0000", + "", + "0" + ], + "1": [ + "I_2", + "0", + "1", + "0", + true, + "0001", + "", + "1" + ], + "2": [ + "I_3", + "0", + "1", + "0", + true, + "0002", + "", + "2" + ], + "3": [ + "I_4", + "0", + "1", + "0", + true, + "0003", + "", + "3" + ], + "4": [ + "I_5", + "0", + "1", + "0", + true, + "0004", + "", + "4" + ], + "5": [ + "I_6", + "0", + "1", + "0", + true, + "0005", + "", + "5" + ], + "6": [ + "I_7", + "0", + "1", + "0", + true, + "0006", + "", + "6" + ], + "7": [ + "I_8", + "0", + "1", + "0", + true, + "0007", + "", + "7" + ], + "8": [ + "I_9", + "0", + "1", + "0", + true, + "0008", + "", + "8" + ], + "9": [ + "I_10", + "0", + "1", + "0", + true, + "0009", + "", + "9" + ], + "10": [ + "I_11", + "0", + "1", + "0", + true, + "0010", + "", + "10" + ], + "11": [ + "I_12", + "0", + "1", + "0", + true, + "0011", + "", + "11" + ], + "12": [ + "I_13", + "0", + "1", + "0", + true, + "0012", + "", + "12" + ], + "13": [ + "I_14", + "0", + "1", + "0", + true, + "0013", + "", + "13" + ], + "14": [ + "I_15", + "0", + "1", + "0", + true, + "0014", + "", + "14" + ], + "15": [ + "I_16", + "0", + "1", + "0", + true, + "0015", + "", + "15" + ], + "16": [ + "Output_Status", + "0", + "16", + "2", + false, + "0016", + "", + "" + ], + "17": [ + "Status", + "0", + "16", + "4", + false, + "0017", + "", + "" + ], + "18": [ + "Counter_1", + "0", + "32", + "6", + false, + "0018", + "", + "" + ], + "19": [ + "Counter_2", + "0", + "32", + "10", + false, + "0019", + "", + "" + ], + "20": [ + "Counter_3", + "0", + "32", + "14", + false, + "0020", + "", + "" + ], + "21": [ + "Counter_4", + "0", + "32", + "18", + false, + "0021", + "", + "" + ], + "22": [ + "Counter_5", + "0", + "32", + "22", + false, + "0022", + "", + "" + ], + "23": [ + "Counter_6", + "0", + "32", + "26", + false, + "0023", + "", + "" + ], + "24": [ + "Counter_7", + "0", + "32", + "30", + false, + "0024", + "", + "" + ], + "25": [ + "Counter_8", + "0", + "32", + "34", + false, + "0025", + "", + "" + ], + "26": [ + "Counter_9", + "0", + "32", + "38", + false, + "0026", + "", + "" + ], + "27": [ + "Counter_10", + "0", + "32", + "42", + false, + "0027", + "", + "" + ], + "28": [ + "Counter_11", + "0", + "32", + "46", + false, + "0028", + "", + "" + ], + "29": [ + "Counter_12", + "0", + "32", + "50", + false, + "0029", + "", + "" + ], + "30": [ + "Counter_13", + "0", + "32", + "54", + false, + "0030", + "", + "" + ], + "31": [ + "Counter_14", + "0", + "32", + "58", + false, + "0031", + "", + "" + ], + "32": [ + "Counter_15", + "0", + "32", + "62", + false, + "0032", + "", + "" + ], + "33": [ + "Counter_16", + "0", + "32", + "66", + false, + "0033", + "", + "" + ] + }, + "out": { + "0": [ + "O_1", + "0", + "1", + "70", + true, + "0034", + "", + "0" + ], + "1": [ + "O_2", + "0", + "1", + "70", + true, + "0035", + "", + "1" + ], + "2": [ + "O_3", + "0", + "1", + "70", + true, + "0036", + "", + "2" + ], + "3": [ + "O_4", + "0", + "1", + "70", + true, + "0037", + "", + "3" + ], + "4": [ + "O_5", + "0", + "1", + "70", + true, + "0038", + "", + "4" + ], + "5": [ + "O_6", + "0", + "1", + "70", + true, + "0039", + "", + "5" + ], + "6": [ + "O_7", + "0", + "1", + "70", + true, + "0040", + "", + "6" + ], + "7": [ + "O_8", + "0", + "1", + "70", + true, + "0041", + "", + "7" + ], + "8": [ + "O_9", + "0", + "1", + "70", + true, + "0042", + "", + "8" + ], + "9": [ + "O_10", + "0", + "1", + "70", + true, + "0043", + "", + "9" + ], + "10": [ + "O_11", + "0", + "1", + "70", + true, + "0044", + "", + "10" + ], + "11": [ + "O_12", + "0", + "1", + "70", + true, + "0045", + "", + "11" + ], + "12": [ + "O_13", + "0", + "1", + "70", + true, + "0046", + "", + "12" + ], + "13": [ + "O_14", + "0", + "1", + "70", + true, + "0047", + "", + "13" + ], + "14": [ + "O_15", + "0", + "1", + "70", + true, + "0048", + "", + "14" + ], + "15": [ + "O_16", + "0", + "1", + "70", + true, + "0049", + "", + "15" + ], + "16": [ + "PWM_1", + "0", + "8", + "72", + false, + "0050", + "", + "" + ], + "17": [ + "PWM_2", + "0", + "8", + "73", + false, + "0051", + "", + "" + ], + "18": [ + "PWM_3", + "0", + "8", + "74", + false, + "0052", + "", + "" + ], + "19": [ + "PWM_4", + "0", + "8", + "75", + false, + "0053", + "", + "" + ], + "20": [ + "PWM_5", + "0", + "8", + "76", + false, + "0054", + "", + "" + ], + "21": [ + "PWM_6", + "0", + "8", + "77", + false, + "0055", + "", + "" + ], + "22": [ + "PWM_7", + "0", + "8", + "78", + false, + "0056", + "", + "" + ], + "23": [ + "PWM_8", + "0", + "8", + "79", + false, + "0057", + "", + "" + ], + "24": [ + "PWM_9", + "0", + "8", + "80", + false, + "0058", + "", + "" + ], + "25": [ + "PWM_10", + "0", + "8", + "81", + false, + "0059", + "", + "" + ], + "26": [ + "PWM_11", + "0", + "8", + "82", + false, + "0060", + "", + "" + ], + "27": [ + "PWM_12", + "0", + "8", + "83", + false, + "0061", + "", + "" + ], + "28": [ + "PWM_13", + "0", + "8", + "84", + false, + "0062", + "", + "" + ], + "29": [ + "PWM_14", + "0", + "8", + "85", + false, + "0063", + "", + "" + ], + "30": [ + "PWM_15", + "0", + "8", + "86", + false, + "0064", + "", + "" + ], + "31": [ + "PWM_16", + "0", + "8", + "87", + false, + "0065", + "", + "" + ] + }, + "mem": { + "0": [ + "InputMode_1", + "0", + "8", + "88", + false, + "0066", + "", + "" + ], + "1": [ + "InputMode_2", + "0", + "8", + "89", + false, + "0067", + "", + "" + ], + "2": [ + "InputMode_3", + "0", + "8", + "90", + false, + "0068", + "", + "" + ], + "3": [ + "InputMode_4", + "0", + "8", + "91", + false, + "0069", + "", + "" + ], + "4": [ + "InputMode_5", + "0", + "8", + "92", + false, + "0070", + "", + "" + ], + "5": [ + "InputMode_6", + "0", + "8", + "93", + false, + "0071", + "", + "" + ], + "6": [ + "InputMode_7", + "0", + "8", + "94", + false, + "0072", + "", + "" + ], + "7": [ + "InputMode_8", + "0", + "8", + "95", + false, + "0073", + "", + "" + ], + "8": [ + "InputMode_9", + "0", + "8", + "96", + false, + "0074", + "", + "" + ], + "9": [ + "InputMode_10", + "0", + "8", + "97", + false, + "0075", + "", + "" + ], + "10": [ + "InputMode_11", + "0", + "8", + "98", + false, + "0076", + "", + "" + ], + "11": [ + "InputMode_12", + "0", + "8", + "99", + false, + "0077", + "", + "" + ], + "12": [ + "InputMode_13", + "0", + "8", + "100", + false, + "0078", + "", + "" + ], + "13": [ + "InputMode_14", + "0", + "8", + "101", + false, + "0079", + "", + "" + ], + "14": [ + "InputMode_15", + "0", + "8", + "102", + false, + "0080", + "", + "" + ], + "15": [ + "InputMode_16", + "0", + "8", + "103", + false, + "0081", + "", + "" + ], + "16": [ + "InputDebounce", + "0", + "16", + "104", + false, + "0082", + "", + "" + ], + "17": [ + "OutputPushPull", + "0", + "16", + "106", + false, + "0083", + "", + "" + ], + "18": [ + "OutputOpenLoadDetect", + "0", + "16", + "108", + false, + "0084", + "", + "" + ], + "19": [ + "OutputPWMActive", + "0", + "16", + "110", + false, + "0085", + "", + "" + ], + "20": [ + "OutputPWMFrequency", + "1", + "8", + "112", + false, + "0086", + "", + "" + ] + }, + "extend": {} + }, + { + "GUID": "6ad3c1a4-6870-3bf1-6d55-b9d991ba9dc0", + "id": "device_RevPiConnect_20171023_1_0_001", + "type": "BASE", + "productType": "105", + "position": "0", + "name": "RevPi Connect V1.0", + "bmk": "RevPi Connect V1.0", + "inpVariant": 0, + "outVariant": 0, + "comment": "This is a RevPi Connect", + "offset": 113, + "inp": { + "0": [ + "RevPiStatus", + "0", + "8", + "0", + true, + "0000", + "", + "" + ], + "1": [ + "RevPiIOCycle", + "0", + "8", + "1", + true, + "0001", + "", + "" + ], + "2": [ + "RS485ErrorCnt", + "0", + "16", + "2", + false, + "0002", + "", + "" + ], + "3": [ + "Core_Temperature", + "0", + "8", + "4", + false, + "0003", + "", + "" + ], + "4": [ + "Core_Frequency", + "0", + "8", + "5", + false, + "0004", + "", + "" + ] + }, + "out": { + "0": [ + "RevPiLED", + "0", + "8", + "6", + true, + "0005", + "", + "" + ], + "1": [ + "RS485ErrorLimit1", + "10", + "16", + "7", + false, + "0006", + "", + "" + ], + "2": [ + "RS485ErrorLimit2", + "1000", + "16", + "9", + false, + "0007", + "", + "" + ] + }, + "mem": {}, + "extend": {} + }, + { + "GUID": "2e9cd04b-b7e6-715a-4925-82ffbf0ff45e", + "id": "device_Virtual01_20160818_1_0_001", + "type": "VIRTUAL", + "productType": "32768", + "position": "64", + "name": "Virtual Device 32 Byte", + "bmk": "Virtual Device 32 Byte", + "inpVariant": 0, + "outVariant": 0, + "comment": "Virtual Device to reserve space in process image for user applications", + "offset": 124, + "inp": { + "0": [ + "Input_1", + "0", + "8", + "0", + false, + "0000", + "", + "" + ], + "1": [ + "Input_2", + "0", + "8", + "1", + false, + "0001", + "", + "" + ], + "2": [ + "Input_3", + "0", + "8", + "2", + false, + "0002", + "", + "" + ], + "3": [ + "Input_4", + "0", + "8", + "3", + false, + "0003", + "", + "" + ], + "4": [ + "Input_5", + "0", + "8", + "4", + false, + "0004", + "", + "" + ], + "5": [ + "Input_6", + "0", + "8", + "5", + false, + "0005", + "", + "" + ], + "6": [ + "Input_7", + "0", + "8", + "6", + false, + "0006", + "", + "" + ], + "7": [ + "Input_8", + "0", + "8", + "7", + false, + "0007", + "", + "" + ], + "8": [ + "Input_9", + "0", + "8", + "8", + false, + "0008", + "", + "" + ], + "9": [ + "Input_10", + "0", + "8", + "9", + false, + "0009", + "", + "" + ], + "10": [ + "Input_11", + "0", + "8", + "10", + false, + "0010", + "", + "" + ], + "11": [ + "Input_12", + "0", + "8", + "11", + false, + "0011", + "", + "" + ], + "12": [ + "Input_13", + "0", + "8", + "12", + false, + "0012", + "", + "" + ], + "13": [ + "Input_14", + "0", + "8", + "13", + false, + "0013", + "", + "" + ], + "14": [ + "Input_15", + "0", + "8", + "14", + false, + "0014", + "", + "" + ], + "15": [ + "Input_16", + "0", + "8", + "15", + false, + "0015", + "", + "" + ], + "16": [ + "Input_17", + "0", + "8", + "16", + false, + "0016", + "", + "" + ], + "17": [ + "Input_18", + "0", + "8", + "17", + false, + "0017", + "", + "" + ], + "18": [ + "Input_19", + "0", + "8", + "18", + false, + "0018", + "", + "" + ], + "19": [ + "Input_20", + "0", + "8", + "19", + false, + "0019", + "", + "" + ], + "20": [ + "Input_21", + "0", + "8", + "20", + false, + "0020", + "", + "" + ], + "21": [ + "Input_22", + "0", + "8", + "21", + false, + "0021", + "", + "" + ], + "22": [ + "Input_23", + "0", + "8", + "22", + false, + "0022", + "", + "" + ], + "23": [ + "Input_24", + "0", + "8", + "23", + false, + "0023", + "", + "" + ], + "24": [ + "Input_25", + "0", + "8", + "24", + false, + "0024", + "", + "" + ], + "25": [ + "Input_26", + "0", + "8", + "25", + false, + "0025", + "", + "" + ], + "26": [ + "Input_27", + "0", + "8", + "26", + false, + "0026", + "", + "" + ], + "27": [ + "Input_28", + "0", + "8", + "27", + false, + "0027", + "", + "" + ], + "28": [ + "Input_29", + "0", + "8", + "28", + false, + "0028", + "", + "" + ], + "29": [ + "Input_30", + "0", + "8", + "29", + false, + "0029", + "", + "" + ], + "30": [ + "Input_31", + "0", + "8", + "30", + false, + "0030", + "", + "" + ], + "31": [ + "Input_32", + "0", + "8", + "31", + false, + "0031", + "", + "" + ] + }, + "out": { + "0": [ + "Output_1", + "0", + "8", + "32", + false, + "0032", + "", + "" + ], + "1": [ + "Output_2", + "0", + "8", + "33", + false, + "0033", + "", + "" + ], + "2": [ + "Output_3", + "0", + "8", + "34", + false, + "0034", + "", + "" + ], + "3": [ + "Output_4", + "0", + "8", + "35", + false, + "0035", + "", + "" + ], + "4": [ + "Output_5", + "0", + "8", + "36", + false, + "0036", + "", + "" + ], + "5": [ + "Output_6", + "0", + "8", + "37", + false, + "0037", + "", + "" + ], + "6": [ + "Output_7", + "0", + "8", + "38", + false, + "0038", + "", + "" + ], + "7": [ + "Output_8", + "0", + "8", + "39", + false, + "0039", + "", + "" + ], + "8": [ + "Output_9", + "0", + "8", + "40", + false, + "0040", + "", + "" + ], + "9": [ + "Output_10", + "0", + "8", + "41", + false, + "0041", + "", + "" + ], + "10": [ + "Output_11", + "0", + "8", + "42", + false, + "0042", + "", + "" + ], + "11": [ + "Output_12", + "0", + "8", + "43", + false, + "0043", + "", + "" + ], + "12": [ + "Output_13", + "0", + "8", + "44", + false, + "0044", + "", + "" + ], + "13": [ + "Output_14", + "0", + "8", + "45", + false, + "0045", + "", + "" + ], + "14": [ + "Output_15", + "0", + "8", + "46", + false, + "0046", + "", + "" + ], + "15": [ + "Output_16", + "0", + "8", + "47", + false, + "0047", + "", + "" + ], + "16": [ + "Output_17", + "0", + "8", + "48", + false, + "0048", + "", + "" + ], + "17": [ + "Output_18", + "0", + "8", + "49", + false, + "0049", + "", + "" + ], + "18": [ + "Output_19", + "0", + "8", + "50", + false, + "0050", + "", + "" + ], + "19": [ + "Output_20", + "0", + "8", + "51", + false, + "0051", + "", + "" + ], + "20": [ + "Output_21", + "0", + "8", + "52", + false, + "0052", + "", + "" + ], + "21": [ + "Output_22", + "0", + "8", + "53", + false, + "0053", + "", + "" + ], + "22": [ + "Output_23", + "0", + "8", + "54", + false, + "0054", + "", + "" + ], + "23": [ + "Output_24", + "0", + "8", + "55", + false, + "0055", + "", + "" + ], + "24": [ + "Output_25", + "0", + "8", + "56", + false, + "0056", + "", + "" + ], + "25": [ + "Output_26", + "0", + "8", + "57", + false, + "0057", + "", + "" + ], + "26": [ + "Output_27", + "0", + "8", + "58", + false, + "0058", + "", + "" + ], + "27": [ + "Output_28", + "0", + "8", + "59", + false, + "0059", + "", + "" + ], + "28": [ + "Output_29", + "0", + "8", + "60", + false, + "0060", + "", + "" + ], + "29": [ + "Output_30", + "0", + "8", + "61", + false, + "0061", + "", + "" + ], + "30": [ + "Output_31", + "0", + "8", + "62", + false, + "0062", + "", + "" + ], + "31": [ + "Output_32", + "0", + "8", + "63", + false, + "0063", + "", + "" + ] + }, + "mem": {}, + "extend": {} + } + ], + "Connections": [] +} diff --git a/tests/revpi3/test_connect.py b/tests/revpi3/test_connect.py new file mode 100644 index 0000000..d269e1c --- /dev/null +++ b/tests/revpi3/test_connect.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +"""Tests for RevPi 4 devices.""" +__author__ = "Sven Sager" +__copyright__ = "Copyright (C) 2024 Sven Sager" +__license__ = "GPLv2" + +from os.path import dirname + +from revpimodio2 import BLUE +from tests import TestRevPiModIO + + +class TestRevPiConnect(TestRevPiModIO): + + data_dir = dirname(__file__) + + def test_connect(self): + """Test Connect functions.""" + for conf in ["config_connect.rsc", "config_connect_left.rsc"]: + rpi = self.modio(configrsc=conf) + + def get_led_byte(): + self.fh_procimg.seek(6 if conf == "config_connect.rsc" else 119) + return self.fh_procimg.read(1) + + # A3 am Connect testen + rpi.core.A3 = 0 + self.assertEqual(rpi.core.A3, 0) + rpi.core.A3 = 1 + self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x10") + self.assertEqual(rpi.core.A3, 1) + rpi.writeprocimg() + self.assertEqual(get_led_byte(), b"\x10") + + rpi.core.A2 = 0 + rpi.core.A2 = 1 + rpi.core.A3 = 2 + self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x24") + self.assertEqual(rpi.core.A3, 2) + rpi.writeprocimg() + self.assertEqual(get_led_byte(), b"\x24") + + rpi.core.A1 = 0 + rpi.core.A1 = 2 + self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x26") + rpi.writeprocimg() + self.assertEqual(get_led_byte(), b"\x26") + with self.assertRaises(ValueError): + rpi.core.A3 = BLUE + + # Direkte Zuweisung darf nicht funktionieren + with self.assertRaises(AttributeError): + rpi.core.a3green = True + with self.assertRaises(AttributeError): + rpi.core.a3green = True + with self.assertRaises(AttributeError): + rpi.core.wd = True + with self.assertRaises(AttributeError): + rpi.core.x2out = True + with self.assertRaises(AttributeError): + rpi.core.x2in = True + + # Test Hardware watchdog + rpi.core.wd.value = True + # Value: A1 = RED, A2 = GREEN, A3=RED + Bit 7 + self.assertEqual(rpi.io.RevPiLED.get_value(), b"\xa6") + + # Test output on connector X2 (Bit 6 on RevPiLED) + self.assertFalse(rpi.core.x2out.value) + rpi.core.x2out.value = True + # Value: A1 = RED, A2 = GREEN, A3=RED + WD=True + Bit 6 + self.assertEqual(rpi.io.RevPiLED.get_value(), b"\xe6") + rpi.writeprocimg() + self.assertEqual(get_led_byte(), b"\xe6") + self.assertTrue(rpi.core.x2out.value) + + # Test Input on connector X2 (Bit 6 on RevPiStatus) + rpi.readprocimg() + self.assertFalse(rpi.core.x2in.value) + self.fh_procimg.seek(0 if conf == "config_connect.rsc" else 113) + self.fh_procimg.write(b"\x40") + rpi.readprocimg() + self.assertTrue(rpi.core.x2in.value)