By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,315 Members | 1,672 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,315 IT Pros & Developers. It's quick & easy.

System Time Update using IRIG

P: n/a
Hi,
I am updating system time with IRIG time source which sends irregular
pulses as shown below
11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
present)
I need to update system time when I find a steady pulse or a series of
1's say for a span of 10-15 seconds. Is there a way to implement this
in VB6?
Thanks in advance.
Valiz.
Jul 17 '05 #1
Share this Question
Share on Google+
7 Replies


P: n/a

"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
Hi,
I am updating system time with IRIG time source which sends irregular
pulses as shown below
11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
present)
I need to update system time when I find a steady pulse or a series of
1's say for a span of 10-15 seconds. Is there a way to implement this
in VB6?
Thanks in advance.
Valiz.


Of course it is doable.
How are you getting the info (serial I/O, WAN. etc.) and which IRIG
(A,B,E,H)?

Jul 17 '05 #2

P: n/a
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message news:<ap*******************@nwrdny01.gnilink.net>. ..
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
Hi,
I am updating system time with IRIG time source which sends irregular
pulses as shown below
11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
present)
I need to update system time when I find a steady pulse or a series of
1's say for a span of 10-15 seconds. Is there a way to implement this
in VB6?
Thanks in advance.
Valiz.


Of course it is doable.
How are you getting the info (serial I/O, WAN. etc.) and which IRIG
(A,B,E,H)?


I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is IRIG-B.
Valiz.
Jul 17 '05 #3

P: n/a

"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message news:<ap*******************@nwrdny01.gnilink.net>. ..
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
Hi,
I am updating system time with IRIG time source which sends irregular
pulses as shown below
11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
present)
I need to update system time when I find a steady pulse or a series of
1's say for a span of 10-15 seconds. Is there a way to implement this
in VB6?
Thanks in advance.
Valiz.


Of course it is doable.
How are you getting the info (serial I/O, WAN. etc.) and which IRIG
(A,B,E,H)?


I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is

IRIG-B. Valiz.


OK.. I wasn't sure, your description certainly does not describe IRIG B
since the "IRIG present" is merely a flag in the sixth group (status) and
it's the opposite of what you have ( 0 = present, 1= not present).

I am not familiar with SaxComm8 ocx but if it can handle the speed required
(IRIG B pulse code consist of one frame with 100 elements.and it all comes
within one second per frame with 10 ms for each element.)

Basically I would read it from the buffer and decode it (first element is
seconds, second is minutes, third is hours, fourth is days, etc. etc.)

If you're interested, I have some docs outlining the detail of IRIG packets.
If you want just send me your e-mail address and I'll send it your way.

Jul 17 '05 #4

P: n/a
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message news:<as***************@nwrdny01.gnilink.net>...
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<ap*******************@nwrdny01.gnilink.net>. ..
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
> Hi,
> I am updating system time with IRIG time source which sends irregular
> pulses as shown below
> 11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
> present)
> I need to update system time when I find a steady pulse or a series of
> 1's say for a span of 10-15 seconds. Is there a way to implement this
> in VB6?
> Thanks in advance.
> Valiz.

Of course it is doable.
How are you getting the info (serial I/O, WAN. etc.) and which IRIG
(A,B,E,H)?


I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is

IRIG-B.
Valiz.


OK.. I wasn't sure, your description certainly does not describe IRIG B
since the "IRIG present" is merely a flag in the sixth group (status) and
it's the opposite of what you have ( 0 = present, 1= not present).

I am not familiar with SaxComm8 ocx but if it can handle the speed required
(IRIG B pulse code consist of one frame with 100 elements.and it all comes
within one second per frame with 10 ms for each element.)

Basically I would read it from the buffer and decode it (first element is
seconds, second is minutes, third is hours, fourth is days, etc. etc.)

If you're interested, I have some docs outlining the detail of IRIG packets.
If you want just send me your e-mail address and I'll send it your way.


Thanks for getting back. At this point I am able to decode the signal
and get the required data but the point is I would like to make sure
it is a series of 1's at the time when I decode. Say, if I want to
update the clock every 10 minutes or say even 10 seconds. I want to
make sure I don't fall on a "0" every time I hit 10 seconds. Any
ideas?
Thanks,
Valiz.
Jul 17 '05 #5

P: n/a

"Valiz" <de******@uidaho.edu> wrote in message
news:eb************************@posting.google.com ...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<as***************@nwrdny01.gnilink.net>...
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<ap*******************@nwrdny01.gnilink.net>. ..
> "Valiz" <de******@uidaho.edu> wrote in message
> news:eb*************************@posting.google.co m...
> > Hi,
> > I am updating system time with IRIG time source which sends irregular > > pulses as shown below
> > 11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
> > present)
> > I need to update system time when I find a steady pulse or a series of > > 1's say for a span of 10-15 seconds. Is there a way to implement this > > in VB6?
> > Thanks in advance.
> > Valiz.
>
> Of course it is doable.
> How are you getting the info (serial I/O, WAN. etc.) and which IRIG
> (A,B,E,H)?

