Commit 3845cf1e authored by 柳 佳乐's avatar 柳 佳乐
Browse files

第一版

parent 81b7a05a
......@@ -8,6 +8,7 @@
circle
:icon="isVisible ? 'el-icon-close' : 'el-icon-menu'"
size="mini"
:type="isVisible ?'danger': 'warning' "
/>
<transition name="slide">
<div v-show="isVisible" class="scale-panel">
......@@ -43,6 +44,7 @@ export default {
isVisible: true
}
},
methods: {
togglePanel() {
this.isVisible = !this.isVisible
......
......@@ -93,6 +93,7 @@ export function startMultiCameraRecode(data){
baseURL:`http://${baseURLConsole}`,
url: `/api/cameras/multi_control/multi_camera_recode/start`,
method: 'POST',
data
})
}
//双目相机和动态相机一键停止
......@@ -101,5 +102,6 @@ export function stopMultiCameraRecode(data){
baseURL:`http://${baseURLConsole}`,
url: `/api/cameras/multi_control/multi_camera_recode/stop`,
method: 'POST',
data
})
}
......@@ -15,7 +15,9 @@ import {
setStereoCameraResolution, // 设置相机分辨率
setStereoCameraFps, // 设置相机帧率
setStereoCameraDepthEnabled, // 设置相机深度传感器是否启用
setStereoCameraDepthMode // 设置相机深度传感器模式
setStereoCameraDepthMode, // 设置相机深度传感器模式
startStereoCameraRecording, // 开始双目相机录制
stopStereoCameraRecording, // 停止双目相机录制
} from '@/api/binocularCamera'
export const binocularCameraMixins = {
data() {
......@@ -26,6 +28,7 @@ export const binocularCameraMixins = {
leftImage: null,//左目图像
rightImage: null,//右目图像
},
stereoCameraisInitialized: false,
// 双目相机设置
stereoSettings: {
autoExposure: true,//自动曝光
......@@ -67,7 +70,7 @@ export const binocularCameraMixins = {
methods: {
// 获取双目相机列表
getStereoCameraList() {
this.activeTab = 'stereo'
const loading = this.$loading({
lock: true,
text: 'Loading',
......@@ -80,17 +83,22 @@ export const binocularCameraMixins = {
this.stereoSettings.resolution = this.stereoCameras[0].camera_resolution
this.stereoSettings.depthMode = this.stereoCameras[0].depth_mode
this.$message.success(`获取到 ${this.stereoCameras.length} 个双目相机`);
this.activeTab = 'stereo'
loading.close();
let srt = sessionStorage.getItem('stereoCameraisInitialized');
if(srt){
this.stereoCameraisInitialized = true
}
return
}
getStereoCameraList().then(res => {
console.log(res)
if (res.data.length > 0) {
this.stereoSettings.fps = res.data[0].camera_fps
this.stereoSettings.resolution = res.data[0].camera_resolution
this.stereoSettings.depthMode = res.data[0].depth_mode
this.stereoCameras = res.data
this.$message.success(`获取到 ${this.stereoCameras.length} 个双目相机`);
this.activeTab = 'stereo'
} else {
this.$message.error('未检测到双目相机')
}
......@@ -136,28 +144,64 @@ export const binocularCameraMixins = {
}
}
initStereoCamera(param).then(res => {
console.log(res)
sessionStorage.setItem('stereoCameras', JSON.stringify(this.stereoCameras));
getStereoCameraRecordStatus(this.stereoCameras[0].camera_id).then(res => {
console.log(res)
})
if(res.data.failed_cameras.length > 0){
this.$message.error(res.data.failed_cameras[0].message)
return
}
if(res.data.successful_cameras.length > 0){
sessionStorage.setItem('stereoCameras', JSON.stringify(this.stereoCameras));
sessionStorage.setItem('stereoCameraisInitialized',this.stereoCameraisInitialized)
this.stereoCameraisInitialized = true
this.$message.success(res.data.successful_cameras[0].message)
getStereoCameraRecordStatus(this.stereoCameras[0].camera_id)
}
}).finally(() => {
loading.close();
})
},
//双目相机开始录制
startStereoRecord() {
let param = {
camera_id: this.stereoCameras[0].camera_id,
user_name: this.$store.getters.username,
save_dir: this.dynamiSettings.savePath
}
startStereoCameraRecording(param).then(res => {
this.isRecording = true;
this.recordingStartTime = new Date();
this.startRecordingTimer();
this.$message.success('开始录制')
})
},
//双目相机停止录制
stopStereoRecord() {
stopStereoCameraRecording(this.stereoCameras[0].camera_id).then(res => {
this.isRecording = false;
this.stopRecordingTimer();
this.recordingStartTime = null;
this.$message.success(`停止录制`);
this.$message.success('停止录制')
})
},
//关闭双目相机
closeStereoCameras() {
closeStereoCamera(this.stereoCameras[0].camera_id).then(res => {
sessionStorage.removeItem('stereoCameras')
this.stereoCameras = []
console.log(res)
})
if(this.stereoCameras.length > 0){
closeStereoCamera(this.stereoCameras[0].camera_id).then(res => {
sessionStorage.removeItem('stereoCameras')
sessionStorage.removeItem('stereoCameraisInitialized')
if (this.interval) {
clearInterval(this.interval)
}
this.stereoCameras = []
this.stereoCameraisInitialized = false
})
}
},
//获取帧
getStereoFrame() {
getStereoCameraFrame(this.stereoCameras[0].camera_id).then(res => {
console.log(res)
this.stereoCamerasImage.leftImage = res.data.frame_data.left_image
this.stereoCamerasImage.rightImage = res.data.frame_data.right_image
this.stereoCamerasImage.depthImage = res.data.frame_data.depth_image
......@@ -238,7 +282,6 @@ export const binocularCameraMixins = {
img.src = this.stereoCamerasImage.depthImage;
},
toggleAutoRefresh() {
console.log("123")
this.autoRefresh = !this.autoRefresh
if (this.autoRefresh) {
let intervalTime = 1000 / this.refreshInterval
......@@ -252,95 +295,86 @@ export const binocularCameraMixins = {
},
//修改曝光和增益
handleAutoExposureChange() {
console.log("修改曝光和增益")
let param = {
camera_id: this.stereoCameras[0].camera_id,
is_auto_exposure_gain: this.stereoSettings.autoExposure,
exposure: this.stereoSettings.exposure,
gain: this.stereoSettings.gain
}
// console.log(param)
//修改曝光和增益
setStereoCameraExposureGain(param).then(res => {
console.log(res)
this.$message.success('修改曝光和增益成功')
})
},
//修改亮度
handleBrightnessChange() {
console.log("修改亮度")
let param = {
camera_id: this.stereoCameras[0].camera_id,
brightness: this.stereoSettings.brightness
}
setStereoCameraBrightness(param).then(res => {
console.log(res)
this.$message.success('修改亮度成功')
})
},
//修改对比度
handleContrastChange() {
console.log("修改对比度")
let param = {
camera_id: this.stereoCameras[0].camera_id,
contrast: this.stereoSettings.contrast
}
setStereoCameraContrast(param).then(res => {
console.log(res)
this.$message.success('修改对比度成功')
})
},
//修改色调
handleHueChange() {
console.log("修改色调")
let param = {
camera_id: this.stereoCameras[0].camera_id,
hue: this.stereoSettings.hue
}
setStereoCameraHue(param).then(res => {
console.log(res)
this.$message.success('修改色调成功')
})
},
//修改饱和度
handleSaturationChange() {
console.log("修改饱和度")
let param = {
camera_id: this.stereoCameras[0].camera_id,
saturation: this.stereoSettings.saturation
}
setStereoCameraSaturation(param).then(res => {
console.log(res)
this.$message.success('修改饱和度成功')
})
},
//修改锐度
handleSharpnessChange() {
console.log("修改锐度")
let param = {
camera_id: this.stereoCameras[0].camera_id,
sharpness: this.stereoSettings.sharpness
}
setStereoCameraSharpness(param).then(res => {
console.log(res)
this.$message.success('修改锐度成功')
})
},
//修改伽马值
handleGammaChange() {
console.log("修改伽马值")
let param = {
camera_id: this.stereoCameras[0].camera_id,
gamma: this.stereoSettings.gamma
}
setStereoCameraGamma(param).then(res => {
console.log(res)
this.$message.success('修改伽马值成功')
})
},
//修改白平衡
handleWhiteBalanceChange() {
console.log("修改白平衡")
let param = {
camera_id: this.stereoCameras[0].camera_id,
is_auto_whitebalance: this.stereoSettings.whiteBalanceAuto,
whitebalance_temperature: this.stereoSettings.whiteBalance
}
setStereoCameraWhiteBalance(param).then(res => {
console.log(res)
this.$message.success('修改白平衡成功')
})
},
//修改分辨率
......@@ -349,17 +383,20 @@ export const binocularCameraMixins = {
clearInterval(this.interval)
this.autoRefresh = !this.autoRefresh
}
this.list = this.resolutionOptions.filter(item => item.value == this.stereoSettings.resolution)
let list = this.resolutionOptions.filter(item => item.value == this.stereoSettings.resolution)
let param = {
camera_id: this.stereoCameras[0].camera_id,
resolution: this.stereoSettings.resolution
}
setStereoCameraResolution(param).then(res => {
console.log(res)
this.currentFpsOptions = this.list.fpsOptions
this.stereoSettings.fps = this.currentFpsOptions[this.currentFpsOptions.length - 1]
this.handleFpsChange()
})
setTimeout(() => {
setStereoCameraResolution(param).then(res => {
this.currentFpsOptions = list[0].fpsOptions
this.stereoSettings.fps = this.currentFpsOptions[this.currentFpsOptions.length - 1]
this.handleFpsChange()
this.$message.success('修改分辨率成功')
})
}, 1000);
},
//修改帧率
handleFpsChange() {
......@@ -371,9 +408,12 @@ export const binocularCameraMixins = {
camera_id: this.stereoCameras[0].camera_id,
frame_rate: this.stereoSettings.fps
}
setStereoCameraFps(param).then(res => {
console.log(res)
})
setTimeout(() => {
setStereoCameraFps(param).then(res => {
this.$message.success('修改帧率成功')
})
}, 1000);
},
//修改深度传感器是否启用
handleDepthEnabledChange() {
......@@ -381,13 +421,16 @@ export const binocularCameraMixins = {
clearInterval(this.interval)
this.autoRefresh = !this.autoRefresh
}
let param = {
let param = {
camera_id: this.stereoCameras[0].camera_id,
depth_enabled: this.stereoSettings.depthEnabled
}
setStereoCameraDepthEnabled(param).then(res => {
console.log(res)
})
setTimeout(() => {
setStereoCameraDepthEnabled(param).then(res => {
this.$message.success(`深度传感器${this.stereoSettings.depthEnabled ? '启用' : '禁用'}成功`)
})
}, 1000);
},
//修改深度传感器模式
handleDepthModeChange() {
......@@ -399,13 +442,13 @@ export const binocularCameraMixins = {
camera_id: this.stereoCameras[0].camera_id,
depth_mode: this.stereoSettings.depthMode
}
setStereoCameraDepthMode(param).then(res => {
console.log(res)
})
setTimeout(() => {
setStereoCameraDepthMode(param).then(res => {
this.$message.success('修改深度传感器模式成功')
})
}, 1000);
},
},
beforeDestroy() {
//关闭双目相机
......@@ -416,5 +459,6 @@ export const binocularCameraMixins = {
}
//清除相机缓存
sessionStorage.removeItem('stereoCameras')
sessionStorage.removeItem('stereoCameraisInitialized')
}
}
......@@ -5,8 +5,8 @@
<div class="header-container">
<div class="header-title">相机2、3模块</div>
<div class="header-buttons">
<el-button type="primary" @click="getVideoList">获取相机2列表</el-button>
<el-button type="primary" @click="getStereoCameraList">获取相机3列表</el-button>
<el-button type="primary" @click="getVideoList" :disabled="dynamiCameraisInitialized">获取相机2列表</el-button>
<el-button type="primary" @click="getStereoCameraList" :disabled="stereoCameraisInitialized">获取相机3列表</el-button>
</div>
</div>
......@@ -37,14 +37,20 @@
</el-form-item>
<el-form-item>
<el-button-group>
<el-button type="primary" @click="initDynamiCameras" icon="el-icon-refresh">初始化</el-button>
<el-button type="danger" @click="closeAllCameras" icon="el-icon-close">关闭</el-button>
<el-button type="primary" @click="initDynamiCameras" icon="el-icon-refresh" :disabled="dynamiCameraisInitialized">初始化</el-button>
<el-button type="danger" @click="closeAllCameras" icon="el-icon-close" >关闭</el-button>
</el-button-group>
</el-form-item>
<el-form-item>
<el-switch v-model="dynamiSettings.lowFpsMode" active-text="低帧率" inactive-text="原始帧"
@change="toggleLowFpsMode" style="margin-left: 10px;" />
@change="toggleLowFpsMode" :disabled="!dynamiCameraisInitialized"/>
</el-form-item>
<el-form-item>
<el-tag :type="dynamiCameraisInitialized?'success':'info'" >
{{ dynamiCameraisInitialized?'已初始化':'未初始化' }}
</el-tag>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
......@@ -146,12 +152,12 @@
</el-col>
<!-- 深度计算 -->
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="深度计算">
<el-switch v-model="stereoSettings.depthEnabled" active-text="开" inactive-text="关"
@change="handleDepthEnabledChange"></el-switch>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12" v-if="stereoSettings.depthEnabled">
<el-form-item label="深度模式">
<el-select v-model="stereoSettings.depthMode" style="width: 200px"
......@@ -163,10 +169,15 @@
</el-row>
<el-form-item>
<el-button-group>
<el-button type="primary" @click="initStereoCameras">初始化</el-button>
<el-button type="primary" @click="initStereoCameras" :disabled="stereoCameraisInitialized">初始化</el-button>
<el-button type="danger" @click="closeStereoCameras">关闭</el-button>
</el-button-group>
</el-form-item>
<el-form-item>
<el-tag :type="stereoCameraisInitialized?'success':'info'" >
{{ stereoCameraisInitialized?'已初始化':'未初始化' }}
</el-tag>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
......@@ -190,7 +201,7 @@
</div>
</div>
<div class="frame-header" style="padding: 5px; text-align: center;">
<el-select v-model="camera.cameraOrientation" size="mini" style="width: 80px; margin-right: 10px;">
<el-select v-model="camera.cameraOrientation" size="mini" style="width: 80px; margin-right: 10px;" @change="configCamera(camera)">
<el-option label="不指定" value="不指定"></el-option>
<el-option label="右中" value="右中"></el-option>
<el-option label="右下" value="右下"></el-option>
......@@ -199,7 +210,7 @@
<el-option label="左中" value="左中"></el-option>
<el-option label="左下" value="左下"></el-option>
</el-select>
<el-button size="mini" type="primary" plain @click="configCamera(camera)">配置</el-button>
<!-- <el-button size="mini" type="primary" plain @click="configCamera(camera)">配置</el-button> -->
<el-button size="mini" type="primary" plain @click="startStream(camera)">链接</el-button>
<el-button size="mini" type="warning" plain @click="stopStream(camera)">断链</el-button>
</div>
......@@ -278,6 +289,18 @@
</div>
</div>
<!-- <div class="global-controls" v-if="stereoCameras.length > 0">
<el-button-group>
<el-button type="danger" @click="startStereoRecord">开始录制</el-button>
<el-button type="info" @click="stopStereoRecord">停止录制</el-button>
</el-button-group>
<div class="recording-time" v-if="isRecording">
<i class="el-icon-video-camera"></i>
<span>{{ formatRecordingTime() }}</span>
</div>
</div> -->
<div v-if="dynamiCameras.length <= 0 && stereoCameras.length <= 0" class="empty-tip">
<el-empty description="暂无相机,请点击右上角按钮获取相机列表"></el-empty>
</div>
......@@ -309,7 +332,7 @@ export default {
activeTab: 'dynami',
dynamiCameras: [],
frameCanvas: null,
dynamiCameraisInitialized:false,
// 动态相机设置
dynamiSettings: {
resolution: '1920x1080',
......@@ -417,6 +440,7 @@ export default {
camera.height = parseInt(height)
camera.fps = this.dynamiSettings.fps
})
this.dynamiCameraisInitialized = true
this.$message.success(`初始化所有相机成功`)
})
},
......@@ -442,7 +466,8 @@ export default {
savePath: 'images/captures',
lowFpsMode: false
},
this.$message.success(`关闭所有相机成功`)
this.dynamiCameraisInitialized = false
this.$message.success(`关闭所有相机成功`)
})
},
// 切换低帧率模式
......@@ -630,6 +655,7 @@ export default {
user_name: this.$store.getters.username,
save_dir: this.dynamiSettings.savePath
}
console.log(param)
startMultiCameraRecode(param).then(res => {
this.isRecording = true;
this.recordingStartTime = new Date();
......@@ -676,8 +702,6 @@ export default {
rgbd_cameras: this.stereoCameras[0].camera_id + '',//双目相机列表
user_name: this.$store.getters.username,
save_dir: this.dynamiSettings.savePath,
user_name: this.userInfo.name,
save_dir: this.dynamiSettings.savePath,
}
stopMultiCameraRecode(param).then(res => {
this.isRecording = false;
......
......@@ -5,7 +5,7 @@
<div class="header-container">
<div class="header-title">相机1模块</div>
<div class="header-buttons">
<el-button type="primary" @click="getCameraList">获取相机列表</el-button>
<el-button type="primary" @click="getCameraList" :disabled="isInitialized">获取相机列表</el-button>
</div>
</div>
......@@ -36,12 +36,31 @@
<el-form-item>
<el-button-group>
<el-button type="primary" @click="initAllCameras" icon="el-icon-refresh">初始化</el-button>
<el-switch v-model="globalParams.lowFpsMode" active-text="低帧率" inactive-text="原始帧"
@change="toggleFpsMode" style="margin-left: 10px;" />
<el-button @click="closeAllCameras" size="mini" icon="el-icon-close"
style="margin-left: 10px;">关闭所有</el-button>
<el-button
type="primary"
@click="initAllCameras"
icon="el-icon-refresh"
:disabled="isInitialized">
{{ isInitialized ? '已初始化' : '初始化' }}
</el-button>
<el-switch
v-model="globalParams.lowFpsMode"
active-text="低帧率"
inactive-text="原始帧"
@change="toggleFpsMode"
style="margin-left: 10px;"
:disabled="!isInitialized" />
<el-button
@click="closeAllCameras"
size="mini"
icon="el-icon-close"
style="margin-left: 10px;">
关闭所有
</el-button>
</el-button-group>
<el-tag :type="isInitialized?'success':'info'" >
{{ isInitialized?'已初始化':'未初始化' }}
</el-tag>
</el-form-item>
</el-form>
</div>
......@@ -117,6 +136,7 @@ export default {
lowFpsMode: false,//低帧率模式开关
},
cameraList: [],//相机列表
isInitialized: false, // 初始化状态
}
},
methods: {
......@@ -184,6 +204,7 @@ export default {
camera.height = parseInt(height)
camera.fps = this.globalParams.fps
})
this.isInitialized = true
this.$message.success(`初始化所有相机成功`)
})
},
......@@ -413,6 +434,7 @@ export default {
closeStillCamera(param).then(res => {
console.log(res);
this.cameraList = [];
this.isInitialized = false
this.globalParams = {
fps: 30,//帧率
resolution: '2560x1440',//分别率
......
......@@ -6,12 +6,12 @@ Vue.use(Vuex)
export default new Vuex.Store({
state: {
patientInfo: {
name: '柳佳乐',//姓名
name: 'Tom',//姓名
age: 25,//年龄
gender: '',//性别
gender: '1',//性别
phone: '19955807499',//手机号
idCard: '341221200005067836',//身份证号
nativePlace: '',//籍贯
nativePlace: 'null',//籍贯
height: 165,//身高
weight: 55,//体重
bookingId: 1,//预约ID
......@@ -50,10 +50,15 @@ export default new Vuex.Store({
username: (state) => {
let str = '';
state.patientInfo.name ? str += state.patientInfo.name : str+='null';//姓名
str+='-';
state.patientInfo.age ? str += state.patientInfo.age : str+='null';//年龄
str+='-';
state.patientInfo.gender ? str += state.patientInfo.gender : str+='null';//性别
str+='-';
state.patientInfo.phone ? str += state.patientInfo.phone : str+='null';//手机号
str+='-';
state.patientInfo.idCard ? str += state.patientInfo.idCard : str+='null';//身份证号
str+='-';
state.patientInfo.nativePlace ? str += state.patientInfo.nativePlace : str+='null';//籍贯
return str;
}
......
......@@ -9,7 +9,6 @@ const WHITE_LIST = [
// 创建axios实例
const service = axios.create({
timeout: 10000
})
// 请求拦截器
......@@ -42,7 +41,6 @@ service.interceptors.response.use(
loadingInstance && loadingInstance.close()
const res = response.data
console.log(res)
if(res.code == 200){
return res
}else{
......@@ -55,12 +53,14 @@ service.interceptors.response.use(
// return Promise.reject(new Error(res.message || 'Error'))
// }
return res
return Promise.reject(res)
},
error => {
// 关闭loading
loadingInstance && loadingInstance.close()
// console.log("123")
// console.log(error)
Message.error(error.message)
// 可在此统一处理HTTP错误状态码
// Message.error(error.message)
......
export const baseURL = '/api'
export const baseURLConsole ='192.168.0.103:8000'
\ No newline at end of file
export const baseURLConsole ='192.168.0.104:8000'
\ No newline at end of file
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