skywalker-1/docs/diseqc/diseqc-skywalker-1.md
Ryan Malloy bbdcb243dc Normalize line endings to LF across entire repository
Apply .gitattributes normalization to convert all CRLF line
endings inherited from Windows-origin source files to Unix LF.
175 files, zero content changes.
2026-02-20 10:55:50 -07:00

80 lines
2.2 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.