I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is

IRIG-B.
Valiz.


OK.. I wasn't sure, your description certainly does not describe IRIG B
since the "IRIG present" is merely a flag in the sixth group (status) and it's the opposite of what you have ( 0 = present, 1= not present).

I am not familiar with SaxComm8 ocx but if it can handle the speed required (IRIG B pulse code consist of one frame with 100 elements.and it all comes within one second per frame with 10 ms for each element.)

Basically I would read it from the buffer and decode it (first element is seconds, second is minutes, third is hours, fourth is days, etc. etc.)

If you're interested, I have some docs outlining the detail of IRIG packets. If you want just send me your e-mail address and I'll send it your way.


Thanks for getting back. At this point I am able to decode the signal
and get the required data but the point is I would like to make sure
it is a series of 1's at the time when I decode. Say, if I want to
update the clock every 10 minutes or say even 10 seconds. I want to
make sure I don't fall on a "0" every time I hit 10 seconds. Any
ideas?
Thanks,
Valiz.


A time code frame begins with a reference marker (this should be your goal).
When you need a time reference I suggest you poll for at least 10 seconds
looking for reference marker. You can also look for a known variable, for
example the days or days * 100. When you find this bit combination, do a
validation check by checking the previous or next word to ensure that it is
not by chance the bit combination exist. If you're polling satellite, you
need to make sure you have the receiver locked to at least one satellite
(status "0").

I'm not sure about the question, if the question is how do you test a
certain bit, here is a function that will help you do that:

' Test bit position "bit" in the value "InByte"
' returns true / false

Private Function TestBit(ByVal InByte As Byte, ByVal bit As Integer) As
Boolean
If bit >= 0 And bit <= 7 Then
TestBit = ((InByte And (2 ^ bit)) > 0)
End If
End Function

Jul 17 '05 #6

P: n/a
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message news:<Tf**************@nwrdny03.gnilink.net>...
"Valiz" <de******@uidaho.edu> wrote in message
news:eb************************@posting.google.com ...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<as***************@nwrdny01.gnilink.net>...
"Valiz" <de******@uidaho.edu> wrote in message
news:eb*************************@posting.google.co m...
> "Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message news:<ap*******************@nwrdny01.gnilink.net>. .. > > "Valiz" <de******@uidaho.edu> wrote in message
> > news:eb*************************@posting.google.co m...
> > > Hi,
> > > I am updating system time with IRIG time source which sends irregular > > > pulses as shown below
> > > 11000011111100111111111111111111....(1-IRIG present and 0-IRIG not
> > > present)
> > > I need to update system time when I find a steady pulse or a series of > > > 1's say for a span of 10-15 seconds. Is there a way to implement this > > > in VB6?
> > > Thanks in advance.
> > > Valiz.
> >
> > Of course it is doable.
> > How are you getting the info (serial I/O, WAN. etc.) and which IRIG
> > (A,B,E,H)?
>
> I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is IRIG-B. > Valiz.

OK.. I wasn't sure, your description certainly does not describe IRIG B
since the "IRIG present" is merely a flag in the sixth group (status) and it's the opposite of what you have ( 0 = present, 1= not present).

I am not familiar with SaxComm8 ocx but if it can handle the speed required (IRIG B pulse code consist of one frame with 100 elements.and it all comes within one second per frame with 10 ms for each element.)

Basically I would read it from the buffer and decode it (first element is seconds, second is minutes, third is hours, fourth is days, etc. etc.)

If you're interested, I have some docs outlining the detail of IRIG packets. If you want just send me your e-mail address and I'll send it your way.


Thanks for getting back. At this point I am able to decode the signal
and get the required data but the point is I would like to make sure
it is a series of 1's at the time when I decode. Say, if I want to
update the clock every 10 minutes or say even 10 seconds. I want to
make sure I don't fall on a "0" every time I hit 10 seconds. Any
ideas?
Thanks,
Valiz.


A time code frame begins with a reference marker (this should be your goal).
When you need a time reference I suggest you poll for at least 10 seconds
looking for reference marker. You can also look for a known variable, for
example the days or days * 100. When you find this bit combination, do a
validation check by checking the previous or next word to ensure that it is
not by chance the bit combination exist. If you're polling satellite, you
need to make sure you have the receiver locked to at least one satellite
(status "0").

I'm not sure about the question, if the question is how do you test a
certain bit, here is a function that will help you do that:

' Test bit position "bit" in the value "InByte"
' returns true / false

Private Function TestBit(ByVal InByte As Byte, ByVal bit As Integer) As
Boolean
If bit >= 0 And bit <= 7 Then
TestBit = ((InByte And (2 ^ bit)) > 0)
End If
End Function


