Dia antes primera install
This commit is contained in:
51
node_modules/i2c-bus/integration-test/sync-many-instances.js
generated
vendored
Normal file
51
node_modules/i2c-bus/integration-test/sync-many-instances.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
'use strict';
|
||||
|
||||
const i2c = require('../');
|
||||
|
||||
const DS1621_ADDR = 0x48;
|
||||
const DS1621_CMD_ACCESS_TH = 0xa1;
|
||||
const DS1621_CMD_ACCESS_TL = 0xa2;
|
||||
|
||||
const TSL2561_ADDR = 0x39;
|
||||
const TSL2561_CMD = 0x80;
|
||||
const TSL2561_REG_ID = 0x0a;
|
||||
|
||||
const useBusMoreThanMaxFdTimes = _ => {
|
||||
// Assuming that less than 2000 files can be opened at the same time,
|
||||
// open and close /dev/i2c-1 2000 times to make sure it works and to ensure
|
||||
// that file descriptors are being freed.
|
||||
for (let i = 1; i <= 2000; i += 1) {
|
||||
const i2c1 = i2c.openSync(1);
|
||||
i2c1.readWordSync(DS1621_ADDR, DS1621_CMD_ACCESS_TL);
|
||||
i2c1.closeSync();
|
||||
}
|
||||
};
|
||||
|
||||
const useMultipleObjectsForSameBusConcurrently = _ => {
|
||||
const buses = [];
|
||||
|
||||
// Make sure many Bus objects can be opened and used for the same I2C bus at
|
||||
// the same time.
|
||||
for (let i = 1; i <= 128; i += 1) {
|
||||
buses.push(i2c.openSync(1));
|
||||
}
|
||||
buses.forEach(bus => bus.readWordSync(DS1621_ADDR, DS1621_CMD_ACCESS_TL));
|
||||
buses.forEach(bus => bus.closeSync());
|
||||
};
|
||||
|
||||
const useTwoObjectsForSameBusConcurrently = _ => {
|
||||
const ds1621 = i2c.openSync(1);
|
||||
const tsl2561 = i2c.openSync(1);
|
||||
const ds1621TempHigh = ds1621.readWordSync(DS1621_ADDR, DS1621_CMD_ACCESS_TH);
|
||||
const tsl2561Id = tsl2561.readByteSync(TSL2561_ADDR, TSL2561_CMD | TSL2561_REG_ID);
|
||||
|
||||
console.log(' ds1621TempHigh: ' + ds1621TempHigh);
|
||||
console.log(' tsl2561Id: ' + tsl2561Id);
|
||||
};
|
||||
|
||||
useBusMoreThanMaxFdTimes();
|
||||
useMultipleObjectsForSameBusConcurrently();
|
||||
useTwoObjectsForSameBusConcurrently();
|
||||
|
||||
console.log('ok - sync-many-instances');
|
||||
|
||||
Reference in New Issue
Block a user