Commit 33a7f2df authored by Skye Yu's avatar Skye Yu

init jensen package

parents
Pipeline #1879 canceled with stages
.idea
.vscode
node_modules
\ No newline at end of file
{
"printWidth": 140,
"singleQuote": true,
"tabWidth": 4
}
import { Jensen } from './src/jensen';
export default Jensen;
{
"name": "jensen",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jensen",
"version": "1.0.0",
"license": "ISC",
"devDependencies": {
"prettier": "^3.3.3",
"typescript": "^5.5.4"
}
},
"node_modules/prettier": {
"version": "3.3.3",
"resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.3.3.tgz",
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/typescript": {
"version": "5.5.4",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.5.4.tgz",
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
}
}
}
{
"name": "jensen",
"version": "1.0.0",
"description": "webUSB Tool",
"scripts": {
"prettier": "prettier --write ."
},
"keywords": [
"WebUSB"
],
"author": "Skye",
"license": "ISC",
"devDependencies": {
"prettier": "^3.3.3",
"typescript": "^5.5.4"
}
}
declare class MessageDecoder {
constructor();
decode: (msg: any) => any;
}
export type DeviceInfo = {
sn: string;
versionNumber: number;
versionCode: string;
};
type ReturnStruct = {
common: { result: 'failed' | 'success' };
};
declare class Jensen {
onconnect: Function;
onmessage: (data: any) => void | null;
constructor();
connect(): Promise<any, any>;
init(): Promise<boolean>;
getDeviceInfo: (time?: number) => Promise<DeviceInfo>;
listFiles: (time?: number) => Promise<FileInfo[]>;
tryconnect: () => boolean;
getFile: (flieName: string, length: number, on?: (msg: Uint8Array | 'fail') => void, onprogress: (size: number) => void) => any;
requestFirmwareUpgrade: (
vn: number,
length: number,
time?: number,
) => Promise<{
result: 'accepted' | 'fail';
}>;
beginBNC: (time?: number) => Promise<ReturnStruct['common']>;
endBNC: (time?: number) => Promise<ReturnStruct['common']>;
setTime: (date: Date, timeout?: number) => Promise<ReturnStruct['common']>;
deleteFile: (fileName: string) => Promise<{ result: string }>;
uploadFirmware: (
data: number[],
seconds?: number,
onProgress?: (cur: number, total: number) => void,
) => Promise<ReturnStruct['common']>;
getTime: (time?: number) => Promise<{
time: string;
}>;
getSettings: (time?: number) => Promise<{
autoRecord: boolean;
autoPlay: boolean;
notification?: boolean;
} | null>;
setAutoRecord: (enable: boolean, time?: number) => Promise<ReturnStruct['common']>;
setAutoPlay: (enable: boolean, time?: number) => Promise<ReturnStruct['common']>;
isConnected: () => boolean;
setNotification: (state: boolean) => void;
ondisconnect?: Function;
isStopConnctionCheck: boolean;
getRecordingFile: () => Promise<{
recording: null | string;
createTime: string;
createDate: string;
}>;
getCardInfo: (seconds?: number) => Promise<{ used: number; capacity: number; status: string }>;
formatCard: (seconds?: number) => Promise<ReturnStruct['common']>;
factoryReset: (seconds?: number) => Promise<ReturnStruct['common']>;
getModel: () => Promise<string>;
getFileCount: (seconds?: number) => Promise<{ count: number } | null>;
}
declare module 'device' {
export { MessageDecoder, Jensen };
}
This diff is collapsed.
const Level = {
debug: 'debug',
info: 'info',
error: 'error',
};
export const Logger = {
messages: [],
consoleOutput: true,
info(module, procedure, message) {
this._append(Level.info, module, procedure, message);
},
debug(module, procedure, message) {
this._append(Level.debug, module, procedure, message);
},
error(module, procedure, message) {
this._append(Level.error, module, procedure, message);
},
_append(level, module, procedure, message) {
let log = {
level,
module,
procedure,
message: String(message),
time: new Date().getTime(),
};
this.messages.push(log);
if (this.consoleOutput) {
this._print(log);
}
if (this.messages.length > 15000) this.messages.shift();
},
_print(log) {
let time = new Date(log.time);
console.info(
'[' +
(log.level === 'error' ? 'x' : '*') +
'][' +
time.toLocaleString() +
'](' +
log.module +
' - ' +
log.procedure +
') ' +
log.message,
);
},
filter(module, procedure) {
return this.messages.filter((i) => i.module === module && i.procedure === procedure);
},
enableConsoleOutput() {
this.consoleOutput = true;
},
disableConsoleOutput() {
this.consoleOutput = false;
},
peek(rows) {
return this.messages.slice(-rows);
},
search(module, procedure, keyword) {
return this.messages.filter((i) => {
let r = i.module === module;
if (!r) return false;
if (procedure) {
if (i.procedure !== procedure) return false;
}
if (keyword) {
if (i.message.indexOf(keyword) === -1) return false;
}
return true;
});
},
};
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment