Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
李勇
/
McuClient
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
李勇
2017-06-20 10:03:28 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c1fb4d0dfbea2ba46d172c00bbbbeba5c59863de
c1fb4d0d
1 parent
d95657bd
点名和答题卡增加倒计时同步
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
38 行增加
和
25 行删除
dist/McuClient.js
src/EngineEntrance.js
src/GlobalConfig.js
src/MessageTypes.js
src/apes/QuestionApe.js
dist/McuClient.js
查看文件 @
c1fb4d0
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
c1fb4d0
...
...
@@ -32,7 +32,7 @@ import QuestionApe from 'apes/QuestionApe';
import
UTF8
from
'utf-8'
;
let
loger
=
Loger
.
getLoger
(
'McuClient'
);
let
_sdkInfo
=
{
"version"
:
"v1.36.
2.20170619
"
,
"author"
:
"www.3mang.com"
};
let
_sdkInfo
=
{
"version"
:
"v1.36.
4.20170620
"
,
"author"
:
"www.3mang.com"
};
//APE
let
_sass
;
...
...
@@ -545,6 +545,10 @@ export default class MessageEntrance extends Emiter {
//是否自动开始(身份是host的时候才用到的)
GlobalConfig
.
isAutoStartClass
=
_data
.
autoRecord
||
0
;
GlobalConfig
.
serverTime
=
_data
.
serverTime
||
new
Date
().
getTime
();
//获取服务器时间戳
GlobalConfig
.
serverAndLoacTimeDistanc
=
(
new
Date
().
getTime
()
-
GlobalConfig
.
serverTime
)
/
1000
;
//当前系统时间和服务器时间的差值 (秒)
loger
.
warn
(
"服务器时间:"
+
GlobalConfig
.
serverTime
+
" 系统时间:"
+
new
Date
().
getTime
()
+
" 时间差:"
+
GlobalConfig
.
serverAndLoacTimeDistanc
);
GlobalConfig
.
setDocListPrepare
(
_data
.
docListPrepare
);
//提前上传的文档列表
GlobalConfig
.
setRecordList
(
_data
.
recordList
);
//录制回放地址
GlobalConfig
.
setDocList
(
_data
.
docList
);
//文档地址
...
...
src/GlobalConfig.js
查看文件 @
c1fb4d0
...
...
@@ -460,6 +460,6 @@ GlobalConfig.allowRecordMaxTime=14400;//(秒)允许录制的最长时间,默
GlobalConfig
.
siteId_letv
=
'shchuanbao'
;
//乐视,MS不需要动态选点的站点
GlobalConfig
.
ssTunnelAppURL
=
''
;
//屏幕共享插件的地址
GlobalConfig
.
serverTime
=
0
;
//服务器当前时间戳
GlobalConfig
.
serverAndLoacTimeDistanc
=
0
;
//本地时间和服务器时间错的差值;
export
default
GlobalConfig
;
...
...
src/MessageTypes.js
查看文件 @
c1fb4d0
...
...
@@ -88,16 +88,11 @@ MessageTypes.DOC_BROADCAST= "doc_broadcast";//
MessageTypes
.
MEDIA_SHARED_DELETE
=
"media_shared_delete"
;
//删除媒体文件
MessageTypes
.
MEDIA_SHARED_UPDATE
=
"media_shared_update"
;
//更新媒体文件(添加、变更)
//答题卡
//答题卡
和点名共用
MessageTypes
.
START_ANSWER_QUESTION
=
"start_answer_question"
;
//开始答题
MessageTypes
.
UPDATE_ANSWER_QUESTION
=
"update_answer_question"
;
//更新答题数据
MessageTypes
.
STOP_ANSWER_QUESTION
=
"stop_answer_question"
;
//停止答题
//点名
MessageTypes
.
START_CALL_THE_ROLL
=
"start_call_the_roll"
;
//开始点名
MessageTypes
.
UPDATE_CALL_THE_ROLL
=
"update_call_the_roll"
;
//更新点名数据
MessageTypes
.
STOP_CALL_THE_ROLL
=
"stop_call_the_roll"
;
//停止点名
MessageTypes
.
UPDATE_QUESTION_TIME
=
"update_question_time"
;
//更新答题时间
//白板笔记事件定义
MessageTypes
.
WHITEBOARD_ANNOTATION_UPDATE
=
"whiteboard_annotation_update"
;
// 'whiteboard.annotation.update';
...
...
src/apes/QuestionApe.js
查看文件 @
c1fb4d0
...
...
@@ -23,8 +23,10 @@ class QuestionApe extends Ape {
ApeConsts
.
QUESTION_SESSION_NAME
,
ApeConsts
.
QUESTION_SESSION_TAG
);
this
.
questionList
=
{};
//MCU同步的题目数据
this
.
questionDataList
=
{};
//Sass保存的题目内容数据
this
.
questionTimer
=
new
TimerCounter
();
//答题卡计时器
this
.
questionTimer
.
addTimerCallBack
(
this
.
questionTimerCounterUptate
.
bind
(
this
),
1
);
//计时器监听
//监听Sass事件
this
.
_sass
=
Sass
;
...
...
@@ -47,6 +49,27 @@ class QuestionApe extends Ape {
this
.
registerObj
(
pdu
.
RCPDU_REG_REGISTER_TABLE
,
ApeConsts
.
CONFERENCE_OBJ_QUESTION_ID
,
ApeConsts
.
CONFERENCE_OBJ_QUESTION_NAME
,
ApeConsts
.
CONFERENCE_OBJ_QUESTION_TAG
,
0
,
new
ArrayBuffer
);
}
//答题卡计时器
questionTimerCounterUptate
()
{
if
(
!
this
.
mcu
.
connected
)
{
loger
.
warn
(
'MCU 连接已经断开'
);
if
(
this
.
questionTimer
){
this
.
questionTimer
.
stopTimer
();
}
}
//console.log("时间差:"+GlobalConfig.serverAndLoacTimeDistanc+' questionTimerCounterUptate',this.questionList);
for
(
let
key
in
this
.
questionList
){
let
question
=
this
.
questionList
[
key
];
if
(
question
){
let
timestamp
=
parseInt
(
question
.
timeLimit
-
(
new
Date
().
getTime
()
*
0.001
-
question
.
timestamp
-
GlobalConfig
.
serverAndLoacTimeDistanc
));
loger
.
log
(
"question->type:"
+
question
.
type
,
"倒计时:"
+
timestamp
);
this
.
_emit
(
MessageTypes
.
UPDATE_QUESTION_TIME
,{
type
:
question
.
type
,
itemIdx
:
question
.
itemIdx
,
timestamp
:
timestamp
});
}
}
if
(
this
.
questionTimer
&&
Object
.
keys
(
this
.
questionList
).
length
<
1
){
this
.
questionTimer
.
stopTimer
();
}
}
//更新信息
sendUpdaterTable
(
_param
)
{
...
...
@@ -157,17 +180,16 @@ class QuestionApe extends Ape {
//学生->如果自己已经提交过答案就不需要再显示
if
(
model
.
totalUserList
.
indexOf
(
GlobalConfig
.
userId
)
>=
0
){
loger
.
log
(
"已经提交过答案-不需要显示答题卡->userId:"
+
GlobalConfig
.
userId
);
delete
this
.
questionList
[
itemIdx
];
}
else
{
//显示答题卡数据
this
.
_emit
(
MessageTypes
.
START_ANSWER_QUESTION
,
model
);
}
}
if
(
this
.
questionTimer
){
this
.
questionTimer
.
startTimer
();
}
break
;
//case 4:
// //停止点名
// loger.log("更新点名数据");
// this._emit(MessageTypes.UPDATE_CALL_THE_ROLL,model);
// break;
default
:
break
;
}
...
...
@@ -354,16 +376,8 @@ class QuestionApe extends Ape {
_sassCreatQuestionSuccessHandler
(
_data
){
//loger.log("创建答题卡成功",_data);
if
(
_data
){
//this.questionDataList[_data.questionId]=_data;//保存题目数据
let
questionItem
=
_data
;
/* //判断是答题还是点名,type=100的时候是点名
if(questionItem.type==100){
questionItem.itemIdx=ApeConsts.CONFERENCE_OBJ_QUESTION_ID+1;
}else {
questionItem.itemIdx=ApeConsts.CONFERENCE_OBJ_QUESTION_ID;
}*/
questionItem
.
itemIdx
=
EngineUtils
.
creatTimestamp
();
questionItem
.
itemIdx
=
parseInt
(
EngineUtils
.
creatTimestamp
()
-
GlobalConfig
.
serverAndLoacTimeDistanc
);
this
.
sendUpdaterTable
(
questionItem
);
}
...
...
请
注册
或
登录
后发表评论