假设有一个测试项的名称为 OS_PMU
OS_PMU测试项
vItem 获取测试项信息
uint8_t HardWareBIN = vItem->OS_PMU.Hbin;
uint8_t SoftWareBIN = vItem->OS_PMU.Sbin;
注意: 测试项的信息只能读取不能修改. 如果需要修改测试项的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;
}
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电流档位