第三代测试机编程手册  1.0
载入中...
搜索中...
未找到
参数调用示例

假设有一个测试项的名称为 OS_PMU

OS_PMU测试项

vItem 获取测试项信息

uint8_t HardWareBIN = vItem->OS_PMU.Hbin; //获取 OS_PMU 测试项的硬件bin
uint8_t SoftWareBIN = vItem->OS_PMU.Sbin; //获取 OS_PMU 测试项的软件bin

注意: 测试项的信息只能读取不能修改. 如果需要修改测试项的bin值, 需要在上位机中修改之后, 再次生产程序.

vSubItem 获取测试参数

以该测试项为例

TestResult_t USER_OS_PMU(void)
{
//预定义结果为失败,比对测试子项值之后修改结果
TestResult_t result = TEST_FAIL;
//对测试子项赋值
vSubItem->OS_PMU.OUT0.Val = 10;
//使用循环, 对测试子项中的每个值赋值
for(uint8_t i = 0;i<vSubItem->OS_PMU.SubNum;i++)
{
vSubItem->OS_PMU.Arr[i]->Val = i / 2 - 1;
}
//自己手动判断一项测试值
if(vSubItem->OS_PMU.OUT0.Val > vSubItem->OS_PMU.OUT0.Min
&& vSubItem->OS_PMU.OUT0.Val < vSubItem->OS_PMU.OUT0.Max)
{
result = TEST_SUCCESS;
}
//使用内部封装的函数判断一项测试值
result = Data_InRange(&vSubItem->OS_PMU.OUT0);
//使用内部封装的函数判断该测试项的所有测试值
result = Data_AllInRange(vSubItem->OS_PMU.Arr,vSubItem->OS_PMU.SubNum);
//返回测试结果
return result;
}
TestResult_t Data_InRange(SubItemParam_t *item)
传入一个测试参数的指针,进行比较,不符合 Min<=Val<=Max 的返回1(失败),否则返回0(成功) 如果Val为nan,也返回1(失败)
TestResult_t Data_AllInRange(SubItemParam_t **arr, uint8_t len)
传入一个测项的参数的指针数组,进行比较,不符合 Min<=Val<=Max 的返回1(失败),否则返回0(成功) 如果Val为nan,也返回1(失败)

‍ 其中 TestResult_t 是一个枚举类型

typedef enum
{
TEST_SUCCESS = 0,
TEST_FAIL
}TestResult_t;

示例中的

vSubItem->OS_PMU.OUT0.Val = 10;vSubItem->OS_PMU.Arr[0]->Val = i / 2 - 1; 修改的都是 OUT0 这一项的测试值.

OS_PMU.Arr 数组是一个指针数组, 它指向 OS_PMU 中的测试子项的地址. 用代码表示, 等价于下面内容

typedef struct
{
uint8_t SubNum; // 测试子项数量
SubItemParam_t *Arr[16]; //数组定义,可通过该数组访问测试子项.例如在某些循环场景使用
SubItemParam_t OUT0; //测试子项参数
SubItemParam_t OUT1;
SubItemParam_t OUT2;
SubItemParam_t OUT3;
SubItemParam_t OUT4;
SubItemParam_t OUT5;
SubItemParam_t OUT6;
SubItemParam_t OUT7;
SubItemParam_t OUT8;
SubItemParam_t OUT9;
SubItemParam_t OUT10;
SubItemParam_t OUT11;
SubItemParam_t OUT12;
SubItemParam_t OUT13;
SubItemParam_t OUT14;
SubItemParam_t OUT15;
} OS_PMU_t;
vSubItem->OS_PMU.Arr[0] = & vSubItem->OS_PMU.OUT0
...
vSubItem->OS_PMU.Arr[15] = & vSubItem->OS_PMU.OUT15

vConst 获取常量数据

假设有一个常量 maxValue. 可以通过下面方式访问

vSubItem->OS_PMU.Arr[i]->Val = vConst->maxValue;

vExitRes 调用外部资源

EXTHV_SetOut(vExitRes->HV_CH1,EXTHV_MODE_FVCI,50,EXTHV_RNGI_1mA);

HV_CH1: 就是上位机配置的外部高压板的通道1

EXTHV_MODE_FVCI : 是输出模式

50: 表示50V

EXTHV_RNGI_1mA : 表示电流档位为1mA

宏定义调用内部资源

DPS_SetOut(DPS_VDD,DPS_MODE_FVCI,1000,DPS_RNGV_2V5,DPS_RNGI_100MA);
void DPS_SetOut(uint8_t ch, uint8_t mode, float set_mv_ua, uint8_t rangeV, uint8_t rangeI)
设置DPS输出值, 模式, 档位. 内置DPS_Enable功能.

DPS_VDD: 在 var.h 中由上位机根据用户配置的资源项生成的宏定义

DPS_VDD

DPS_MODE_FVCI: 输出模式

1000 : 输出1000mv

DPS_RNGV_2V5: 2.5V电压档位

DPS_RNGI_100MA 100mA电流档位