Includes original BDA driver source (headers, C++ implementation, INF installer files), DiSEqC implementation PDF with extracted markdown and SVG vector graphics.
80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
# DiSEqC for the GenPix Skywalker-1 BDA Driver (Extended)
|
|
|
|
**Implementation Guidelines for Applications**
|
|
|
|
*Author: Devendra | Created: 2009-07-09 | Source: Microsoft Office Word 2007*
|
|
|
|
---
|
|
|
|
## I. GUID for the SkyWalker1 Extended property
|
|
|
|
```c
|
|
//Used to extend the feature of the BDA
|
|
//{0B5221EB-F4C4-4976-B959-EF74427464D9}
|
|
#define STATIC_KSPROPSETID_BdaExtendedProperty \
|
|
0x0B5221EB, 0xF4C4, 0x4976, 0xB9, 0x59, 0xEF, 0x74, 0x42, 0x74, 0x64, 0xD9
|
|
|
|
DEFINE_GUIDSTRUCT("0B5221EB-F4C4-4976-B959-EF74427464D9", KSPROPSETID_BdaExtendedProperty);
|
|
#define KSPROPSETID_BdaExtendedProperty DEFINE_GUIDNAMED(KSPROPSETID_BdaExtendedProperty)
|
|
```
|
|
|
|
## II. Extended Property List (Only DiSEqC support is extended)
|
|
|
|
```c
|
|
//Extended Property List
|
|
typedef enum __KSPROPERTY_EXTENDED
|
|
{
|
|
/* DiSEqC Command */
|
|
//Used to send the Digital Satellite Equipment Control (DiSEqC)
|
|
//Commands by application
|
|
KSPROPERTY_BDA_DISEQC = 0, //Extension Property 1
|
|
} KSPROPERTY_EXTENDED;
|
|
```
|
|
|
|
## III. Enumeration for the Simple Tone Burst
|
|
|
|
```c
|
|
typedef enum enSimpleToneBurst
|
|
{
|
|
SEC_MINI_A,
|
|
SEC_MINI_B
|
|
} SIMPLE_TONE_BURST;
|
|
```
|
|
|
|
## IV. DiSEqC Command Structure
|
|
|
|
```c
|
|
typedef struct __DISEQC_COMMAND
|
|
{
|
|
UCHAR ucMessage[MAX_DISEQC_COMMAND_LENGTH];
|
|
/* Byte - 0 : Framing,
|
|
Byte - 1 : Address,
|
|
Byte - 2 : Command,
|
|
Byte - 3 : Data[0],
|
|
Byte - 4 : Data[1],
|
|
Byte - 5 : Data[2] */
|
|
|
|
UCHAR ucMessageLength;
|
|
/* The Valid values for DiSEqC Command are 3...6
|
|
If this value is 1 then Byte 0 is taken as Simple "Tone Burst"
|
|
Control Command */
|
|
} DISEQC_COMMAND, *PDISEQC_COMMAND;
|
|
```
|
|
|
|
## V. Operation
|
|
|
|
### i. To send the Simple Burst command
|
|
|
|
1. Create the `DISEQC_COMMAND` Structure
|
|
2. Set `ucMessage[0]` to either `SEC_MINI_A` or `SEC_MINI_B`
|
|
3. Set `ucMessageLength` as `1`
|
|
|
|
### ii. To send DiSEqC commands
|
|
|
|
1. Create the `DISEQC_COMMAND` Structure
|
|
2. Set the Framing value to `ucMessage[0]` (e.g. `0xE0`)
|
|
3. Set the Device Address to `ucMessage[1]` (e.g. `0x01`)
|
|
4. Send the Command for the Device to `ucMessage[2]`
|
|
5. If required, set the Data bytes `ucMessage[3]`, `ucMessage[4]`, `ucMessage[5]`
|
|
6. Set `ucMessageLength` accordingly. Valid values are 3 to 6.
|