Compare commits

..

8 Commits

Author SHA1 Message Date
Tommy Huang c4163f1ce5 fix db sd_raw type error 2022-01-27 15:59:56 +08:00
Tommy Huang d1e7d02a3c Merge remote-tracking branch 'origin/feature/sd_data' into feature/sd_data 2022-01-27 11:22:53 +08:00
Tommy Huang 81bb8e7b98 sd_raw time split sec and micro 2022-01-27 11:22:47 +08:00
peterlu14 b822215c04 [fix] typo 2022-01-26 17:21:46 +08:00
Tommy Huang 74e6565c27 fix sd_raw modal 2022-01-26 17:14:01 +08:00
tommy830509 0b6b551921 sd_raw_meulive freezeTableName 2022-01-24 18:58:11 +08:00
Tommy Huang ace749b742 prefix bps_sd_raw_neulive 2022-01-24 17:15:51 +08:00
Tommy Huang 75cb542795 DB sd_raw_neulive 2022-01-24 17:08:48 +08:00
12 changed files with 108 additions and 210 deletions
+25
View File
@@ -0,0 +1,25 @@
import SDRawNeulive from '../../models/file/sd_raw_neulive'
import * as auth from '../auth'
const sd_raw_Neulive = new SDRawNeulive()
export const create = async (ctx, next) => {
const data = ctx.request.body
const result = await sd_raw_Neulive.create(data)
ctx.body = result
next()
}
export const getByParentUUID = async (ctx, next) => {
const parent_uuid = ctx.params.parent_uuid
const result = await sd_raw_Neulive.getByParentUUID(parent_uuid)
ctx.body = result
next()
}
export const deleteByParentUUID = async (ctx, next) => {
const parent_uuid = ctx.params.parent_uuid
const result = await sd_raw_Neulive.deleteByParentUUID(parent_uuid)
ctx.body = result
next()
}
-28
View File
@@ -1,28 +0,0 @@
import RecordingMeta from '../../../models/file/bps_recording_meta'
import TriggerRaw from '../../../models/file/bps_trigger_raw'
const recordingMeta = new RecordingMeta()
const triggerRaw = new TriggerRaw()
export const getMetaByUUID = async (ctx, next) => {
const uuid = ctx.params.uuid
const result = await recordingMeta.getMetaByUUID(uuid)
ctx.body = result
next()
}
export const getMetaAll = async (ctx, next) => {
const result = await recordingMeta.getMetaAll()
ctx.body = result
next()
}
export const getTriggerRawByUUID = async (ctx, next) => {
const parent_uuid = ctx.params.parent_uuid
const result = await triggerRaw.getDataByUUID(parent_uuid)
ctx.body = result
next()
}
+1 -3
View File
@@ -10,7 +10,6 @@ import * as recordingDataRaw from './file/recording_data_raw'
import * as recordingDataMini from './file/recording_data_mini'
import * as analysis from './analysis'
import * as sdCard from './file/sd_card'
import * as trigger from './file/trigger'
export default {
upload,
@@ -24,6 +23,5 @@ export default {
recordingDataRaw,
recordingDataMini,
analysis,
sdCard,
trigger,
sdCard
}
+2 -2
View File
@@ -40,8 +40,8 @@ for (let i = 256; i < 288; i++) {
for (let i = 256; i < 288; i++) {
db[i + '_recording_data_minis'] = require('./schema/recording_data_mini.model')(sequelize, Sequelize, i)
}
db.recording_meta = require('./schema/bps_recording_meta.model')(sequelize, Sequelize)
db.trigger_raw = require('./schema/bps_trigger_raw.model')(sequelize, Sequelize)
db.sd_raw_neulive = require('./schema/sd_raw_neulive.model')(sequelize, Sequelize)
db.sequelize.sync()
-67
View File
@@ -1,67 +0,0 @@
module.exports = (sequelize, Sequelize) => {
const RecordingMeta = sequelize.define('bps_recording_meta', {
uuid: {
type: Sequelize.STRING,
defaultValue: '',
primaryKey: true
},
name: {
type: Sequelize.STRING
},
folder_id: {
type: Sequelize.INTEGER,
defaultValue: -1
},
task_uuid: {
type: Sequelize.STRING,
defaultValue: ''
},
device: {
type: Sequelize.JSONB,
defaultValue: {}
},
description: {
type: Sequelize.STRING,
defaultValue: ''
},
size: {
type: Sequelize.INTEGER,
defaultValue: -1
},
time_duration: {
type: Sequelize.STRING,
defaultValue: '0'
},
start_time: {
type: Sequelize.STRING,
defaultValue: '-1'
},
end_time: {
type: Sequelize.STRING,
defaultValue: '-1'
},
deleted: {
type: Sequelize.BOOLEAN,
defaultValue: false
},
tag: {
type: Sequelize.STRING,
defaultValue: '-1'
},
parameter_set: {
type: Sequelize.JSONB,
defaultValue: {}
},
create_date: {
type: Sequelize.DATE,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP')
},
},
{
timestamps: false
}
)
return RecordingMeta
}
-30
View File
@@ -1,30 +0,0 @@
module.exports = (sequelize, Sequelize) => {
const TriigerDataRaw = sequelize.define('bps_trigger_raw', {
channel: {
type: Sequelize.INTEGER,
defaultValue: -1
},
parent_uuid: {
type: Sequelize.STRING,
defaultValue: ''
},
data: {
type: Sequelize.TEXT,
defaultValue: ''
},
start_time: {
type: Sequelize.STRING,
defaultValue: '-1'
},
end_time: {
type: Sequelize.STRING,
defaultValue: '-1'
},
},
{
freezeTableName: true
}
)
return TriigerDataRaw
}
+37
View File
@@ -0,0 +1,37 @@
module.exports = (sequelize, Sequelize, i) => {
const RecordingDataRaw = sequelize.define('bps_sd_raw_neulive', {
channel: {
type: Sequelize.INTEGER
},
parent_uuid: {
type: Sequelize.STRING,
},
data: {
type: Sequelize.TEXT,
defaultValue: ''
},
start_time_sec: {
type: Sequelize.INTEGER,
defaultValue: 0
},
end_time_sec: {
type: Sequelize.INTEGER,
defaultValue: 0
},
start_time_micro: {
type: Sequelize.INTEGER,
defaultValue: 0
},
end_time_micro: {
type: Sequelize.INTEGER,
defaultValue: 0
}
},
{
freezeTableName: true,
timestamps: false
}
)
return RecordingDataRaw
}
-28
View File
@@ -1,28 +0,0 @@
const db = require('../../db/database')
const Op = db.Sequelize.Op
class RecordingMeta {
async getMetaByUUID (uuid) {
const ret = await db.recording_meta.findAll(
{
where: {
uuid: uuid
}
}
)
return ret
}
async getMetaAll () {
const ret = await db.recording_meta.findAll({
order: [
['start_time', 'DESC']
]
})
return ret
}
}
export default RecordingMeta
-37
View File
@@ -1,37 +0,0 @@
const db = require('../../db/database')
const { Transform } = require("stream")
class TriggerRaw {
async getDataByUUID (parent_uuid) {
const ret = await db.trigger_raw.findAllWithStream(
{
where: {
parent_uuid: parent_uuid
},
attributes: [
'data'
],
}
)
const transformer = new Transform({
transform(chunk, encoding, callback) {
const chunkDataStr = chunk.toString('utf8')
// replace: ref https://dmitripavlutin.com/replace-all-string-occurrences-javascript/#2-replace-with-a-global-regular-expression
// slice: remove last ','
const transformDataArr = JSON.parse(chunkDataStr)[0].data.replace(/[@#$]/g, '').slice(0, -1).split(',')
const step = 3
let transformData = ''
for (let startPos = 0; startPos < transformDataArr.length; startPos += step) {
// array chunking algo. comparison: https://www.better.dev/javascript-algorithms-array-chunking
transformData += transformDataArr.slice(startPos, startPos + step).join() + '\n' // join: https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/join
}
callback(null, transformData)
},
})
return ret.pipe(transformer)
}
}
export default TriggerRaw
+42
View File
@@ -0,0 +1,42 @@
const db = require('../../db/database')
class SDRawNeulive {
async create (req) {
return db['sd_raw_neulive'].create(
req
)
}
async getByParentUUID (parent_uuid) {
const ret = await db['sd_raw_neulive'].findAllWithStream(
{
batchSize: 1000,
where: {
parent_uuid: parent_uuid
},
order: [
['id', 'ASC']
],
attributes: [
'data',
'start_time',
'end_time'
]
}
)
return ret
}
async deleteByParentUUID (parent_uuid) {
const ret = await db['sd_raw_neulive'].destroy(
{
where: {
parent_uuid: parent_uuid
}
}
)
return ret
}
}
export default SDRawNeulive
+1 -3
View File
@@ -3,7 +3,6 @@ import meta from './meta'
import mini from './mini'
import raw from './raw'
import sdcard from './sdcard'
import trigger from './trigger'
export default function (_prefix) {
const prefix = _prefix + '/file'
@@ -12,7 +11,6 @@ export default function (_prefix) {
...meta(prefix),
...mini(prefix),
...raw(prefix),
...sdcard(prefix),
...trigger(prefix)
...sdcard(prefix)
]
}
-12
View File
@@ -1,12 +0,0 @@
import controllers from '../../../controllers'
// '/api/file/trigger'
export default function (_prefix) {
const prefix = _prefix + '/trigger'
return [
['GET', prefix + '/get_meta_by_uuid/:uuid', controllers.trigger.getMetaByUUID],
['GET', prefix + '/get/all', controllers.trigger.getMetaAll],
['GET', prefix + '/get_raw_by_uuid/:parent_uuid', controllers.trigger.getTriggerRawByUUID],
]
}