All,
Attached is a port to python of the mythtv's dct-tuner code for setting the channel of a Motorola DCT2XXX series set top box using the serial port. I have packaged the code that does the actual tuning as a stand-alone python module that I install in $PYTHONLIB/site-packages, but maybe it would make more sense to package it with the freevo distribution. The code relies on having the pyserial module installed on the system.
In any case, I have attached the code, you can repackage it or throw it out as you see fit. Also attached is a freevo external tuner plugin, dct2224serial.py, that uses the code. It should go in the tv/plugins directory. It is activated by adding a line like the following to local_config.py:
plugin_external_tuner = plugin.activate("tv.dct2224serial")If anybody who has a Motorola DCT2XXX series set top box wants more detailed instructions, you can go here http://www.dseifert.net/code/serialtuner/ for a write up.
Cheers, Doug Seifert
serialtuner.tar.gz
Description: GNU Zip compressed data# -*- coding: iso-8859-1 -*- # ----------------------------------------------------------------------- # dct2224serial.py - Send serial port commands to a Motorola DCT2224 set top box used by # Comcast, among many others. Requires the set top box and # freevo box be connected via a serial cable and that the set top # box's serial port is enabled. Comcast in San Pedro, CA, # seems to have this enabled on their set top boxes by default. # Contact Doug Seifert (doug at dseifert dot net) for help. # ----------------------------------------------------------------------- # # Notes: This code uses the serialtuner module written by Doug Seifert # (doug at dseifert dot net) # # Todo: # # ----------------------------------------------------------------------- # $Log$ # ----------------------------------------------------------------------- # Freevo - A Home Theater PC framework # Copyright (C) 2003 Krister Lagerstrom, et al. # Please see the file freevo/Docs/CREDITS for a complete list of authors. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MER- # CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ----------------------------------------------------------------------- */ import plugin import serialtuner.dct2224tuner class PluginInterface(plugin.Plugin): def __init__(self): plugin.Plugin.__init__(self) self.tuner = serialtuner.dct2224tuner.DCT2224Tuner() plugin.register(self, 'EXTERNAL_TUNER') def setChannel(self, chan): print "changing channel to [",chan,"]" self.tuner.setChannel(chan)
