重庆交通大学智能交通监测考试复习资料文档格式.docx

上传人:b****3 文档编号:6220592 上传时间:2023-05-06 格式:DOCX 页数:23 大小:470.11KB
下载 相关 举报
重庆交通大学智能交通监测考试复习资料文档格式.docx_第1页
第1页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第2页
第2页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第3页
第3页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第4页
第4页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第5页
第5页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第6页
第6页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第7页
第7页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第8页
第8页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第9页
第9页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第10页
第10页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第11页
第11页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第12页
第12页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第13页
第13页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第14页
第14页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第15页
第15页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第16页
第16页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第17页
第17页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第18页
第18页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第19页
第19页 / 共23页
重庆交通大学智能交通监测考试复习资料文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

重庆交通大学智能交通监测考试复习资料文档格式.docx

《重庆交通大学智能交通监测考试复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《重庆交通大学智能交通监测考试复习资料文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

重庆交通大学智能交通监测考试复习资料文档格式.docx

5、启动n2n

initctlstartn2n

客户端部署:

2、nano/etc/init/n2n.conf

execedge-a172.16.0.2-s255.255.0.0-M1450-c你的组名-k你的密码-l你的服务器地址:

3、启动n2n

说明:

以上1200为服务器端侦听端口号

视频实时转码服务器(如SRS)的技术要点及部署方法

SRS支持两种方式得到RTMP直播源。

一种是使用FFmpeg,设备或其它方式将流推送到SRS。

另一种方式是SRS本身带采集功能。

采集(Ingest)指的是将文件(flv,mp4,mkv,avi,rmvb等等),

流(RTMP,RTMPT,RTMPS,RTSP,HTTP,HLS等等),设备等的数据,

转封装为RTMP流(若编码不是h264/aac则需要转码),推送到SRS。

2、unzipSRS-Ubuntu14-x86_64-2.0.205.zip

3、cdSRS-Ubuntu14-x86_64-2.0.205

4、./INSTALL

5、cd/usr/local/srs/objs/

6、mkdirffmpeg

7、cdffmpeg

8、mkdirbin

9、cdbin然后将ffmpeg复制到此处

10、chmod+xffmpeg

11、cd/usr/local/srs/conf/

12、cpsrs.confsrs.conf.bak

13、nanosrs.conf

文件内容如下:

listen1935;

max_connections1000;