Thanks for the info. I am sorry for not being clear with the question.
I am looking at the Time Quality bit (every second) in the IRIG-B
signal and it shuffles or toggles back and forth (0 and 1)randomly and
there's no regularity whatsoever. If it is a "1", an embedded
microcontroller (Atmel) takes in the signal and from there I update my
system clock. And, if it is a "0" I need to write system time to the
microcontroller (which serves as clock for some other serially
connected devices). My primary concern is that every time I use a
timer say for 10 seconds to update the system clock, I do not want to
hit a "0" for every cycle. Although it does not hit every time, there
is certainly a possibility that I might hit "0". Hence, am looking for
a method to eliminate that possibility, like for example a sliding
window that keeps checking for the Time Quality bit status or
something like that.
Thanks again for the info.
Valiz.
Jul 17 '05 #7

P: n/a

"Valiz" <de******@uidaho.edu> wrote in message
news:eb************************@posting.google.com ...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<Tf**************@nwrdny03.gnilink.net>...
"Valiz" <de******@uidaho.edu> wrote in message
news:eb************************@posting.google.com ...
"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<as***************@nwrdny01.gnilink.net>...
> "Valiz" <de******@uidaho.edu> wrote in message
> news:eb*************************@posting.google.co m...
> > "Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message

news:<ap*******************@nwrdny01.gnilink.net>. ..
> > > "Valiz" <de******@uidaho.edu> wrote in message
> > > news:eb*************************@posting.google.co m...
> > > > Hi,
> > > > I am updating system time with IRIG time source which sends

irregular
> > > > pulses as shown below
> > > > 11000011111100111111111111111111....(1-IRIG present and 0-IRIG not > > > > present)
> > > > I need to update system time when I find a steady pulse or a

series of
> > > > 1's say for a span of 10-15 seconds. Is there a way to implement
this
> > > > in VB6?
> > > > Thanks in advance.
> > > > Valiz.
> > >
> > > Of course it is doable.
> > > How are you getting the info (serial I/O, WAN. etc.) and which
IRIG > > > (A,B,E,H)?
> >
> > I am using Serial - Com port 17 - Using SaxComm8 OCX and the signal is IRIG-B.
> > Valiz.
>
> OK.. I wasn't sure, your description certainly does not describe
IRIG B > since the "IRIG present" is merely a flag in the sixth group (status) and
> it's the opposite of what you have ( 0 = present, 1= not present).
>
> I am not familiar with SaxComm8 ocx but if it can handle the speed

required
> (IRIG B pulse code consist of one frame with 100 elements.and it all

comes
> within one second per frame with 10 ms for each element.)
>
> Basically I would read it from the buffer and decode it (first
element is
> seconds, second is minutes, third is hours, fourth is days, etc.
etc.) >
> If you're interested, I have some docs outlining the detail of IRIG

packets.
> If you want just send me your e-mail address and I'll send it your way.
Thanks for getting back. At this point I am able to decode the signal
and get the required data but the point is I would like to make sure
it is a series of 1's at the time when I decode. Say, if I want to
update the clock every 10 minutes or say even 10 seconds. I want to
make sure I don't fall on a "0" every time I hit 10 seconds. Any
ideas?
Thanks,
Valiz.


A time code frame begins with a reference marker (this should be your

goal). When you need a time reference I suggest you poll for at least 10 seconds looking for reference marker. You can also look for a known variable, for example the days or days * 100. When you find this bit combination, do a
validation check by checking the previous or next word to ensure that it is not by chance the bit combination exist. If you're polling satellite, you need to make sure you have the receiver locked to at least one satellite
(status "0").

I'm not sure about the question, if the question is how do you test a
certain bit, here is a function that will help you do that:

' Test bit position "bit" in the value "InByte"
' returns true / false

Private Function TestBit(ByVal InByte As Byte, ByVal bit As Integer) As
Boolean
If bit >= 0 And bit <= 7 Then
TestBit = ((InByte And (2 ^ bit)) > 0)
End If
End Function


Thanks for the info. I am sorry for not being clear with the question.
I am looking at the Time Quality bit (every second) in the IRIG-B
signal and it shuffles or toggles back and forth (0 and 1)randomly and
there's no regularity whatsoever. If it is a "1", an embedded
microcontroller (Atmel) takes in the signal and from there I update my
system clock. And, if it is a "0" I need to write system time to the
microcontroller (which serves as clock for some other serially
connected devices). My primary concern is that every time I use a
timer say for 10 seconds to update the system clock, I do not want to
hit a "0" for every cycle. Although it does not hit every time, there
is certainly a possibility that I might hit "0". Hence, am looking for
a method to eliminate that possibility, like for example a sliding
window that keeps checking for the Time Quality bit status or
something like that.
Thanks again for the info.
Valiz.


I am afraid I will have to retreat. In all my years I have never heard an
IRIG-B "Time Quality" bit. I am assuming there is something proprietary
about this data so I don't dare to even guess or suggest what you should do.
However, examining the buffer and testing for certain bits as I have outline
in previous e-mail certainly can be used. Good luck.
Jul 17 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.