''' Author: shenghao.xu Date: 2023-04-04 08:24:17 LastEditors: Please set LastEditors LastEditTime: 2023-10-10 11:03:28 Description: email:545403892@qq.com Copyright (c) 2023 by shenghao.xu, All Rights Reserved. ''' import unittest import entity from ctypes import * from ctypes import cdll from pkg.common import print_hex_space import pkg.common as common case_count = 0 class TestMasterCases(unittest.TestCase): def init(cls): cls.dll = cdll.LoadLibrary('./epm.dll') cls.handle = entity.agreement_init() cls.handle.set_master() cls.dll.pbuf_initz() ret = cls.dll.agreement_init(byref(cls.handle)) cls.assertTrue(bool(ret), "agreement_init failed") pass def uart_reg(self): ret = self.dll.uart_init(self.dll.agreement_master_rsp) self.assertTrue(bool(ret), "uart_init failed") pass @classmethod def setUpClass(cls) -> None: cls.init(cls) print('[TestMasterCases] Master模块开始测试...') print('----------------------------------------------------') pass @classmethod def tearDownClass(cls) -> None: print('[TestMasterCases] 结束测试,测试用例%d个' % case_count) print('----------------------------------------------------') pass def setUp(self) -> None: global case_count case_count += 1 pass def tearDown(self) -> None: # print("\r") pass # def testMasterHandle(self): # pass # def testMasterCommand0(self): # 复位设备 # print('Command 0 复位设备', end=" : ") # self.handle.request.set_command(0x00) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand0 failed") # pass # def testMasterCommand1(self): # 查询IP输入电流 # print('Command 1 查询IP输入电流', end=" : ") # self.handle.request.set_command(0x01) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand1 failed") # pass # def testMasterCommand2(self): # 调节IP输入电流 # print('Command 2 调节IP输入电流', end=" : ") # self.handle.request.set_command(0x02) # self.handle.request.data.adjust_ip_input_current.set(0.1) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand2 failed") # pass # def testMasterCommand3(self): # 查询状态 # print('Command 3 查询状态', end=" : ") # self.handle.request.set_command(0x03) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand3 failed") # pass # def testMasterCommand4(self): # 查询流程 # print('Command 4 查询流程', end=" : ") # self.handle.request.set_command(0x04) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand4 failed") # pass # def testMasterCommand5(self): # 配置流程 # print('Command 5 配置流程', end=" : ") # ret = self.dll.mock_command_req_config_process() # self.assertTrue(bool(ret), "testMasterCommand5 failed") # pass # def testMasterCommand6(self): # 执行流程 # print('Command 6 执行流程', end=" : ") # self.handle.request.set_command(0x06) # self.handle.request.data.execute_process.process_index = 0x00 # self.handle.request.data.execute_process.plan_index = 0x01 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand6 failed") # pass # def testMasterCommand7(self): # 停止流程 # print('Command 7 停止流程', end=" : ") # self.handle.request.set_command(0x07) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand7 failed") # pass # def testMasterCommand8(self): # 查询数据 # print('Command 8 查询数据', end=" : ") # self.handle.request.set_command(0x08) # self.handle.request.data.query_data.count = 2 # d1 = entity.query_data_t.query_data_sensor_t() # d1.sensor_class = entity.SENSOR_PRESSURE # d1.sensor_1 = 1 # d1.sensor_2 = 1 # d1.sensor_3 = 1 # d2 = entity.query_data_t.query_data_sensor_t() # d2.sensor_class = entity.SENSOR_MINOR_LOOP # d2.sensor_1 = 1 # d2.sensor_2 = 1 # self.handle.request.data.query_data.set_data((d1, d2)) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand8 failed") # pass # def testMasterCommand9(self): # 配置地址 # print('Command 9 配置地址', end=" : ") # self.handle.request.set_command(0x09) # self.handle.request.data.config_address.set_address("0002") # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand9 failed") # pass # def testMasterCommand10(self): # 查询地址 # print('Command 10 查询地址', end=" : ") # self.handle.request.set_command(0x0a) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand10 failed") # pass # def testMasterCommand11(self): # 标定传感器 # print('Command 11 标定传感器', end=" : ") # self.handle.request.set_command(0x0b) # self.handle.request.data.calibration_sensor.state = 0 # 0:零位 1:满值 # sensor = entity.query_data_t() # sensor.count = 2 # d1 = entity.query_data_t.query_data_sensor_t() # d1.sensor_class = entity.SENSOR_PRESSURE # d1.sensor_1 = 1 # d1.sensor_2 = 1 # d1.sensor_3 = 1 # d2 = entity.query_data_t.query_data_sensor_t() # d2.sensor_class = entity.SENSOR_FLOW # d2.sensor_1 = 1 # d2.sensor_2 = 1 # sensor.set_data((d1, d2)) # self.handle.request.data.calibration_sensor.sensor_data = sensor # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand11 failed") # pass # def testMasterCommand12(self): # 设置阀门状态 # print('Command 12 设置阀门状态', end=" : ") # self.handle.request.set_command(0x0C) # self.handle.request.data.set_valve.unit = 0x10 # self.handle.request.data.set_valve.status = 1 # self.handle.request.data.set_valve.index = 1 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand12 failed") # pass # def testMasterCommand13(self): # 查询比例阀 # print('Command 13 查询比例阀', end=" : ") # self.handle.request.set_command(0x0D) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand13 failed") # pass # def testMasterCommand14(self): # 设置比例阀 # print('Command 14 设置比例阀', end=" : ") # self.handle.request.set_command(0x0E) # self.handle.request.data.set_valve_ratio.value = 1000 # self.handle.request.data.set_valve_ratio.pid_sensor_class = entity.SENSOR_PRESSURE # self.handle.request.data.set_valve_ratio.pid_sensor_no = 1 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand14 failed") # pass # def testMasterCommand15(self): # 设置步进电机 # print('Command 15 设置步进电机', end=" : ") # self.handle.request.set_command(0x0F) # self.handle.request.data.stepper_motor.dir = 1 # self.handle.request.data.stepper_motor.angle = 90 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand15 failed") # pass # def testMasterCommand16(self): # 查询I/P 输入PWM占空比 # print('Command 16 查询I/P 输入PWM占空比', end=" : ") # self.handle.request.set_command(0x10) # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand16 failed") # pass # def testMasterCommand17(self): # 调节I/P 输入PWM占空比 # print('Command 17 调节I/P 输入PWM占空比', end=" : ") # self.handle.request.set_command(0x11) # self.handle.request.data.adjust_ip_pwm_duty.percent = 0.5 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand17 failed") # pass def testMasterCommand18(self): # 设置I/P 模式 print('Command 18 设置I/P 模式', end=" : ") self.handle.request.set_command(0x12) # print("设置I/P 模式为:电流") # self.handle.request.data.ip_mode.mode = 1 # self.handle.request.data.ip_mode.data_length = 0 # self.handle.request.data.ip_mode.data = 0 # ret = self.dll.agreement_master_req(byref(self.handle.request)) # self.assertTrue(bool(ret), "testMasterCommand18 failed") print("设置I/P 模式为:PWM") self.handle.request.data.ip_mode.mode = 2 self.handle.request.data.ip_mode.data_length = 1 self.handle.request.data.ip_mode.data = 9 # 1-32 khz ret = self.dll.agreement_master_req(byref(self.handle.request)) self.assertTrue(bool(ret), "testMasterCommand18 failed") pass def testMasterCommand19(self): # 查询I/P 模式 print('Command 19 查询I/P 模式', end=" : ") self.handle.request.set_command(0x13) ret = self.dll.agreement_master_req(byref(self.handle.request)) self.assertTrue(bool(ret), "testMasterCommand19 failed") pass if __name__ == '__main__': unittest.main()