What is the correct way to tune (and scan) an ATSC channel?

I am trying to understand how most applications configure ATSC. Suppose I already have an ATSC setup request that I received through

ITuneRequest *pITuneRequest = NULL;
pATSCTuningSpace->CreateTuneRequest(&pTuneRequest)`

There seem to be three common methods:

1) Create a list of all major.minor channels and map them to a physical channel , then tune in to this physical channel whenever a major.minor request is requested. This map is built using the following code:

for i = 2 to 69
    tune_to_physical_channel(i)
    if (tuner_has_lock())
         add_to_known_list(i, major_of(i), minor_of(i));
next

The user interface displays only the list of major.minor channels for the user.

, , , , , ; , 30 43.1, , , 43.2! ?

2) major.minor. , . , : 8.1, 8.2, 43.1, 43.2, 43.3, 49.1, 49.2.

8.1 8.2 , :

IATSCChannelTuneRequest* pIATSCChannelTuneRequest = NULL;
IATSCLocator *pIATSCLocator = NULL;
hr = pITuneRequest->QueryInterface( IID_IATSCChannelTuneRequest, 
            (void**)&pIATSCChannelTuneRequest); 
pIATSCChannelTuneRequest->put_Channel(lMajorChannel);
pIATSCChannelTuneRequest->put_MinorChannel(lMinorChannel);
::CoCreateInstance( CLSID_ATSCLocator, 0, CLSCTX_INPROC, IID_IATSCLocator,       
            (void**)&pIATSCLocator);
pIATSCLocator->put_CarrierFrequency(-1);
pIATSCLocator->put_SymbolRate(-1);
pIATSCLocator->put_PhysicalChannel(-1);
pIATSCChannelTuneRequest->put_Locator(pIATSCLocator);

. ? ( WinTV) .

3) major.minor, . , , , , , . , .

, , major.minor → frequency, # 1:

foreach (frequency f in frequency_array)
    tune_to_frequency (f)
    if (tuner_has_lock())
         add_to_known_list(f, major_of(f), minor_of(f));
next

, : / ATSC?

+3
1

, , : Major.Minor . , 8.1 8.2 .

, Channel MinorChannel . , PhysicalChannel (RFChannel) . , , Channel, MinorChannel PhysicalChannel .

( CarrierFrequency) -1 TuneRequest.

, :

http://transition.fcc.gov/mb/engineering/dtvmaps/
http://www.tvfool.com

, , (RF) antennaweb.org. , - , .

+2

All Articles