123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- # -*- 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()
|