HGGitLab
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
app
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
luoliangyi
app
Commits
7e3b95ca
Commit
7e3b95ca
authored
Apr 22, 2022
by
luoliangyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
webservice:将Manager的回调函数和Scan函数独立开
parent
ff42a488
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
222 additions
and
47 deletions
+222
-47
sdk/webservice/HttpUser.cpp
sdk/webservice/HttpUser.cpp
+0
-1
sdk/webservice/Manager.cpp
sdk/webservice/Manager.cpp
+189
-30
sdk/webservice/Manager.h
sdk/webservice/Manager.h
+16
-8
sdk/webservice/SockIoUser.cpp
sdk/webservice/SockIoUser.cpp
+17
-8
No files found.
sdk/webservice/HttpUser.cpp
View file @
7e3b95ca
...
@@ -778,7 +778,6 @@ bool HttpUser::SendResponse(const char* httpVersion, HGUInt errCode, const char*
...
@@ -778,7 +778,6 @@ bool HttpUser::SendResponse(const char* httpVersion, HGUInt errCode, const char*
else
else
{
{
assert
(
0
==
size
);
assert
(
0
==
size
);
assert
(
NULL
==
contentType
);
sprintf
(
head
,
"%s: %s
\r\n\r\n
"
,
sprintf
(
head
,
"%s: %s
\r\n\r\n
"
,
"Access-Control-Allow-Origin"
,
"null"
);
"Access-Control-Allow-Origin"
,
"null"
);
...
...
sdk/webservice/Manager.cpp
View file @
7e3b95ca
This diff is collapsed.
Click to expand it.
sdk/webservice/Manager.h
View file @
7e3b95ca
...
@@ -10,11 +10,13 @@
...
@@ -10,11 +10,13 @@
#include <vector>
#include <vector>
#include <string>
#include <string>
#define SCANEVENT_STATUS 0L
#define SCANEVENT_ARRIVE 1L
#define SCANEVENT_WORKING 1L
#define SCANEVENT_REMOVE 2L
#define SCANEVENT_IMAGE 2L
#define SCANEVENT_STATUS 3L
#define SCANEVENT_FINISH 3L
#define SCANEVENT_WORKING 4L
#define SCANEVENT_ERROR 4L
#define SCANEVENT_IMAGE 5L
#define SCANEVENT_FINISH 6L
#define SCANEVENT_ERROR 7L
struct
DevParam
struct
DevParam
{
{
...
@@ -90,8 +92,13 @@ public:
...
@@ -90,8 +92,13 @@ public:
void
OpenDev
(
const
OpenDevParam
*
param
);
void
OpenDev
(
const
OpenDevParam
*
param
);
// 关闭设备
// 关闭设备
void
CloseDev
(
const
CloseDevParam
*
param
);
void
CloseDev
(
const
CloseDevParam
*
param
);
// 设置回调
void
SetScanEvent
(
ScanEvent
event
,
void
*
param
);
// 清理回调
void
ResetScanEvent
();
// 扫描
// 扫描
bool
Scan
(
const
std
::
string
&
insertImgName
,
bool
isInsert
,
ScanEvent
event
,
void
*
param
);
bool
Scan
(
const
std
::
string
&
insertImgName
,
bool
isInsert
);
// 停止扫描
// 停止扫描
bool
StopScan
();
bool
StopScan
();
// 获取当前连接的设备ID
// 获取当前连接的设备ID
...
@@ -153,14 +160,15 @@ private:
...
@@ -153,14 +160,15 @@ private:
private:
private:
class
MsgLoop
*
m_loop
;
class
MsgLoop
*
m_loop
;
HGLock
m_lock
;
std
::
string
m_devName
;
std
::
string
m_devName
;
SANE_Handle
m_devHandle
;
SANE_Handle
m_devHandle
;
DevParam
m_devParam
;
DevParam
m_devParam
;
ScanEvent
m_scanEvent
;
void
*
m_scanParam
;
std
::
string
m_scanInsertImgName
;
std
::
string
m_scanInsertImgName
;
bool
m_scanIsInsert
;
bool
m_scanIsInsert
;
ScanEvent
m_scanEvent
;
void
*
m_scanParam
;
bool
m_scanning
;
bool
m_scanning
;
};
};
...
...
sdk/webservice/SockIoUser.cpp
View file @
7e3b95ca
...
@@ -15,12 +15,12 @@ SockIoUser::SockIoUser(class WebServer* server, HGUInt id, const char* ip, uint1
...
@@ -15,12 +15,12 @@ SockIoUser::SockIoUser(class WebServer* server, HGUInt id, const char* ip, uint1
#endif
#endif
:
WebUser
(
server
,
id
,
ip
,
port
,
sockConn
)
:
WebUser
(
server
,
id
,
ip
,
port
,
sockConn
)
{
{
GetManager
()
->
SetScanEvent
(
ScanCallback
,
this
);
}
}
SockIoUser
::~
SockIoUser
()
SockIoUser
::~
SockIoUser
()
{
{
GetManager
()
->
ResetScanEvent
();
}
}
void
SockIoUser
::
HandleCmd
(
const
SockIoCmdParam
*
param
)
void
SockIoUser
::
HandleCmd
(
const
SockIoCmdParam
*
param
)
...
@@ -53,7 +53,7 @@ void SockIoUser::HandleCmd(const SockIoCmdParam* param)
...
@@ -53,7 +53,7 @@ void SockIoUser::HandleCmd(const SockIoCmdParam* param)
cJSON_Delete
(
json
);
cJSON_Delete
(
json
);
}
}
bool
ret
=
GetManager
()
->
Scan
(
imgName
,
insert
,
ScanCallback
,
this
);
bool
ret
=
GetManager
()
->
Scan
(
imgName
,
insert
);
if
(
!
ret
)
if
(
!
ret
)
{
{
std
::
string
resp
=
"42[
\"
error
\"
,
\"
scan error
\"
]"
;
std
::
string
resp
=
"42[
\"
error
\"
,
\"
scan error
\"
]"
;
...
@@ -446,27 +446,36 @@ void SockIoUser::ScanCallback(HGUInt event, void* value1, void* value2, void* pa
...
@@ -446,27 +446,36 @@ void SockIoUser::ScanCallback(HGUInt event, void* value1, void* value2, void* pa
SockIoUser
*
p
=
(
SockIoUser
*
)
param
;
SockIoUser
*
p
=
(
SockIoUser
*
)
param
;
char
*
resp
=
NULL
;
char
*
resp
=
NULL
;
if
(
SCANEVENT_WORKING
==
event
)
if
(
SCANEVENT_ARRIVE
==
event
)
{
resp
=
new
char
[
256
];
sprintf
(
resp
,
"42[
\"
success
\"
,
\"
%s
\"
]"
,
(
const
char
*
)
value1
);
}
else
if
(
SCANEVENT_REMOVE
==
event
)
{
}
else
if
(
SCANEVENT_WORKING
==
event
)
{
{
resp
=
new
char
[
256
];
resp
=
new
char
[
256
];
sprintf
(
resp
,
"42[
\"
event
\"
,
\"
%s
\"
]"
,
"
scanning
..."
);
sprintf
(
resp
,
"42[
\"
event
\"
,
\"
%s
\"
]"
,
"
...
..."
);
}
}
else
if
(
SCANEVENT_FINISH
==
event
)
else
if
(
SCANEVENT_FINISH
==
event
)
{
{
resp
=
new
char
[
256
];
resp
=
new
char
[
256
];
sprintf
(
resp
,
"42[
\"
result
\"
, {
\"
code
\"
:204,
\"
msg
\"
:
\"
%s
\"
}]"
,
"scan finish!"
);
sprintf
(
resp
,
"42[
\"
result
\"
, {
\"
code
\"
:204,
\"
msg
\"
:
\"
%s
\"
}]"
,
(
const
char
*
)
value1
);
}
}
else
if
(
SCANEVENT_ERROR
==
event
)
else
if
(
SCANEVENT_ERROR
==
event
)
{
{
resp
=
new
char
[
256
];
resp
=
new
char
[
256
];
sprintf
(
resp
,
"42[
\"
error
\"
,
\"
%s
\"
]"
,
"device error"
);
sprintf
(
resp
,
"42[
\"
error
\"
,
\"
%s
\"
]"
,
(
const
char
*
)
value1
);
}
}
else
if
(
SCANEVENT_IMAGE
==
event
)
else
if
(
SCANEVENT_IMAGE
==
event
)
{
{
const
char
*
imgName
=
(
const
char
*
)
value1
;
const
char
*
imgName
=
(
const
char
*
)
value1
;
const
char
*
imgBase64
=
(
const
char
*
)
value2
;
const
char
*
imgBase64
=
(
const
char
*
)
value2
;
resp
=
new
char
[
256
+
strlen
(
imgName
)
+
strlen
(
imgBase64
)];
resp
=
new
char
[
256
+
strlen
(
imgName
)
+
strlen
(
imgBase64
)];
sprintf
(
resp
,
"42[
\"
image
\"
, {
\"
imageName
\"
:
\"
%s
\"
,
\"
image
\"
:
\"
%s
\"
}]"
,
imgName
,
imgBase64
);
sprintf
(
resp
,
"42[
\"
image
\"
, {
\"
code
\"
:201,
\"
imageName
\"
:
\"
%s
\"
,
\"
image
\"
:
\"
%s
\"
}]"
,
imgName
,
imgBase64
);
}
}
if
(
NULL
!=
resp
)
if
(
NULL
!=
resp
)
...
...
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