Signal strength
Forum rules
Ceton no longer participate in this forum. Official support may still be handled via the Ceton Ticket system.
Ceton no longer participate in this forum. Official support may still be handled via the Ceton Ticket system.
-
- Posts: 10
- Joined: Mon Aug 27, 2012 1:05 am
- Location:
- HTPC Specs:
Signal strength
Is there a way to measure the signal strength of an eth 6?
-
- Posts: 575
- Joined: Tue Feb 12, 2013 1:14 am
- Location: Monroe, NC
- HTPC Specs:
AllCetonSignals. You need to have internet explorer run it. save as .hta extension. copy all the text below in a notepad and change file to a .hta from txt. You need to turn on file extensions on in your folder properties.
Code: Select all
<html>
<head>
</head>
<body>
<script type="text/vbscript">
'
' -----------------------------------------------------------------------------------------------------------------
' AllCetonSignals.hta
' Script For Reading All Signal Level, SNR, and Frequency information for Ceton InfiniTV4 tuner.
'
' Based on CetonSignals.hta script
' Author: User:WhatHappend from http://www.thegreenbutton.tv/forums/ , http://experts.windows.com
' 01/15/13
'
' History -
' 01/15/13 - Improve measurement accuracy by adding more delay after tuning channel
' 01/15/13 - First Version uploaded to http://experts.windows.com/frms/windows_entertainment_and_connected_home/f/115/t/103442.aspx
' -----------------------------------------------------------------------------------------------------------------
'
const BaseCetonUrl = "http://192.168.200.1"
DIM CetonChannelXMLUrl
CetonChannelXMLUrl = BaseCetonUrl & "/view_channel_map.cgi?page=0&xml=1"
const MaxLenChanNums = 120
'
' Progress bar class
'
Class ProgressBar
Private m_PercentComplete
Private m_CurrentStep
Private m_ProgressBar
Private m_Title
Private m_Text
Private m_StatusBarText
'Initialize defaults
Private Sub ProgessBar_Initialize
m_PercentComplete = 0
m_CurrentStep = 0
m_Title = "Progress"
m_Text = ""
End Sub
Public Function SetTitle(pTitle)
m_Title = pTitle
End Function
Public Function SetText(pText)
m_Text = pText
End Function
Public Function Update(percentComplete)
m_PercentComplete = Int(percentComplete)
UpdateProgressBar()
End Function
Public Function Show()
Set m_ProgressBar = CreateObject("InternetExplorer.Application")
'in code, the colon acts as a line feed
m_ProgressBar.navigate2 "about:blank" : m_ProgressBar.width = 320 : m_ProgressBar.height = 40 : m_ProgressBar.toolbar = false : m_ProgressBar.menubar = false : m_ProgressBar.statusbar = false : m_ProgressBar.visible = True
m_ProgressBar.document.write "<body Scroll=no style='margin:0px;padding:0px;'><div style='text-align:center;'><span name='PC' id='PC'>0</span></div>"
m_ProgressBar.document.write "<div id='statusbar' name='statusbar' style='border:1px solid blue;line-height:10px;height:10px;color:blue;'></div>"
m_ProgressBar.document.write "<div style='text-align:center'><span id='text' name='text'></span></div>"
m_ProgressBar.document.focus()
End Function
Public Function Close()
m_ProgressBar.quit
Set m_ProgressBar = Nothing
End Function
Private Function UpdateProgressBar()
If m_PercentComplete = 0 Then
m_StatusBarText = ""
End If
For n = m_CurrentStep to m_PercentComplete - 1
m_StatusBarText = m_StatusBarText & "|"
m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
m_ProgressBar.Document.title = n & "% Complete : " & m_Title
m_ProgressBar.Document.GetElementById("PC").InnerHtml = n & "% Complete : " & m_Title
'wscript.sleep 10
Next
m_ProgressBar.Document.GetElementById("statusbar").InnerHtml = m_StatusBarText
m_ProgressBar.Document.title = m_PercentComplete & "% Complete : " & m_Title
m_ProgressBar.Document.GetElementById("PC").InnerHtml = m_PercentComplete & "% Complete : " & m_Title
m_ProgressBar.Document.GetElementById("text").InnerHtml = m_Text
m_CurrentStep = m_PercentComplete
m_ProgressBar.document.focus()
End Function
End Class
'
' Channel Class
' Holds the Channel's information
'
Class Channel
Public CH_numbers
Public frequency
Public number
Public modulation
Public Function Clone()
Set Clone = New Channel
Clone.CH_numbers = CH_numbers
Clone.frequency = frequency
Clone.number = number
Clone.modulation = modulation
End Function
End Class
'
' Class to keep track of all of the Channels found in line-up
'
Const NumMinMaxToTrack = 100
Class ChannelList
Public sizeOfAllFreqChannels
Public AllFreqChannels()
Public NumberOfChannels
Public Sub Class_Initialize()
NumberOfChannels = 0
End Sub
'
'
' Add a Channel
'
Public Sub AddChannel( chan )
Dim i,x,added
chan.CH_numbers = CStr(chan.number)
' Make a Deep copies of Chan for the Smallest Freq and all Freq tracking
Dim lowChan
Set lowChan = chan.Clone()
'Set AllFreqChannels(NumberOfChannels) = chan.Clone() ' Save Deep Copy of Channel in All list
NumberOfChannels = NumberOfChannels + 1
added = False
For i = 1 To sizeOfAllFreqChannels
If lowChan.frequency = AllFreqChannels(i).frequency Then
' This Frequency already exists, add this channel number to the list
' cap channel number list len to MaxLenChanNums
If Len(AllFreqChannels(i).CH_numbers) < MaxLenChanNums Then
AllFreqChannels(i).CH_numbers = AllFreqChannels(i).CH_numbers & ";" & lowChan.CH_numbers
End If
added = True
Exit For
ElseIf lowChan.frequency < AllFreqChannels(i).frequency Then
' Increment Count to indicate the new inserted frequency.
sizeOfAllFreqChannels = sizeOfAllFreqChannels + 1
ReDim Preserve AllFreqChannels(sizeOfAllFreqChannels)
' Shift all values to make room for new value
For x = sizeOfAllFreqChannels to i + 1 Step -1
Set AllFreqChannels(x) = AllFreqChannels(x-1)
Next
Set AllFreqChannels(i) = lowChan
added = True
Exit For
End If
Next
If Not added Then
sizeOfAllFreqChannels = sizeOfAllFreqChannels + 1
ReDim Preserve AllFreqChannels(sizeOfAllFreqChannels)
Set AllFreqChannels(sizeOfAllFreqChannels) = lowChan
End IF
End Sub
End Class
'
' Retreive the Signal, SNR, & Frequency for the passed in channel#
'
Sub WriteFrequencyTable( IdleInstance, in_channel, channelList )
Dim SNR, Signal, Frequency, intSNR
Dim RegexObj
Set RegexObj = New RegExp
RegexObj.Global = True
RegexObj.Pattern = "[^\d.\-]"
Dim oHF , objHTTP
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.open "POST", BaseCetonUrl & "/channel_request.cgi", False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send "instance_id="&IdleInstance& Chr(38) & "channel=" & in_channel
If objHTTP.Status = 200 Then
' This loop keeps checking the channel until the Ceton's returned channel == requested channel
Do
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=cas&v=VirtualChannelNumber", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
Loop Until ( CInt(oHF.body.innerHTML) = CInt(in_channel) )
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=tuner&v=Frequency", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
Frequency = CStr(oHF.body.innerHTML)
' Delay before measuring the Signal level and SNR
For yy = 1 To 3
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=tuner&v=Frequency", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
Next
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=diag&v=Signal_Level", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
Signal = CStr(oHF.body.innerHTML)
If IsNumeric(RegexObj.Replace(Signal, "")) Then
dblSignal = CDbl(RegexObj.Replace(Signal, ""))
Else
dblSignal = 0
End If
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=diag&v=Signal_SNR", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
SNR = CStr(oHF.body.innerHTML)
If IsNumeric(RegexObj.Replace(SNR, "")) Then
dblSNR = CDbl(RegexObj.Replace(SNR, ""))
Else
dblSNR = 0
End If
If dblSNR < 32 Then
SNRcolor = " bgcolor=#F00" 'Red
ElseIf dblSNR < 35 Then
SNRcolor = " bgcolor=#F0FF00" ' Yellow
Else
SNRcolor = ""
End If
If dblSignal < -15 Then
Signalcolor = " bgcolor=#F00" 'Red
ElseIf dblSignal < -5 Then
Signalcolor = " bgcolor=#F0FF00" ' Yellow
Else
Signalcolor = ""
End If
document.write( "<tr><td"&Signalcolor&">" & Signal & "</td><td"&SNRcolor&">" & SNR & "</td><td>" & Frequency & "</td><td>"&channelList&"</td></tr>" )
End If
Set objHTTP = Nothing
End Sub
Private Function TestURL( ByVal strURL )
'// Testing a URL
Dim oURL
Set oURL = CreateObject("WinHttp.WinHttpRequest.5.1")
On Error Resume Next
With oURL
.SetTimeouts 4000, 4000, 4000, 4000
.Open "GET", strURL, False
.Send
if Err.Number = 0 then
TestURL = (.Status = 200)
Else
TestURL = 0
End IF
End With
End Function
Set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
If Not TestURL( CetonChannelXMLUrl ) Then
document.write( "Error: Ceton Tuner not found at this URL: " + BaseCetonUrl )
Else
xmlDoc.load(CetonChannelXMLUrl)
Dim objDocElem, strNode, strSubNode, xmlnn, xmlnv, xmlnc, xmldd, xmlfd, xmlfv, nodeName, nodeValue
Dim SNR, Signal, Frequency
Dim channel_list, chan
Set channel_list = New ChannelList
Dim i,z
Set objDocElem=xmlDoc.documentElement
Set y = objDocElem.childNodes
Dim IdleInstance
Dim oHF , objHTTP
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
'
' Safety check, make sure one Ceton tuner instances is idle "STOPPED"
'
For IdleInstance= 0 to 3
objHTTP.open "GET", BaseCetonUrl & "/get_var?i="&IdleInstance&"&s=av&v=TransportState", False
objHTTP.send
Set oHF = CreateObject("HTMLFILE")
oHF.write objHTTP.responseText
If oHF.body.innerHTML = "STOPPED" Then
Exit For
End If
Next
If oHF.body.innerHTML <> "STOPPED" Then
document.write( "Error: All Ceton tuner instances are busy! Please retry when tuner is idle!")
Else
'Declare progressbar and percentage complete
Dim pb
Dim percentComplete
Dim incr
'Setup the initial progress bar
Set pb = New ProgressBar
percentComplete = 0.0
pb.SetTitle("Step 1 of 3")
pb.SetText("Parsing Channel Map..")
pb.Show()
For i=0 to y.length - 1
If y(i).nodeType <> 3 Then
if y(i).nodeName = "channel" Then
xmlnc = xmlnc + 1
Set chan = New Channel
z=0
Do While z < y(i).childNodes.length
If y(i).childNodes(z).nodeType <> 3 Then
nodeName = y(i).childNodes(z).nodeName
nodeValue = y(i).childNodes(z).text
If nodeName = "frequency" Then
chan.frequency = CLng(nodeValue)
ElseIf nodeName = "number" Then
chan.number = CInt(nodeValue)
ElseIf nodeName = "modulation" Then
chan.modulation = CStr(nodeValue)
End If
End If
z=z+1
Loop
' Skip NTSC Channels as the Ceton can't tune these....
If InStr(chan.modulation, "QAM") > 0 Then
channel_list.AddChannel chan
End If
End if
End If
Next
document.write("<b>Information From Ceton Card at: "&BaseCetonUrl&"</b><br />")
document.write("<b>Tuner Instance Used for measurement:"&IdleInstance&"</b><br />")
document.write("<b>Number of Frequecies in Cable Card Map:"&channel_list.sizeOfAllFreqChannels&"</b><br />")
document.write("Channel List count: " & xmlnc & "<br />")
pb.SetTitle("Step 2 of 3")
pb.SetText("Tuning All Frequencies ..")
pb.Update(percentComplete)
incr = 100.0/(channel_list.sizeOfAllFreqChannels)
' Output a Table that shows Signal Level, SNR and Frequency
document.write( "<table border=""5px solid"" cellpadding=""2""><caption>Frequency Table</caption><tr><th>Signal</th><th>SNR</th><th>Frequency</th><th>channel#;channel#;...</th></tr>")
For i= 1 To channel_list.sizeOfAllFreqChannels
percentComplete=percentComplete+incr
pb.Update(percentComplete)
WriteFrequencyTable IdleInstance, channel_list.AllFreqChannels(i).number, channel_list.AllFreqChannels(i).CH_numbers
Next
document.write("</table>")
pb.SetTitle("Step 3 of 3")
pb.SetText("Outputting Frequency to Channel Table..")
pb.Update(percentComplete)
pb.SetText("Done")
percentComplete=100
pb.Update(percentComplete)
pb.Close()
End If
End If
</script>
</body>
</html>
-
- Posts: 10
- Joined: Mon Aug 27, 2012 1:05 am
- Location:
- HTPC Specs:
Ok, when I run it, I get
/ Error: Ceton Tuner not found at this URL: http://192.168.200.1
The tuner is actually at 192.168.0.7.
/ Error: Ceton Tuner not found at this URL: http://192.168.200.1
The tuner is actually at 192.168.0.7.
- Scallica
- Posts: 2799
- Joined: Mon Jun 06, 2011 7:09 pm
- Location: USA!
- HTPC Specs:
Change the IP address in the code providedKarlBeem wrote:Ok, when I run it, I get
/ Error: Ceton Tuner not found at this URL: http://192.168.200.1
The tuner is actually at 192.168.0.7.
HTPC Enthusiast / Forum Moderator - TGB.tv Code of Conduct
-
- Posts: 10
- Joined: Mon Aug 27, 2012 1:05 am
- Location:
- HTPC Specs:
Thanks. For good old ESPN, I get the following.
signal SNR
4.5 dBmV 39.4 dB 471000 846;847
How are these values?
signal SNR
4.5 dBmV 39.4 dB 471000 846;847
How are these values?
-
- Posts: 575
- Joined: Tue Feb 12, 2013 1:14 am
- Location: Monroe, NC
- HTPC Specs:
It's good, 4.5db is a little hot but within +/-7db that Ceton calls for, 39.4db SNR is well above the >35db Ceton also says is acceptable.
-
- Posts: 10
- Joined: Mon Aug 27, 2012 1:05 am
- Location:
- HTPC Specs:
Interesting. WMC is frequently complaining about a weak signal or asking me to "Update Playready" which never updates.cwinfield wrote:It's good, 4.5db is a little hot but within +/-7db that Ceton calls for, 39.4db SNR is well above the >35db Ceton also says is acceptable.
-
- Posts: 575
- Joined: Tue Feb 12, 2013 1:14 am
- Location: Monroe, NC
- HTPC Specs:
-
- Posts: 5
- Joined: Fri Feb 24, 2012 6:26 pm
- Location:
- HTPC Specs:
Sorry to bump an old topic but I'm having weak signal issues myself. I checked two different channels and I have:
Channel 851
Signal: -12.5 dbmv, SNR: 36.0 db
Channel 850
Signal: -13.9 dbmv, SNR: 34.9 db
So when the Comcast technician comes to my house, I need to tell him to do what? Adjust the signal so that it's closer to "0" ?
When I contact Ceton years ago about an issue on FIOS, the technician said the following:
Channel 851
Signal: -12.5 dbmv, SNR: 36.0 db
Channel 850
Signal: -13.9 dbmv, SNR: 34.9 db
So when the Comcast technician comes to my house, I need to tell him to do what? Adjust the signal so that it's closer to "0" ?
When I contact Ceton years ago about an issue on FIOS, the technician said the following:
To answer your questions regarding signal, SNR should be 32-37 and the signal level should be between -12 and +12 with 0 dBmV ideal. So the ideal number is 37 SNR with 0 signal. Something to keep in mind, you can have low SNR (32-34) and high signal strength (+5 / +10) and be okay. You can have high SNR (36-37) and have low signal strength (-5 / -10) and be okay. You just can't have both low SNR and low signal strength at the same time, and have a good viewing experience. So, to put it succinctly, you ultimately want a high SNR and a signal strength of "0"
-
- Posts: 5
- Joined: Fri Feb 24, 2012 6:26 pm
- Location:
- HTPC Specs:
The Comcast technician came yesterday and replaced the Ideal 5 way splitter with an Extreme 3 way splitter. This boosted the signal closer to 0 from -11 (signal is around -2) and fixed the issue. Seems that Ideal is a crappy splitter. He said that Comcast did extensive testing and found Extreme to have the best quality. Anyway, I'm all set now.
-
- Posts: 95
- Joined: Wed Feb 12, 2014 8:12 pm
- Location:
- HTPC Specs:
So if I run this and say NBC which for me is channel 188 comes back with -8.9dBmV and a Signal of 36.8 do I need to do something? Know the picture is jerky on this channel that we watch. Also watch CNN on 216 and that has a -7.5dBmV but don't think I notice it so much there.