Egteks mPower1203 二次开发 Python 例程

Demo测试Python脚本:
#coding=utf-8
"""
本例程使用python控制Egteks公司的mPower1203设备,同时支持多路设备配置和电流数据采集
本例程演示同时采集3路mPower1203设备
本例程实测环境是python v2.7.18
库文件mPower1203.dll提供的API接口说明参考History文件

*************************************************************************************/
* Author:tommy.zhang@egteks.com
* Date :2022.04.16
*
*====================================================================================
*HISTORY
*------------------------------------------------------------------------------------
* V1.0 初版
*************************************************************************************/
"""

import os
import time
import clr

#常量数据定义
from collections import namedtuple
MPOWER_TYPE = namedtuple('MPOWER_TYPE','POWER AMPERE')._make(range(2))
MPOWER_POWER_MODE = namedtuple('MPOWER_POWER_MODE','AUTO NORMAL PERCISION ULTRA')._make(range(4))
MPOWER_AMPERE_MODE = namedtuple('MPOWER_AMPERE_MODE','AUTO NORMAL PERCISION')._make(range(3))
MPOWER_VOLTAGE = namedtuple('MPOWER_VOLTAGE','V0_6 V0_7 V0_8 V0_9 V1_0 V1_1 V1_2 V1_3 V1_4 V1_5 \
V1_6 V1_7 V1_8 V1_9 V2_0 V2_1 V2_2 V2_3 V2_4 V2_5 V2_6 V2_7 V2_8 V2_9 V3_0 V3_1 V3_2 V3_3 V3_4 V3_5 \
V3_6 V3_7 V3_8 V3_9 V4_0 V4_1 V4_2 V4_3 V4_4 V4_5 V4_6 V4_7 V4_8 V4_9 V5_0 V6_0 V7_0 V8_0 V9_0 V10 V11 V12 V13')._make(range(53))
MPOWER_POWER = namedtuple('MPOWER_POWER','OFF ON')._make(range(2))


#导入mPower1203动态库
clr.FindAssembly('mPower1203.dll')
from mPower1203 import *
mPower = ClassmPower()

#初始化动态库
Res = mPower.Init()
print Res

#配置第一路,COM口需要根据实际端口号调整
Ch1 = mPower.OpenPort("COM5")
print Ch1
#配置为电源模式
Res = mPower.SetType(Ch1,MPOWER_TYPE.POWER)
print Res
#设置输出电压为12v
Res = mPower.SetVoltage(Ch1,MPOWER_VOLTAGE.V12)
print Res
#打开电源输出开关
Res = mPower.SetPower(Ch1,MPOWER_POWER.ON)
print Res


#打开第二路,COM口需要根据实际端口号调整
Ch2 = mPower.OpenPort("COM12")
print Ch2
#配置为电源模式
Res = mPower.SetType(Ch2,MPOWER_TYPE.POWER)
print Res
#设置输出电压为12v
Res = mPower.SetVoltage(Ch2,MPOWER_VOLTAGE.V12)
print Res
#打开电源输出开关
Res = mPower.SetPower(Ch2,MPOWER_POWER.ON)
print Res


#打开第三路,COM口需要根据实际端口号调整
Ch3 = mPower.OpenPort("COM13")
print Ch3
#配置为电源模式
Res = mPower.SetType(Ch2,MPOWER_TYPE.POWER)
print Res
#设置输出电压为12v
Res = mPower.SetVoltage(Ch2,MPOWER_VOLTAGE.V12)
print Res
#打开电源输出开关
Res = mPower.SetPower(Ch2,MPOWER_POWER.ON)
print Res

#启动数据采样
Res = mPower.StartSample(Ch1)
print Res
time.sleep(1)
Res = mPower.StartSample(Ch2)
print Res
time.sleep(1)
Res = mPower.StartSample(Ch3)
print Res
time.sleep(1)

'''
说明:
1.这里为了演示采集数据所以使用log输出函数,正式使用场景下数据采集线程请勿输出log,避免丢数据
2.因为PC采集API调用速度可能会比实际设备采集数据速度快,所以可能会出现接收数据中存在多个时间
戳完全一样的数据,后续数据处理时丢弃掉重复的数据只保留一个即可
'''
while True:
Data1 = mPower.GetCurrent(Ch1)
Data2 = mPower.GetCurrent(Ch2)
Data3 = mPower.GetCurrent(Ch3)

#输出3个通道每次接收的数据个数,
#print('%d,%d,%d'%(len(Data1),len(Data2),len(Data3)))

#输出3个通道每次接收的第一个数据的时间戳(us)和电流(uA)
print('%d,%.3f,%d,%.3f,%d,%.3f'%(Data1[0],Data1[1],Data2[0],Data2[1],Data3[0],Data3[1]))



#停止数据采样
Res = mPower.StopSample(Ch1)
print Res
Res = mPower.StopSample(Ch2)
print Res
Res = mPower.StopSample(Ch3)
print Res

#关闭通道
Res = mPower.ClosePort(Ch1)
print Res
Res = mPower.ClosePort(Ch2)
print Res
Res = mPower.ClosePort(Ch3)
print Res
新产品,新功能,新资讯请扫码关注微信公众号:
/uploads/fox/13090008_0.jpg
0
分享 2022-05-21

0 个评论

要评论文章请先登录注册