123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- # -*- coding: UTF-8 -*-
- import io,sys,time
- reload(sys)
- sys.setdefaultencoding('utf-8')
- sys.path.append("..")
- import binascii
- import serial
- from ssat_sdk.baseSerial import baseSerial
- from ssat_sdk import sat_environment
- from ssat_sdk.device_manage.Model_3116A_CmdParse import C3316A_CmdParse
- from ssat_sdk.utils.AbnormalClient import abnormal_client
- class C3316A(baseSerial):
- def __init__(self, port):
- self.port = port
- baseSerial.__init__(self)
- def Open(self):
- return self.open(self.port, baudrate=19200, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, timeout=2, writeTimeout=0.5)
- def __del__(self):
- self.close()
-
- # 用于发命令前,检测串口是否打开;
- def checkport(self):
- if not self.ser.is_open:
- self.reOpen()
-
- return self.ser.is_open
- '''
- 描述:发送命令;
- 返回:True表示命令成功执行;
- '''
- def sendCmd(self, command, data, ctrl = True):
- cmd = C3316A_CmdParse()
- package = cmd.parseCommand(command, data, ctrl)
- if self.write(package):
- package = self.read()
- if ctrl == True:
- return cmd.parseResult(package)
- else:
- ret = cmd.parseResult(package)
- # 获取设置信息;
- print 'read_info=',cmd.Result
- return ret
-
- if self.exception is not None:
- abnormal_client.sendAbnormal('ATV', str(self.exception))
- return False
-
- def sendCmdline(self, cmdline):
- cmd = C3316A_CmdParse()
- package = cmd.parseCmdLine(cmdline)
- if package is None:
- return False
- if self.write(package):
- package = self.read()
- if cmd.CmdType == '=':
- return cmd.parseResult(package)
- else:
- ret = cmd.parseResult(package)
- # 获取设置信息;
- print 'read_info=',cmd.Result
- return ret
-
- if self.exception is not None:
- abnormal_client.sendAbnormal('ATV', str(self.exception))
-
- return False
-
- def sendCmds(self, cmdlines):
- comma = cmdlines.find(',')
- if comma == -1:
- return self.sendCmdline(cmdlines)
- else:
- result = True
- while comma != -1:
- cmd = cmdlines[:comma]
- if self.sendCmdline(cmd) == False:
- result = False
- cmdlines = cmdlines[comma+1:]
- comma = cmdlines.find(',')
- # 最后一条命令;
- if self.sendCmdline(cmdlines) == False:
- result = False
-
- return result
- if __name__ == "__main__":
- scbc = C3316A(5)
- if scbc.Open() == False:
- print 'open false'
-
- if scbc.checkport() == True:
- if 0:
- scbc.sendCmd("SYSTV", '6')
- scbc.sendCmd('SYSFR', '49.75')
- scbc.sendCmd('SYSLV', '-10.00')
- if 0:
- # 设置频率:对应TG39中的RFFREQ命令:'RFFREQ 600.00'
- scbc.sendCmd('SYSFR', '600.00')#6个字符:***.**
- # 设置系统:对应TG39中的VCOL命令和RSYS命令 ???;
- SYSTV = {
- "NTSC M": '0', #TV Standard
- "NTSC4.43 B/G": '1',
- "NNTSC4.43 D/K":'2',
- "NTSC4.43 I": '3',
- "PAL B/G": '4',
- "PAL I": '5',
- "PAL D": '6',
- "PAL-N": '7',
- "PAL-M": '8',
- "PAL D(CHINA)": '9',
- "PAL B(AUS)": '10',
- "SECAM B/G": '11',
- "SECAM D/K/K1": '12',
- "SECAM L": '13',
- }
- if 0:
- for item in SYSTV:
- print 'cmd=',item
- scbc.sendCmd("SYSTV", SYSTV[item])
- time.sleep(0.9)
- if 0:
- # 设置信号强度:对应TG39中的RFLEV ???
- scbc.sendCmd('SYSLV','90.0', False)#5个字符:***.*
- scbc.sendCmd('SYSLV','-80.0')#5个字符:***.*
- if 0:
- # 先设置到DSVPS Programmable1~4.
- scbc.sendCmd('DSVPS','1')#1-4
- # 设置国家id:对应TG39中的RFCHA; ???
- scbc.sendCmd('DSVCT','000')#3个字符:***
- # 设置频道id:对应TG39中的RFCHB ???
- scbc.sendCmd('DSVPT','000')#3个字符:***
- # 先设置DSPDC Programmable1~4.
- scbc.sendCmd('DSPDC','1')#1-4
- # 设置国家id:对应TG39中的RFCHA; ???
- scbc.sendCmd('DSPCT','000')
- # 设置频道id:对应TG39中的RFCHB ???
- scbc.sendCmd('DSPPT','000')
-
- if 0:
- # 设置彩条:0000~003
- scbc.sendCmd('VDOVP','0000')#4字符0000~003
- # 设置白场;
- scbc.sendCmd('VDOVP','0500')#0500~0504
- # 设置黑场???
- # 设置方格信号开关???
- # 重显率关闭、开启???
- # 复合信号????
- if 0:
- # 不能在closed caption
- scbc.sendCmd("SYSTV", '5')
- # teletext off;
- scbc.sendCmd('DSSYS','00')
- # teletext Bxx:01-08
- scbc.sendCmd('DSSYS','01')
- # teletext Auto;
- scbc.sendCmd('DSSYS', '09')
- if 1:
- # closed caption,要在NTSC M状态下才能关闭;
- scbc.sendCmd("SYSTV", '0')
- scbc.sendCmd('DSSYS', '10')
- # CC Number1-Number9:00-08
- scbc.sendCmd('DSCCS','1')
- del scbc
|