[tv/genconf/sat_base_ng] Import initial de la nouvelle conf de mumu
darcs-hash:20100912132752-ffbb2-1b434d335fdc05bcc2ba4d14c9312f3ed1243c69.gz
This commit is contained in:
parent
4968851255
commit
9ab688409f
1 changed files with 206 additions and 0 deletions
206
tv/genconf/sat_base_ng.py
Executable file
206
tv/genconf/sat_base_ng.py
Executable file
|
@ -0,0 +1,206 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- coding: iso8859-15 -*-
|
||||
|
||||
"""
|
||||
Configuration de base des différents transpondeurs disponibles
|
||||
"""
|
||||
|
||||
#Auteurs: Frédéric Pauget, Brice Dubost, Nicolas Dandrimont
|
||||
#Licence : GPLv2
|
||||
|
||||
from commands import getoutput
|
||||
from time import sleep
|
||||
import os, socket
|
||||
|
||||
import textwrap
|
||||
|
||||
IP = socket.gethostbyaddr(socket.gethostname())[-1][0]
|
||||
|
||||
class CardBusy(Exception) :
|
||||
""" La carte est déja utilisée """
|
||||
|
||||
class NotRunning(Exception) :
|
||||
""" La carte ne diffuse rien """
|
||||
|
||||
class Card(object):
|
||||
""" Classe parent de toute classe de transpondeur """
|
||||
# Niveux de verbosite :
|
||||
# 0 : ne dit rien
|
||||
# 1 : messages à caractères informatifs
|
||||
# 2 : messages de debug
|
||||
# 3 : ne permet pas à mumudvb de daemonizer
|
||||
verbose = 3
|
||||
|
||||
CONF_FILE = "/etc/sat/carte%i.conf" # %i : numero de la carte
|
||||
|
||||
timeout_accord = 20 #en secondes
|
||||
timeout_no_diff = 0 #en secondes
|
||||
|
||||
srate = 0
|
||||
bandwidth = ""
|
||||
|
||||
template_conf_TNT = textwrap.dedent("""\
|
||||
### Fichier généré par /usr/scripts/tv/*
|
||||
### Ne pas éditer !
|
||||
|
||||
# Autoconfiguration complète
|
||||
autoconfiguration=2
|
||||
|
||||
# Configuration multicast
|
||||
multicast_auto_join=1
|
||||
common_port=1234
|
||||
|
||||
# Ne pas toucher aux chaines chiffrées
|
||||
dont_send_scrambled=1
|
||||
dvr_buffer_size=100
|
||||
|
||||
# Configuration de la carte TNT
|
||||
freq=%(freq)i
|
||||
card=%(card)i
|
||||
bandwidth=%(bandwidth)s
|
||||
|
||||
# Timeouts
|
||||
timeout_accord=%(timeout_accord)i
|
||||
timeout_no_diff=%(timeout_no_diff)i
|
||||
|
||||
# Autoconfiguration des chaines
|
||||
autoconf_ip=239.%(ip)s.%%card.%%number
|
||||
autoconf_lcn=1
|
||||
autoconf_name_template=TNT%%2lcn %%name
|
||||
|
||||
# Configuration SAP
|
||||
sap_organisation=crans
|
||||
sap_default_group=TNT
|
||||
""")
|
||||
|
||||
|
||||
template_conf_SAT = textwrap.dedent("""\
|
||||
### Fichier généré par /usr/scripts/tv/*
|
||||
### Ne pas éditer !
|
||||
|
||||
# Autoconfiguration complète
|
||||
autoconfiguration=2
|
||||
|
||||
# Configuration multicast
|
||||
multicast_auto_join=1
|
||||
common_port=1234
|
||||
|
||||
# Ne pas toucher aux chaines chiffrées
|
||||
dont_send_scrambled=1
|
||||
dvr_buffer_size=100
|
||||
|
||||
# Configuration de la carte Sat
|
||||
freq=%(freq)i
|
||||
pol=%(pol)s
|
||||
card=%(card)i
|
||||
srate=%(srate)i
|
||||
|
||||
# Timeouts
|
||||
timeout_accord=%(timeout_accord)i
|
||||
timeout_no_diff=%(timeout_no_diff)i
|
||||
|
||||
# Autoconfiguration des chaines
|
||||
autoconf_ip=239.%(ip)s.%%card.%%number
|
||||
autoconf_lcn=1
|
||||
autoconf_name_template=%%name
|
||||
|
||||
# Configuration SAP
|
||||
sap_organisation=crans
|
||||
sap_default_group=%(sap)s
|
||||
""")
|
||||
|
||||
|
||||
def __cmp__(a,b) :
|
||||
for attr in ( 'card', 'freq', 'chaines' ) :
|
||||
if getattr(a,attr) != getattr(b,attr) :
|
||||
return -2
|
||||
return 0
|
||||
|
||||
def __init__(self, card) :
|
||||
""" Initalisation card est le numéro (entier) de la carte
|
||||
correspondante """
|
||||
try :
|
||||
self.freq = int(self.__class__.__name__.split('_')[-1])
|
||||
self.pol = ''
|
||||
except ValueError:
|
||||
try:
|
||||
self.freq = int(self.__class__.__name__.split('_')[-1][:-1])
|
||||
self.pol = self.__class__.__name__.split('_')[-1][-1]
|
||||
except ValueError:
|
||||
# On ne pourra pas faire grand chose à part killer le flux de la carte
|
||||
self.freq = ''
|
||||
self.pol = ''
|
||||
self.classe = self.__class__.__name__.split('_')[0]
|
||||
self.card = card
|
||||
self.sap = self.classe
|
||||
|
||||
def gen_conf(self) :
|
||||
""" Génère le fichier de conf """
|
||||
if not self.freq :
|
||||
if self.verbose > 1 : print "Instance ne permettant pas la génération de la conf"
|
||||
return
|
||||
|
||||
fd = open(self.CONF_FILE % self.card,'w')
|
||||
# Entète du fichier
|
||||
fd.write( getattr(self, 'template_conf_%s' % self.classe) %
|
||||
{ 'bandwidth' : self.bandwidth,
|
||||
'freq' : self.freq ,
|
||||
'card' : self.card ,
|
||||
'timeout_accord' : self.timeout_accord ,
|
||||
'timeout_no_diff' : self.timeout_no_diff,
|
||||
'pol': self.pol,
|
||||
'sap': self.sap,
|
||||
'srate': self.srate,
|
||||
'ip': IP.split('.')[-1]} )
|
||||
fd.close()
|
||||
|
||||
def start(self) :
|
||||
""" Lance la diffusion """
|
||||
if not self.freq :
|
||||
if self.verbose > 1 : print "Instance ne permettant pas le lancement d'un flux"
|
||||
return
|
||||
|
||||
if self.verbose >0 :
|
||||
print "Generation de la conf de %s sur la carte %i" % (self.__class__.__name__, self.card)
|
||||
|
||||
self.gen_conf()
|
||||
if self.verbose >0 : print " OK"
|
||||
|
||||
class TNT_base(Card) :
|
||||
bandwidth="8MHz"
|
||||
|
||||
class TNT_R1_586000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R2_474000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R3_522000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R4_498000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R5_538000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R6_562000(TNT_base):
|
||||
pass
|
||||
|
||||
class TNT_R7_490000(TNT_base):
|
||||
pass
|
||||
|
||||
class SAT_UK_base(Card):
|
||||
sap="UK"
|
||||
|
||||
class SAT_10773h(SAT_UK_base):
|
||||
"""BBC"""
|
||||
srate = 22000
|
||||
|
||||
class SAT_10714h(SAT_UK_base):
|
||||
"""Channel4"""
|
||||
srate = 22000
|
||||
|
||||
class SAT_12480v(SAT_UK_base):
|
||||
"""Channel 4"""
|
||||
srate = 27500
|
Loading…
Add table
Add a link
Reference in a new issue