# -*- coding:utf-8 -*- import os, sys, time from device_manager import * from ssat_sdk.utils import LoggingUtil from ssat_sdk import sat_environment from ssat_sdk.utils import string_util TV_SYSTEM_DICT = {"MN":0,"BG":1,"DK":2,"I":3,"L":4,"L'":5} COLOR_SYSTEM_DICT = {"NTSC-STD":0,"NTSC-50":1,"NTSC-443":2,"PAL-STD":3,"PAL-60":4,"PAL-M":5,"PAL-N":6,"SECAM":7} 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', } class TG39Manager(): # 当前选择的ATV码流仪; ATV_SELECTIVE = sat_environment.getATVSelected() def __init__(self): self.devManager = DeviceManager.getInstance() if string_util.strcmp(TG39Manager.ATV_SELECTIVE,'TG39'): LoggingUtil.printLog("初始化TG39设备") elif string_util.strcmp(TG39Manager.ATV_SELECTIVE,'54200'): LoggingUtil.printLog("初始化54200设备") elif string_util.strcmp(TG39Manager.ATV_SELECTIVE,'3116'): LoggingUtil.printLog("初始化3116设备") def setCTYandCHN(self, countryID, channelID): """ RFCHA-arg1 For arg1, input the country name ID to set (as a decimal number). RFCHB-arg2 For arg2, input the channel ID to set (as a decimal number). countryID channelID 1 JAPAN 1 to 62 2 USA 2 to 83 3 EU 1 to 69 4 CHINA 1 to 68 5 UK 21 to 69 6 R 1 to 69 7 FRANCE 1 to 69 8 AUSTRALIA 1 to 69 9 JAPAN-C 1 to 63 10 USA-C 2 to 150 11 EU-C 2 to 56 12 CHINA-C 1 to 51 13 ITY 1 to 69 14 IRE 1 to 69 """ if string_util.strcmp(TG39Manager.ATV_SELECTIVE,'TG39'): self.setTG39CMD("RFCHA", countryID) self.setTG39CMD("RFCHB", channelID) elif string_util.strcmp(TG39Manager.ATV_SELECTIVE,'3116'): pass ''' freq: float, value:MHz color_system:string,value:("NTSC-STD","NTSC-50","NTSC-443","PAL-STD","PAL-60","PAL-M","PAL-N","SECAM") tv_system:string,value:(MN,BG,DK,I,L,L') level:float, value:(29.0 to 109.0) (dBu V/75欧) ''' def setChannel(self, freq, color_system, tv_system, level): if string_util.strcmp(TG39Manager.ATV_SELECTIVE,'TG39'): self.setTG39CMD("RFFREQ", freq) #freq: float MHz colorCode = COLOR_SYSTEM_DICT[color_system] self.setTG39CMD("VCOL", colorCode) systemCode = TV_SYSTEM_DICT[tv_system] self.setTG39CMD("RSYS", systemCode) self.setTG39CMD("RFLEV", level) elif string_util.strcmp(TG39Manager.ATV_SELECTIVE,'3116'): self.setTG39CMD("SYSFR", freq) self.setTG39CMD('SYSTV',SYSTV[color_system]) # 信号强度要与TG39使用同范围 # 3116:-80.00~0.00 # TG39:29.0~109.00 flevel = float(level) if flevel <= 29.00: level = '-80.0' elif flevel >= 109.00: level = '000.0' else: level = str(flevel - 109.0) self.setTG39CMD('SYSLV',level) ''' command:string, value:RS-232C command param:no type, value:Content ''' def setTG39CMD(self, command, param): if string_util.strcmp(TG39Manager.ATV_SELECTIVE,'TG39'): cmdLine = str(command) + " " + str(param) self.sendCmd(cmdLine) elif string_util.strcmp(TG39Manager.ATV_SELECTIVE,'3116'): cmdLine = str(command) + "=" + str(param) + '\r' self.sendCmd(cmdLine) def sendCmd(self, cmdLine): self.client = self.devManager.getDevService("tg39") self.client.send(cmdLine) print u"TG39指令执行结果:", self.client.recv() self.client.close()