home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Support
Watch / Listen Media
Television (MyTV frontend and TV-Server)
High band does not (always) work
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="blaudden" data-source="post: 296004" data-attributes="member: 26996"><p>Hi,</p><p></p><p>that was quick testing, bur unfortunately still bad results.</p><p></p><p>Have some more ideas and I assume you can recompile and test these yourself.</p><p></p><p>1. Try to not send any diseqc command at all by commenting out the call to "_hauppauge.SendDiseqCommand(parameters, channel);". Then we'll hope that the card itself send "something" when it changes channel.</p><p></p><p></p><p>2. There might actually be a small bug when we send the diseqc command for AntennaNr 0 (as you have selected). You can see in 'Hauppauge:<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite5" alt=":confused:" title="Confused :confused:" loading="lazy" data-shortname=":confused:" />endDiseqCommand' hos we set one bit for hi/low band, one bit for hortizontal/vertical and finally two bits to tell which LNB to select.</p><p></p><p>The "formula" used is antennaNr-1 which becomes -1 and then << 2. Thus we get a value always of FC or FF and that might not be what we want. Altough the loop I have added in case we get no PMT will try all values, we might have to get it right the first time?</p><p></p><p>So maybe you can change the code from:</p><p> byte cmd = 0xf0;</p><p> cmd |= (byte)(hiBand ? 1 : 0);</p><p> cmd |= (byte)((isHorizontal) ? 2 : 0);</p><p> cmd |= (byte)((antennaNr - 1) << 2);</p><p>to something like:</p><p> byte cmd = 0xf0;</p><p> cmd |= (byte)(hiBand ? 1 : 0);</p><p> cmd |= (byte)((isHorizontal) ? 2 : 0);</p><p> if (antennaNr != 0){</p><p> cmd |= (byte)((antennaNr - 1) << 2);</p><p> }</p><p></p><p>Well, that doesn't really feel like it should change much. Having those two bits set to 00 actually means LNB 1 <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p>3. Another option is to tell that you only want to set the two bits that tell hi/low and horz/vert.</p><p></p><p>You do that by changing</p><p> byte cmd = 0xf0;</p><p>to :</p><p> byte cmd = 0x30;</p><p></p><p></p><p>4. Well, if that does not work there are other ways to talk to the LNB. It should be possible to reset it with another DiseqC command.</p><p>You can read the spec if you like <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p><a href="http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/applic_info_turner-receiver.pdf" target="_blank">http://www.eutelsat.com/satellites/pdf/Diseqc/associated docs/applic_info_turner-receiver.pdf</a></p><p></p><p>Could you please tell me as much as possible about LNB and any switch you use.</p><p></p><p>BTW: The diseqc protocol is supposedly backward comaptible so it should send toneburst so that also older devices are switched fine.</p><p></p><p></p><p>/ Magnus</p><p></p><p>You see the comments here, descibing what that particular byte is called in the spec... <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p> byte[] diseqc = new byte[4];</p><p> diseqc[0] = 0xe0; // FirstTransmission = 0xe0,</p><p> diseqc[1] = 0x10; // Any LNB, Switcher or SMATV (Master to all...)</p><p> diseqc[2] = 0x38; // Write to Port group 0 (Committed switches)</p><p> diseqc[3] = cmd;</p><p></p><p>Hmm, I see that all other "drivers" use the antennanr -1 trick, so it might not be a bug after all.</p></blockquote><p></p>
[QUOTE="blaudden, post: 296004, member: 26996"] Hi, that was quick testing, bur unfortunately still bad results. Have some more ideas and I assume you can recompile and test these yourself. 1. Try to not send any diseqc command at all by commenting out the call to "_hauppauge.SendDiseqCommand(parameters, channel);". Then we'll hope that the card itself send "something" when it changes channel. 2. There might actually be a small bug when we send the diseqc command for AntennaNr 0 (as you have selected). You can see in 'Hauppauge::SendDiseqCommand' hos we set one bit for hi/low band, one bit for hortizontal/vertical and finally two bits to tell which LNB to select. The "formula" used is antennaNr-1 which becomes -1 and then << 2. Thus we get a value always of FC or FF and that might not be what we want. Altough the loop I have added in case we get no PMT will try all values, we might have to get it right the first time? So maybe you can change the code from: byte cmd = 0xf0; cmd |= (byte)(hiBand ? 1 : 0); cmd |= (byte)((isHorizontal) ? 2 : 0); cmd |= (byte)((antennaNr - 1) << 2); to something like: byte cmd = 0xf0; cmd |= (byte)(hiBand ? 1 : 0); cmd |= (byte)((isHorizontal) ? 2 : 0); if (antennaNr != 0){ cmd |= (byte)((antennaNr - 1) << 2); } Well, that doesn't really feel like it should change much. Having those two bits set to 00 actually means LNB 1 :) 3. Another option is to tell that you only want to set the two bits that tell hi/low and horz/vert. You do that by changing byte cmd = 0xf0; to : byte cmd = 0x30; 4. Well, if that does not work there are other ways to talk to the LNB. It should be possible to reset it with another DiseqC command. You can read the spec if you like :) [url]http://www.eutelsat.com/satellites/pdf/Diseqc/associated%20docs/applic_info_turner-receiver.pdf[/url] Could you please tell me as much as possible about LNB and any switch you use. BTW: The diseqc protocol is supposedly backward comaptible so it should send toneburst so that also older devices are switched fine. / Magnus You see the comments here, descibing what that particular byte is called in the spec... :) byte[] diseqc = new byte[4]; diseqc[0] = 0xe0; // FirstTransmission = 0xe0, diseqc[1] = 0x10; // Any LNB, Switcher or SMATV (Master to all...) diseqc[2] = 0x38; // Write to Port group 0 (Committed switches) diseqc[3] = cmd; Hmm, I see that all other "drivers" use the antennanr -1 trick, so it might not be a bug after all. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Support
Watch / Listen Media
Television (MyTV frontend and TV-Server)
High band does not (always) work
Contact us
RSS
Top
Bottom