MCPcopy Create free account
hub / github.com/RangeNetworks/openbts / clockHandler

Method clockHandler

TRXManager/TRXManager.cpp:94–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92
93
94void TransceiverManager::clockHandler()
95{
96 char buffer[MAX_UDP_LENGTH];
97 int msgLen = mClockSocket.read(buffer,gConfig.getNum("TRX.Timeout.Clock")*1000);
98
99 // Did the transceiver die??
100 if (msgLen<0) {
101 LOG(EMERG) << "TRX clock interface timed out, assuming TRX is dead.";
102 gReports.incr("OpenBTS.Exit.Error.TransceiverHeartbeat");
103#if RN_DEVELOPER_MODE
104 // (pat) Added so you can keep debugging without the radio.
105 static int foo = 0;
106 pthread_exit(&foo);
107#else
108 abort();
109#endif
110 }
111
112 if (msgLen==0) {
113 LOG(ALERT) << "read error on TRX clock interface, return " << msgLen;
114 return;
115 }
116
117 if (strncmp(buffer,"IND CLOCK",9)==0) {
118 uint32_t FN;
119 sscanf(buffer,"IND CLOCK %u", &FN);
120 LOG(INFO) << "CLOCK indication, current clock = " << gBTS.clock().get() << " new clock ="<<FN;
121 gBTS.clock().set(FN);
122 mHaveClock = true;
123 return;
124 }
125
126 buffer[msgLen]='\0';
127 LOG(ALERT) << "bogus message " << buffer << " on clock interface";
128}
129
130
131

Callers 1

ClockLoopAdapterFunction · 0.80

Calls 3

readMethod · 0.45
getMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected