Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
J
jensen
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Skye Yu
jensen
Commits
68b04970
Commit
68b04970
authored
Jun 09, 2025
by
martin hou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 多设备连接测试
parent
d46b1db0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
118 additions
and
1 deletion
+118
-1
Logger.ts
src/Logger.ts
+99
-0
index.tsx
src/index.tsx
+19
-1
No files found.
src/Logger.ts
0 → 100644
View file @
68b04970
enum
Level
{
debug
=
'debug'
,
info
=
'info'
,
error
=
'error'
,
}
type
Message
=
{
level
:
Level
;
module
:
string
;
procedure
:
string
;
message
:
string
;
time
:
number
;
};
export
function
ObjectPrint
(
obj
:
Record
<
string
,
any
>
)
{
let
res
=
''
;
for
(
const
key
in
obj
)
{
const
value
=
obj
[
key
];
res
+=
`\n
${
key
}
:
${
JSON
.
stringify
(
value
)}
`
}
res
+=
'
\
n'
return
res
;
}
export
const
Logger
=
{
messages
:
[]
as
Message
[],
consoleOutput
:
true
,
printModule
:
[],
info
(
module
:
string
,
procedure
:
string
,
message
:
string
)
{
this
.
_append
(
Level
.
info
,
module
,
procedure
,
message
);
},
debug
(
module
:
string
,
procedure
:
string
,
message
:
string
)
{
this
.
_append
(
Level
.
debug
,
module
,
procedure
,
message
);
},
error
(
module
:
string
,
procedure
:
string
,
message
:
string
)
{
this
.
_append
(
Level
.
error
,
module
,
procedure
,
message
);
},
save
(
module
:
string
,
procedure
:
string
,
message
:
any
)
{
},
_append
(
level
:
Level
,
module
:
string
,
procedure
:
string
,
message
:
string
)
{
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
:
Message
)
{
let
time
=
new
Date
(
log
.
time
);
console
.
info
(
'['
+
(
log
.
level
==
'error'
?
'x'
:
'*'
)
+
']['
+
time
.
toLocaleString
()
+
']('
+
log
.
module
+
' - '
+
log
.
procedure
+
') '
+
log
.
message
);
},
filter
(
module
:
string
,
procedure
:
string
)
{
return
this
.
messages
.
filter
((
i
)
=>
i
.
module
==
module
&&
i
.
procedure
==
procedure
);
},
enableConsoleOutput
()
{
this
.
consoleOutput
=
true
;
localStorage
.
setItem
(
'Looger-consoleOutput'
,
'true'
)
},
disableConsoleOutput
()
{
this
.
consoleOutput
=
false
;
localStorage
.
removeItem
(
'Looger-consoleOutput'
)
},
setPrintModule
(
modules
:
string
[])
{
// this.printModule = modules;
// localStorage.setItem('Looger-print-module', modules.join(' , '));
},
peek
(
rows
:
number
)
{
return
this
.
messages
.
slice
(
-
rows
);
},
search
(
module
:
string
,
procedure
:
string
,
keyword
?:
string
)
{
return
this
.
messages
.
filter
((
i
:
Message
)
=>
{
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
;
});
},
};
\ No newline at end of file
src/index.tsx
View file @
68b04970
import
{
useEffect
,
useState
}
from
'react'
;
import
Jensen
,
{
BluetoothDevice
}
from
'..'
;
import
'./index.css'
;
import
{
Logger
}
from
'./Logger'
const
jensen
=
new
Jensen
();
...
...
@@ -9,6 +10,7 @@ export function Home() {
const
[
devices
,
setDevices
]
=
useState
<
Jensen
.
BluetoothDevice
[]
>
([]);
const
[
greeting
,
setGreeting
]
=
useState
<
string
|
null
>
(
null
);
/*
useEffect(() => {
jensen.connect();
jensen.onconnect = () => {
...
...
@@ -18,6 +20,7 @@ export function Home() {
});
};
}, []);
*/
const
getFilePart
=
()
=>
{
const
file
=
files
[
4
];
...
...
@@ -184,10 +187,25 @@ export function Home() {
}
}
const
connectx
=
async
()
=>
{
const
usb
=
(
navigator
as
any
).
usb
;
usb
.
getDevices
().
then
(
async
(
devices
:
any
[])
=>
{
for
(
let
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
let
dev
=
devices
[
i
];
await
dev
.
open
();
let
jensen
=
new
Jensen
(
Logger
,
dev
);
await
jensen
.
initialize
();
let
rst
=
await
jensen
.
getDeviceInfo
();
console
.
log
(
rst
);
}
});
}
return
(
<>
<
div
style=
{
{
display
:
'flex'
,
flexDirection
:
'row'
,
gap
:
'16px'
,
padding
:
'16px'
,
alignItems
:
'center'
}
}
>
<
button
style=
{
{
width
:
'200px'
,
height
:
'50px'
}
}
onClick=
{
connect
}
>
连接
</
button
>
<
button
style=
{
{
width
:
'200px'
,
height
:
'50px'
}
}
onClick=
{
connect
x
}
>
连接
</
button
>
<
button
style=
{
{
width
:
'200px'
,
height
:
'50px'
}
}
onClick=
{
getFilePart
}
>
获取文件
</
button
>
<
button
style=
{
{
width
:
'200px'
,
height
:
'50px'
}
}
onClick=
{
writeSN
}
>
SN写号
</
button
>
<
button
style=
{
{
width
:
'200px'
,
height
:
'50px'
}
}
onClick=
{
getTime
}
>
获取时间
</
button
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment