node-web-i2c
Version:
I2C access with Node.js
126 lines (125 loc) • 3.54 kB
TypeScript
/** ポート番号 */
type PortNumber = number;
/** ポート名 */
type PortName = string;
/** I2C Slave アドレス */
type I2CSlaveAddress = number;
/**
* I2CAccess クラス
*/
export declare class I2CAccess {
private readonly _ports;
/**
* Creates an instance of GPIOAccess.
* @param ports ポート番号
*/
constructor(ports?: I2CPortMap);
/**
* ポート情報取得処理
* @return 現在のポート情報
*/
get ports(): I2CPortMap;
}
/** Different from Web I2C API specification. */
export declare class I2CPortMap extends Map<PortNumber, I2CPort> {
getByName(portName: PortName): I2CPort | undefined;
}
/**
* I2CPort クラス
*/
export declare class I2CPort {
private readonly _portNumber;
/**
* Creates an instance of GPIOPort.
* @param portNumber ポート番号
*/
constructor(portNumber: PortNumber);
/**
* ポート番号取得処理
* @return 現在のポート番号
*/
get portNumber(): PortNumber;
/**
* ポート名取得処理
* @return 現在のポート名
*/
get portName(): string;
/**
* I2CSlave 接続デバイスオープン処理
* @param slaveAddress 接続デバイス情報のアドレス
* @return I2CSlaveDevice インスタンスの生成の完了
*/
open(slaveAddress: I2CSlaveAddress): Promise<I2CSlaveDevice>;
}
/**
* I2CSlaveDevice クラス
*/
export interface I2CSlaveDevice {
/** I2C Slave アドレス */
readonly slaveAddress: I2CSlaveAddress;
/**
* @function
* I2C 読み取り処理
* @param registerNumber 読み取りアドレス
*/
read8(registerNumber: number): Promise<number>;
/**
* @function
* I2C 読み取り処理
* @param registerNumber 読み取りアドレス
*/
read16(registerNumber: number): Promise<number>;
/**
* @function
* I2c s/I2c/I2C 書き込み処理
* @param registerNumber 書き込みアドレス
* @param value 書き込みの値(バイト)
*/
write8(registerNumber: number, value: number): Promise<number>;
/**
* @function
* I2c bytes 書き込み処理
* @param registerNumber 書き込みアドレス
* @param value 書き込みの値(ワード)
*/
write16(registerNumber: number, value: number): Promise<number>;
/**
* @function
* I2c bytes 読み取りバイト処理
* Different from Web I2C API specification.
*/
readByte(): Promise<number>;
/**
* @function
* I2c bytes 読み取りバイト処理
* Different from Web I2C API specification.
* @param length 読み取る配列の長さ
*/
readBytes(length: number): Promise<Uint8Array>;
/**
* @function
* I2c bytes 書き込みバイト処理
* Different from Web I2C API specification.
* @param byte 書き込みの値
*/
writeByte(byte: number): Promise<number>;
/**
* @function
* I2c bytes 書き込みバイト配列処理
* Different from Web I2C API specification.
* @param bytes 書き込みの値の配列
*/
writeBytes(bytes: Array<number>): Promise<Uint8Array>;
}
/**
* 操作エラー
*/
export declare class OperationError extends Error {
/**
* Creates an instance of OperationError.
* @param message エラーメッセージ
*/
constructor(message: string);
}
export declare function requestI2CAccess(): Promise<I2CAccess>;
export {};