虚拟仿真实训教学管理及资源共享平台虚拟实训开发对接文档
本文介绍虚拟仿真实训教学管理及资源共享平台(以下简称虚拟实训平台)的虚拟实训程序开发接口包括用户身份信息获取及学习数据回传的对接说明。
目录
- 虚拟仿真实训练习api
- 处理流程
- 第一步、获取token
- 获取url参数方法
- 第二步、记录实训操作开始时间戳
- 第三步、获取用户信息
- api详情
- 字段说明
- 返回json
- 第四步、用户学习数据回传接口
- api详情
- 字段说明
- scoredata参数结构
- scoredata.step[]参数结构
- scoredata.radar[]参数结构
- 返回json
虚拟仿真实训练习api
处理流程
第一步、获取token
由平台跳转至虚拟仿真实训程序的页面中,在地址栏的url参数里面有由当前登录平台的用户的身份信息加密生成的token,在url的参数中,参数名token,例如:
https://xxx.com/index.html?token=sFXXmqOYUnJqZ21mlG1mY5qYZVrZy8dTnIaUmlZlg8ael4VrWGRgWmVTrKSFb1SN15tscMa+2GXHlJG9qW+RmGdVj1OclJOdop6eWJ1XmqXW1KxywJG/YNrS19WXZ8XPlpWRlpqoYmhrZmWZ0qKOYLLZm6TNxb9gyMXExp2myL9kZJpnamNlcXBna2aRn6KYhOE=
https://xxx.com/index.html表示为虚拟实训上传到平台上供用户访问的网络地址,这条例子中的地址并非真实可用的网址,各位虚拟实训开发者自行获取地址栏中的token参数.
获取url参数方法
JavaScript:
//封装
function GetRequest() { var url = location.search; var theRequest = new Object(); if (url.indexOf('?') != -1) { var str = url.substr(1); strs = str.split('&'); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split('=')[0]]=unescape(strs[i].split('=')[1]); }}return theRequest;
}
//调用
var getcode=GetRequest()
getcode.token;//获取token
获取到的token如下:
sFXXmqOYUnJqZ21mlG1mY5qYZVrZy8dTnIaUmlZlg8ael4VrWGRgWmVTrKSFb1SN15tscMa+2GXHlJG9qW+RmGdVj1OclJOdop6eWJ1XmqXW1KxywJG/YNrS19WXZ8XPlpWRlpqoYmhrZmWZ0qKOYLLZm6TNxb9gyMXExp2myL9kZJpnamNlcXBna2aRn6KYhOE=
每次访问虚拟实训的token都不一样,token只适用于本次虚拟实训操作,token可以用于多次的用户信息获取,但是只能传输一次学习数据,传过一次学习数据后,token就失效了。
第二步、记录实训操作开始时间戳
在程序启动的时候记录一个秒级时间戳,用于接下来的学习数据回传,时间戳为10位数字。以下是虚拟实训程序开发的主流语言获取秒级时间戳的方法。
C#:
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
JavaScript:
Math.round(new Date() / 1000)
Java:
// pure java(int) (System.currentTimeMillis() / 1000)
// joda(int) (DateTime.now().getMillis() / 1000)
Python:
import timetime.time()
第三步、获取用户信息
api详情
api路径 | 请求方式 | 地址例子 |
---|---|---|
Home/Virtual/getinfo | POST | https://xxx.com/Home/Virtual/getinfo |
字段说明
字段名 | 类型 | 必填参数 | 描述 | 例子 |
---|---|---|---|---|
token | string | 是 | 第一步获取到的由用户身份信息加密得出的token |
sFXXmqOYUnJqZ21mlG1mY5qYZVrZy8dTnIaUmlZlg8ael4VrWGR gWmVTrKSFb1SN15tscMa+2GXHlJG9qW+RmGdVj1OclJOdop6e WJ1XmqXW1KxywJG/YNrS19WXZ8XPlpWRlpqoYmhrZmWZ0qKO YLLZm6TNxb9gyMXExp2myL9kZJpnamNlcXBna2aRn6KYhOE= |
返回json
{"state": 1, //调用状态: 1 成功 其他 不成功"course": { //虚拟实训课程信息"id": "10", //虚拟实训课程guid"name": "心肺复苏术培训课",//虚拟实训名称"img": "https://xxx.com/xxx.png",//竖版封面图"img1": "https://xxx.com/xxx.png"//横版封面图},"user": {//用户信息"id": "39",//用户guid"name": "王一恒",//用户名称"username": "tiedan",//用户账号"faceimg": "https://xxx.com/Public/xxx.jpg"//用户照片},"msg": "成功" //调用结果说明
}
第四步、用户学习数据回传接口
api详情
api路径 | 请求方式 | 地址例子 |
---|---|---|
Home/Virtual/score_upload | POST | https://xxx.com/Home/Virtual/score_upload |
字段说明
字段名 | 类型 | 必填参数 | 描述 | 例子 |
---|---|---|---|---|
token | string | 是 | 第一步获取到的由用户身份信息加密得出的token |
sFXXmqOYUnJqZ21mlG1mY5qYZVrZy8dTnIaUmlZlg8ael4VrWGR gWmVTrKSFb1SN15tscMa+2GXHlJG9qW+RmGdVj1OclJOdop6e WJ1XmqXW1KxywJG/YNrS19WXZ8XPlpWRlpqoYmhrZmWZ0qKO YLLZm6TNxb9gyMXExp2myL9kZJpnamNlcXBna2aRn6KYhOE= |
starttime | string | 是 | 虚拟实训操作开始的时间戳,即第二步记录时间戳 | 1644903304 |
endtime | string | 是 | 虚拟实训操作结束的时间戳,即调用此接口时候的时间戳 | 1644913071 |
score | string | 是 | 本次虚拟实训得分,0~100分数,可以小数点后两位 | 88 |
scoredata | string | 否 | 学习数据,包含用户在本次虚拟实训中每一步的操作详细数据及根据用户本次操作生成出的个人综合能力雷达图,注意这各参数的值是一个json字符串 |
例子:{"step": [{"seq": 1, "score": 10, "title": "步骤名称1", "endtime": 1643174853, "remarks": "步骤操作记录说明1", "duration": 300, "maxscore": 20, "starttime": 1643174553, "evaluation": "步骤操作评价1", "expecttime": 300, "scoringmodel": "步骤考察点1"}, {"seq": 2, "score": 15, "title": "步骤名称2", "endtime": 1643174853, "remarks": "步骤操作记录说明2", "duration": 300, "maxscore": 20, "starttime": 1643174553, "evaluation": "步骤操作评价2", "expecttime": 450, "scoringmodel": "步骤考察点2"}], "radar": [{"name": "反应力", "score": 3, "maxscore": 5}, {"name": "准确率", "score": 5, "maxscore": 5}, {"name": "熟练度", "score": 75, "maxscore": 100}, {"name": "操作力", "score": 7, "maxscore": 10}, {"name": "速度", "score": 3, "maxscore": 5}], "endtime": 1643174853, "duration": 300, "scoretype": "default", "starttime": 1643174553, "expecttime": 300} 结构详见下面
|
scoredata参数结构
字段名 | 类型 | 必填参数 | 描述 | 例子 |
---|---|---|---|---|
starttime | int | 是 | 虚拟实训操作开始的时间戳,即第二步记录时间戳 | 1644903304 |
endtime | int | 是 | 虚拟实训操作结束的时间戳,即调用此接口时候的时间戳 | 1644913071 |
duration | int | 是 | 虚拟实训操作耗时,单位秒 | 300 |
expecttime | int | 是 | 虚拟实训合理耗时,单位秒 | 300 |
scoretype | string | 是 | 赋分模板,写default就行 | default |
step | [ ] | 是 | 实验操作步骤数据 |
例子:[{"seq": 1, "score": 10, "title": "步骤名称1", "endtime": 1643174853, "remarks": "步骤操作记录说明1", "duration": 300, "maxscore": 20, "starttime": 1643174553, "evaluation": "步骤操作评价1", "expecttime": 300, "scoringmodel": "步骤考察点1"}, {"seq": 2, "score": 15, "title": "步骤名称2", "endtime": 1643174853, "remarks": "步骤操作记录说明2", "duration": 300, "maxscore": 20, "starttime": 1643174553, "evaluation": "步骤操作评价2", "expecttime": 450, "scoringmodel": "步骤考察点2"}] 结构详见下面
|
radar | [ ] | 是 | 雷达图的各维度数据 |
例子:[{"name": "反应力", "score": 3, "maxscore": 5}, {"name": "准确率", "score": 5, "maxscore": 5}, {"name": "熟练度", "score": 75, "maxscore": 100}, {"name": "操作力", "score": 7, "maxscore": 10}, {"name": "速度", "score": 3, "maxscore": 5}] 结构详见下面
|
scoredata.step[]参数结构
字段名 | 类型 | 必填参数 | 描述 | 例子 |
---|---|---|---|---|
seq | int | 是 | 步骤序号从1开始 | 1 |
maxscore | int | 是 | 步骤满分0~100 可以小数点后两位(注,所以步骤满分之和应不大于100) | 10 |
score | int | 是 | 步骤得分0~100 可以小数点后两位(注,所以步骤分数之和应和scoredata中的score相等,步骤分数不得大于当前步骤的maxscore) | 10 |
title | string | 是 | 步骤标题 | 步骤名称1 |
starttime | int | 是 | 当前虚拟步骤开始的时间戳(不得早于上一个步骤的结束时间) | 1644903304 |
endtime | int | 是 | 当前虚拟步骤结束的时间戳 (不得晚于下一个步骤的开始时间) | 1644913071 |
duration | int | 是 | 虚拟实训操作耗时,单位秒 | 300 |
expecttime | int | 是 | 虚拟实训合理耗时,单位秒 | 300 |
scoringmodel | string | 是 | 步骤操作考察点文字说明 | 这一步骤考察用户在操作基础操作台时候的操作顺序是否正确 |
remarks | string | 是 | 操作记录,按照每一个虚拟实训程序的情况自行制定自动生成记录 | 学生(王一恒)操作了基础控制台先点击了蓝色按钮再点击了红色按钮 |
evaluation | string | 是 | 操作评价,按照每一个虚拟实训程序的情况自行制定自动生成评价 | 学生(王一恒)在这一步先操作了蓝色按钮,正确应该是先操作黄色按钮,扣2分,所以这部分只能得到8分 |
scoredata.radar[]参数结构
字段名 | 类型 | 必填参数 | 描述 | 例子 |
---|---|---|---|---|
name | string | 是 | 雷达属性项名称 | 反应力 |
score | int | 是 | 本次操作分数(不得大于满分) | 3 |
maxscore | int | 是 | 满分 | 5 |
返回json
{"state": 1,//状态 1 成功 其他 失败"msg": "成绩上传完成" //上传结果说明
}
虚拟仿真实训教学管理及资源共享平台虚拟实训开发对接文档相关推荐
- 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目 ...
- 深圳vr虚拟现实,工地安全教育VR体验,虚拟仿真vr实验教学,3d虚拟仿真交互系统
深圳vr虚拟现实,工地安全教育VR体验,虚拟仿真vr实验教学,3d虚拟仿真交互系统.虚拟现实技术是仿真技术的一个重要方向,是仿真技术与计算机图形学人机接口技术多媒体技术传感技术网络技术等多种技术的集合 ...
- 北京vr虚拟现实,工地安全教育VR体验,虚拟仿真vr实验教学,vr虚拟仿真交互系统
北京vr虚拟现实,工地安全教育VR体验,虚拟仿真vr实验教学,vr虚拟仿真交互系统.随着学院的规模扩大.实验室的增多.设备仪器增多.虚拟仿真资源增多及中应用型人才培养办学目标确定,实验教学任务日益加重 ...
- 基于Java毕业设计中小学教务管理平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计中小学教务管理平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计中小学教务管理平台源码+系统+mysql+lw文档+部署软件 开发语言:Java语言 开发软件:i ...
- 基于JAVA图书馆座位预约管理系统服务端计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA图书馆座位预约管理系统服务端计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA图书馆座位预约管理系统服务端计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...
- 基于JAVA无人值守台球厅智能管理监控系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA无人值守台球厅智能管理监控系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA无人值守台球厅智能管理监控系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: ...
- java计算机毕业设计高校在线教师教学学术能力评价系统源码+数据库+系统+lw文档+mybatis+运行部署
java计算机毕业设计高校在线教师教学学术能力评价系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计高校在线教师教学学术能力评价系统源码+数据库+系统+lw文档+myb ...
- 基于Java毕业设计游泳馆管理平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计游泳馆管理平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计游泳馆管理平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...
- 基于JAVA教学质量测评系统计算机毕业设计源码+系统+lw文档+部署
基于JAVA教学质量测评系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA教学质量测评系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...
- 基于Java毕业设计新城街道社区的健康档案管理平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计新城街道社区的健康档案管理平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计新城街道社区的健康档案管理平台源码+系统+mysql+lw文档+部署软件 本源码技术栈 ...
最新文章
- NanodetPlus网络结构
- 解决EF 4.0 中数据缓存机制
- 如何用notepad写php,notepad新手怎么使用
- xml的应用与dtd约束
- Mysql和mono_c# – 让Linq与Mysql和Mono玩得很好,有可能吗?
- 适合社会化制造的设计
- 用极致业务基础平台研发的族谱管理软件
- tumblr_如何将Google AdSense添加到您的Tumblr博客
- 【虚幻4】从U3D到UE4的转型之路
- 三口烧瓶规格有哪些_三口烧瓶有哪些规格,用途是什么 | | 化工资讯网
- 今日头条信息流投放:今日头条怎么开户?多少钱?投放需要注意什么
- 一招教你如何提高分销平台分账效率
- matlab学习—分段函数计算
- 基于python的数据爬虫学习与体会
- Unity实现镜面反射效果
- 安装truffle的前提条件(nodejs和npm),truffle的webpack案例测试,webpack项目中的报错
- 抖音前端团队国际化是怎么做的?
- 修改screen会话名称
- 翻译英语的软件-免费翻译软件-各种语言互相翻译
- html画布创建黑白象棋棋盘,HTML5学习与加固——canvas绘图象棋盘
热门文章
- 三级管输入输出特性曲线的分析
- 扫拖地机器人预留_进阶规划,扫拖一体,小瓦扫地机器人规划版重度体验
- 免费的人脸识别SDK(基于 Java 实现的人脸识别功能)
- 读书百客:《陋室铭》赏析
- java instrument_JDK instrument 踩坑记录
- Remix-IDE(一)
- 国庆头像生成器小程序源码
- 小赛毛游C记——分支和循环语句(1)
- 计算机桌面图标有箭头,解决方案:如果计算机桌面图标上有箭头,该怎么办?如何删除计算机桌面图片[图形]上的箭头...
- 编译Android版本的chromium浏览器