DiSEqC 1.2 v0.2 for Kathrein UFS910
Commands & pseudo code for diseqcsend1.2
----------------------------------------
diseqcsend 1.2 <Framing Byte> <Address Byte> <Command Byte> (<Parameter>,...)
(All input in decimal)
<Framing Byte>:
E0 - No reply requested from Master
E2 - Reply requested
<Address Byte>:
10 - Uncommitted switch
30 - All motors (wildcard)
31 - Azimuth motor
32 - Elevation motor
<Command Byte> (<Parameter>,...):
DiseqC 1.2 Hex-command from master to all motors (no reply):
E0 30 xx xx
XX XX - Rotor commands & parameters:
6B NN - Drive motor to stored Sat position NN
6B 00 - Drive motor to reference position (usually due south)
68 NN - Drive motor East, NN positive (01-7F): timeout after N seconds
68 NN - NN negative (80-FF): Move motor N steps (FF equal one step)
69 NN - Drive motor West, NN positive (01-7F): timeout after N seconds
69 NN - NN negative (80-FF): Move motor N steps (FF equals one step
60 - Stop motor movement
66 - Set motor East limit
67 - Set motor West limit
6A NN - Store Sat to motor position NN
6F 00 - Recalculate all Sat positions based on current
DiseqC 1.2 Code examples for AAF Menu & Linux scripts:
------------------------------------------------------
# osdshell.cfg with 1.2 Motor Dish Control & setup
font=/data/menue/ARIALNBI2.ttf
newBox=true
#lirc_sense=400000
popupTime=3
entrie_count=9
menu_elements=9
title=AAF 1.2 Main-OSD
1_sh=Emu Management|/data/plugins/emuman.mnu|MENU
2_sh=Emu Setup|/data/plugins/emusetup.mnu|MENU
3_sh=Network configuration|/data/plugins/network.mnu|MENU
4_sh=PICVIEW|/data/menue/osd.sh|EXIT_BLOCK
5_sh=Sleep Timer|/data/plugins/trigsleep.sh|INPUT|3|Sleep Timer|Input in XXX Minutes|ONLY_123
6_sh=Restart|/data/www/cgi-bin/reboot.sh|NORMAL
7_sh=Shutdown|/data/plugins/shutdown.sh|NORMAL
8_sh=Motor Dish Control|/data/plugins/ssat.sh|INPUT|3|Motor Dish Control|Input Satellite Position|ONLY_123
9_sh=Motor Dish Setup|/data/plugins/dishsetup.mnu|MENU
debugMode=true
# dishsetup.mnu
entrie_count=9
menu_elements=9
title= Dish Setup
1_sh=Move dish to reference position|/data/plugins/mdtrp.sh|NORMAL
2_sh=Move dish one step east|/data/plugins/mdose.sh|NORMAL
3_sh=Move dish one step west|/data/plugins/mdosw.sh|NORMAL
4_sh=Drive dish to east|/data/plugins/ddte.sh|NORMAL
5_sh=Drive dish to west|/data/plugins/ddtw.sh|NORMAL
6_sh=Set motor East limit|/data/plugins/smel.sh|NORMAL
7_sh=Set motor East limit|/data/plugins/smwl.sh|NORMAL
8_sh=Store current position to motor|/data/plugins/scptm.sh|INPUT|3|Motor Position|Input motor position|ONLY_123
9_sh=Recalculate all Sat positions|/data/plugins/rasp.sh|NORMAL
########################
# Dish setup menu: #
########################
#!/bin/sh
# mdtrp.sh
# 1: Move dish to reference position:
#
/data/bin/diseqcsend1.2 224 48 107 0
#!/bin/sh
# mdose.sh
# 2: Move dish one step east:
#
/data/bin/diseqcsend1.2 224 48 104 255
#!/bin/sh
# mdosw.sh
# 3: Move dish one step west:
#
/data/bin/diseqcsend1.2 224 48 105 255
#!/bin/sh
# ddte.sh
# 4: Drive dish to east for two seconds:
#
/data/bin/diseqcsend1.2 224 48 104 2
sleep 2
/data/bin/diseqcsend1.2 224 48 96
#!/bin/sh
# ddtw.sh
# 5: Drive dish to west for two seconds:
#
/data/bin/diseqcsend1.2 224 48 105 2
sleep 2
/data/bin/diseqcsend1.2 224 48 96
#!/bin/sh
# smel.sh
# 6: Set motor East limit:
#
/data/bin/diseqcsend1.2 224 48 102
#!/bin/sh
# smwl.sh
# 7: Set motor West limit
#
/data/bin/diseqcsend1.2 224 48 103
#!/bin/sh
# scptm.sh
# 8: Store current position to motor:
#
ssat=`grep '[0-9]' /tmp/input.log`
if [ $ssat = "0" ]
then
/data/vfdctl "Not a defined dish position"
elif [ $ssat -lt 32 ]
then
/data/vfdctl "Stored current Sat to Motor position $ssat "
/data/plugins/diseqcsend1.2 224 48 106 $ssat
else
/data/vfdctl "Not a defined dish position"
fi
#!/bin/sh
# rasp.sh
# 9: Recalculate all Sat positions based on current position:
#
/data/bin/diseqcsend1.2 224 48 111 00
########################
# Dish control menu: #
########################
#!/bin/sh
#
# ssat.sh
# Move Dish to a stored motor position
#
ssat=`grep '[0-9]' /tmp/input.log`
if [ $ssat = "0" ]
then
/data/vfdctl "Not a defined dish position"
elif [ $ssat -lt 32 ]
then
/data/vfdctl "Driving motor to Sat position $ssat "
/data/plugins/diseqcsend1.2 224 48 107 $ssat
else
/data/vfdctl "Not a defined dish position"
fi
-------------------------------------
Not tested or debugged but if some want to test anyway.....
-Upload to 910 /data/plugins and /bin
-Chmod to 755
-Reboot box
-Play and have fun !!!!
Almost forgot: All cred for the binary to konfetti & chriwi !!!