vhostcam1{

ingestlivestream{

enabledon;

input{

typestream;

urlrtsp:

//admin:

VGFFRE@10.1.230.147;

}

ffmpeg./objs/ffmpeg/bin/ffmpeg;

engine{

enabledoff;

outputrtmp:

//127.0.0.1:

[port]/live?

vhost=[vhost]/livestream;

}

14、测试,用VLC打

开串流:

rtmp:

//10.1.230.133/live?

vhost=cam1/livestream10.1.230.133替换成你的服务器地址

数据中心端

现场端

数据采集

适量的传感器设备对桥梁本身及其周围环境的各种模态参数进行感知,各种传感器感知的物理信号一般都是模拟量,由其经过传感子系统将模拟信号进行A/D转换得到可识别的数字信号;

得到的数字信号再经过数据采集及处理子系统将得到所需的采集数据,得到各种数据后,马上进行初步的数据预处理,

数据经过预处理后,需要将其传输至远程的数据中心,以便对这些数据进行存储、管理、分析处理,这个过程则由通信传输子系统完成,既可以通过有线的Internet网络进行传输,又可以使用无线的2G/3G/4G网络进行远程通信,保证桥梁采集工作站的数据安全传输到远程服务器;

数据中心服务器接收到桥梁智能数据采集仪传来的数据后,

数据采集传输方案

数据采集及处理系统实现多种信息源、不同物理信号的采集与预处理,并根据系统功能要求对数据进行分解、变换以获取所需要的参数,以一定的形式存储起来。

它对安装在大桥上的各种类型传感器信号完成必要的预调理后按一定的采样频率进行模拟信号、数字信号(A/D)转换,最后在计算机上显示并保存。

采集工作在监测系统的数据采集站内完成。

整个监测系统可以采用现场总线、RS485串口总线、无线方式等传输所有传感器信号。

传感器系统的所有模拟与数字信号经采集、预处理后从外场的数据采集站发送到监控中心的系统数据处理与控制计算机。

数据接收

接收各桥梁上传的实时监测数据。

当桥梁不存在时将自动创建新桥梁,当测点不存在时将自动创建新测点,这样的设计也是为了数据接收尽量保证可靠接收。

数据接收模块除了接收桥梁智能数据采集仪的数据预处理及上传模块传输的数据之外,还可以接收第三方传输的数据。

阀值监测

设置一值,监测数据与其进行对比,对监测参数是否超出正常值进行判断,但对一些机械设备来说其正常值变化范围相对较大,并不是固定于一点,特别是对工况多变的复杂机械设备来说更是如此。

如果正常阈值的范围设得过小,系统很自然会误判正常值进行而进行虚假报警,而如果对正常阈值的范围设得过大,则又不能对异常数据进行预报,影响了系统精度。

因此,如何在不同工况下准确设定设备参数的阈值,是阈值监测诊断法是否科学运用的关键

比如:

关键数据阀值触发机制,可用于监测到关键数据超出阀值范围后触发摄像头抓拍实时桥梁车辆通行状况,并将图像缩略图上传至服务器等。

Crc校验

defcrc16(x):

y=0xA001

x=0xFFFF

forbyteinx:

x=x^ord(byte)

for_inrange(8):

last=x%2

x=x>

>

1

iflast==1:

x=x^y

xx='

0'

*(6-len(hex(x)))+hex(x)[2:

]

ll,he=int(xx[:

2],16),int(xx[2:

],16)

ru='

%x'

%(he*256+ll&

0xffff)

whilelen(ru)<

4:

+ru

returnru

长沙金马

温湿度传感器:

发送指令:

#52308008A!

(str格式)其中:

52308008是传感器编号

接收数据长度:

26

接收数据前验证:

0位置:

24

25位置:

21

解析数据前验证:

{s}(1,2)=='

78'

{s}(4,11)=='

52308008'

数据解析:

温度:

string.atol({s}(13,16))/100.0-40

湿度:

string.atol({s}(18,21))/100.0

加速度

defcollection(self):

del(self.buff)

self.buff=[]

self.cur_buff=-1

self.collectioncancel=False

n=self.SampleNumber/32768

foriinrange(n):

self.buff.append((ctypes.c_ushort*32768)())

x=self.SampleNumber%32768

ifx>

0:

x=x-x%256

self.buff.append((ctypes.c_ushort*x)())

handle=self.dll.MPS_OpenDevice(0)

ifhandle<

=0:

writeLog(u"

打开设备失败!

"

printu"

return

设备打开成功!

rtn=self.dll.MPS_Configure(self.channel,self.sample_rate,self.gain,handle)

ifrtn<

1:

self.dll.MPS_CloseDevice(handle)

设备初始化失败!

设备初始化成功!

try:

rtn=self.dll.MPS_Start(handle)

设备启动失败!

设备启动成功!

self.SampleStartTime=datetime.datetime.now()

开始时间:

%s"

%(self.SampleStartTime)

预计结束时间:

%(self.SampleStartTime+datetime.timedelta(0,self.time_period))

开始采集..."

th=threading.Thread(target=self.saveToFile,args=())

th.start()

foriinrange(len(self.buff)):

self.cur_buff=i

ifself.dll.MPS_DataIn(self.buff[i],len(self.buff[i]),handle)<

1:

self.collectioncancel=True

采集第%s部分失败!

%(i+1))

%(i+1)

break

finally:

rtn=self.dll.MPS_Stop(handle)

设备停止失败!

设备成功停止!

rtn=self.dll.MPS_CloseDevice(handle)

设备关闭失败!

设备成功关闭!

self.cur_buff=len(self.buff)

end_t=datetime.datetime.now()

结束时间:

%(end_t)

数据采集完成,等待文件写入完成..."

whileth.is_alive():

time.sleep(0.01)

完成一次采集。

%(self.SampleStartTime,end_t))

%s结束时间:

%(self.SampleStartTime,end_t)

激光测距

classSjcj(object):

def__init__(self,conn,tdh):

self.conn=conn

self.tdh=tdh

self.cur=conn.cursor()

self.udp=socket.socket(socket.AF_INET,

socket.SOCK_DGRAM,

socket.IPPROTO_UDP)

self.udp.setsockopt(socket.SOL_SOCKET,

socket.SO_REUSEADDR,

1)

self.udp.settimeout

(2)

self.isalive=True

self.th_work=threading.Thread(target=self.working,args=())

self.th_work.setDaemon(True)

self.th_work.start()

defquit(self):

self.udp.close()

self.isalive=False

whileself.th_work.is_alive():

time.sleep(0.1)

defworking(self):

whileself.isalive:

print('

通道号:

%s在工作'

%self.tdh)

#读取通道信息

sql='

'

SELECTIP,port

FROMcgqpzzb

WHEREsjcjtdh=%s

'

self.cur.execute(sql,(self.tdh,))

rows=self.cur.fetchall()

ip,port=rows[0]

para=[]

#读取配置明细信息

SELECTmxh,sm,zl,jssjcd,cgqbh,ys

FROMcgqpzmxb

orderbymxhasc

mxrows=self.cur.fetchall()

formxh,sm,zl,jssjcd,cgqbh,ysinmxrows:

mx={"

mxh"

:

mxh,

"

sm"

sm,

zl"

zl,

jssjcd"

jssjcd,

cgqbh"

cgqbh,

ys"

ys}

#读取验证信息

SELECTxh,yzgs

FROMcgqsjyzb

WHEREsjcjtdh=%sandmxh=%s

orderbyxhasc

self.cur.execute(sql,(self.tdh,mxh))

yzrows=self.cur.fetchall()

yz=[]

forxh,yzgsinyzrows:

_d={"

xh"

xh,"

yzgs"

yzgs}

yz.append(_d)

mx["

sjyz"

]=yz

#读取数据解析信息

SELECTgcxmbm,cdbm,avg_gs,max_gs,min_gs,inst_gs,tsz_gs,glz_gs

FROMcgqsjjxb

jxrows=self.cur.fetchall()

jx=[]

forgcxmbm,cdbm,avg_gs,max_gs,min_gs,inst_gs,tsz_gs,glz_gsinjxrows:

gcxmbm"

gcxmbm,

cdbm"

cdbm,

avg_gs"

avg_gs,

max_gs"

max_gs,

min_gs"

min_gs,

inst_gs"

inst_gs,"

tsz_gs"

tsz_gs,"

glz_gs"

glz_gs}

