ate_tbox
Version:
ATE TBox Api with nodejs
144 lines (116 loc) • 4.11 kB
Markdown
ATE TBox Api with nodejs
```shell
npm install ate_tbox
```
Host driver array, driver contents include:<br>
name: device/driver name.<br>
vendor: device vendor.<br>
library: driver library path.<br>
This function is used to establish a connection and intialize the Pass-Thru Device and setup connect protocol channel.<br>
library: String, device library path.<br>
return: int, 0 is success.<br>
This function is used to close the connection to a Pass-Thru Device.<br>
return: int, 0 is success.<br>
This function select drawer to connect.<br>
index: drawer index, range: 0 - 20, 0 is close all drawer connect.<br>
This function setup drawer dut power supply and protection Parameters.<br>
flags: dut power supply switch flags.<br>
limit_max: max current(mA), when the current is greater than that value, the power is off.<br>
limit_min: min current(mA), when the current is less than that value, the power is off.<br>
## Method: StartSingleTest(interval, eventCB)
This function is used to start single test.<br>
interval: drawer refresh interval(s).<br>
eventCB: event callback.<br>
## Method: StartMultiTest(interval, duration, flags, eventCB)
This function is used to start multi drawer test.<br>
interval: drawer refresh interval(s).<br>
duration: duration test time(s).<br>
flags: drawer refresh list flags.<br>
eventCB: event callback.<br>
## Method: StopMultiTest()
This function is used to stop multi drawer test.<br>
## CallBack: eventCB
Function to call when the dut information is updated or the test exits.
# Usage Example
```javascript
const AteApi = require('..');
function eventHandle(event) {
if ("update" == event.event) {
/* 更新dut信息 */
for(var i = 0; i < event.duts.length; i++){
console.log("<%d-%d>: sw[%d] avg[%d] min[%d] max[%d]",
event.index,
i,
event.duts[i].sw,
event.duts[i].avg,
event.duts[i].min,
event.duts[i].max);
}
} else if ("exit" == event.event) {
if (event.code == 0) {
console.log("test done");
} else {
console.log("User Request Exit");
}
/* 关闭设备 */
if (0 != AteApi.CloseDevice()) {
console.log("device close failure.");
} else {
console.log("device close success.");
}
} else {
console.log("undefinition event %s.", event.event);
}
}
function singleTest() {
var interval = 2;
if (0 != AteApi.StartSingleTest(interval, eventHandle)) {
console.log("Start Single Test failure.");
AteApi.CloseDevice();
process.exit();
}
}
function multiTest() {
var interval = 2;
var duration = 30;
var flags = 0x5;
if (0 != AteApi.StartMultiTest(interval, duration, flags, eventHandle)) {
console.log("Start Single Test failure.");
AteApi.CloseDevice();
process.exit();
}
}
function doTest() {
for(let i = 0; i < AteApi.drivers.length; i++){
console.log("Discover Driver: ", AteApi.drivers[i].name);
}
/* 打开设备 */
if (0 != AteApi.OpenDevice(AteApi.drivers[2].library)) {
console.log("device open failure.");
process.exit();
}
console.log("device open success.");
/* 选择通信抽屉 */
if (0 != AteApi.SelectDrawer(1)) {
console.log("Select Drawer failure.");
AteApi.CloseDevice();
process.exit();
}
/* 设置DUT电源 */
if (0 != AteApi.SetupDutPower(0xFFF, 800, 200)) {
console.log("Setup Dut Power failure.");
AteApi.CloseDevice();
process.exit();
}
//singleTest();
multiTest();
}
```