public void runSequencer(BaseMsg msg) {
pktLostCount = 0;
switch (state) {
case RESPOND_TO_REQUEST:
if (BaseMsg.getMsgType(msg.rawMsg) == MaxCulMsgType.TIME_INFO) {
TimeInfoMsg timeMsg = new TimeInfoMsg(msg.rawMsg);
if (isValidDeviation(timeMsg.getTimeInfo(),
new GregorianCalendar(), TIME_TOLERANCE)) {
messageHandler.sendAck(msg);
state = TimeUpdateRequestState.FINISHED;
} else {
messageHandler.sendTimeInfo(msg.srcAddrStr, tzStr, this);