jx.append(_d)

sjjx"

]=jx

para.append(mx)

exceptExceptionase:

读取传感器配置信息失败!

exceptiondetail(e))

clsj=datetime.datetime.now()

formxinpara:

mxh=mx["

sm=mx["

zl=mx["

jssjcd=mx["

cgqbh=mx["

ys=mx["

sjyz=mx["

sjjx=mx["

#发送指令

data=codecs.decode(zl,'

hex'

self.udp.sendto(data,(ip,port))

data,_=self.udp.recvfrom(8192)

exceptsocket.timeout:

continue

#进行验证

foryzinsjyz:

gs=yz['

yzgs'

gs=self.gscl(gs)

ifnoteval(gs):

#解析

forjxinsjjx:

gcxmbm=jx['

gcxmbm'

cdbm=jx['

cdbm'

avg_gs=jx['

avg_gs'

max_gs=jx['

max_gs'

min_gs=jx['

min_gs'

inst_gs=jx['

inst_gs'

tsz_gs=jx['

tsz_gs'

glz_gs=jx['

glz_gs'

avg_v=None

ifavg_gsisnotNoneandavg_gs:

avg_gs=self.gscl(avg_gs)

avg_v=eval(avg_gs)

avg_v=round(avg_v,6)

max_v=None

ifmax_gsisnotNoneandmax_gs:

max_gs=self.gscl(max_gs)

max_v=eval(max_gs)

max_v=round(max_v,6)

min_v=None

ifmin_gsisnotNoneandmin_gs:

min_gs=self.gscl(min_gs)

min_v=eval(min_gs)

min_v=round(min_v,6)

inst_v=None

ifinst_gsisnotNoneandinst_gs:

inst_gs=self.gscl(inst_gs)

inst_v=eval(inst_gs)

inst_v=round(inst_v,6)

tsz_v=None

iftsz_gsisnotNoneandtsz_gs:

tsz_gs=self.gscl(tsz_gs)

tsz_v=eval(tsz_gs)

tsz_v='

%s'

%tsz_v

glz_v=None

ifglz_gsisnotNoneandglz_gs:

glz_gs=self.gscl(glz_gs)

glz_v=eval(glz_gs)

glz_v=round(glz_v,6)

#写数据库

insertintocdsjb(gcxmbm,cdbm,clsj,avg,max,min,inst,tsz,glz)

values(%s,%s,%s,%s,%s,%s,%s,%s,%s)

self.cur.execute(

sql,(gcxmbm,cdbm,clsj,avg_v,max_v,min_v,inst_v,tsz_v,glz_v))

except:

self.conn.rollback()

mit()

time.sleep(ys)

defgscl(self,gs):

gs=gs.replace('

{crc16}('

'

self.crc16(data'

{getint}('

self.getint(data,'

returngs

defgetint(self,data,start,end):

returnstruct.unpack('

h'

data[start:

end])[0]

defchkcrc16(self,data):

returnself.crc16(data[:

-2])==data[-2:

defcrc16(self,x):

ifnotisinstance(x,bytes):

raiseValueErr

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2