blob: 3d68ff78aaae4bde6ccaf7016376f6d674d009f0 [file] [log] [blame]
#!/usr/bin/python
#coding: utf8
#Copyright © 2016 - 2017 Copyright (c) Sprint, Inc. and others. All rights
#reserved.
#
#This program and the accompanying materials are made available under the
#terms of the Eclipse Public License v1.0 which accompanies this distribution,
#and is available at http://www.eclipse.org/legal/epl-v10.html
#
############################################################################
# File : rules_test.py
#
# Comments :
# Establish the channel with DP (Script(PUB) -> Forwarder -> DP(SUB)),
# And listen and push the message over socket.
############################################################################
import signal
import sys
import zmq
import struct
import socket as socketlib
import datetime
import time
from adc_rules import *
from pcc_rules import *
from mtr_rules import *
from sdf_rules import *
conflict = False
topicId = None
# TBD: Needs to handle exception
# TBD: Needs to handle keyboard intrrupts
#ZMQ ports
rec_port = "5566"
send_port = "5555"
# Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)
pub_socket = context.socket(zmq.PUB)
# As of not test script runs from FPC-SDN only
socket.connect ("tcp://192.168.105.14:%s" % rec_port)
pub_socket.connect("tcp://192.168.105.14:%s" % send_port)
topicfilter = ""
controller_topic= 252
socket.setsockopt(zmq.SUBSCRIBE, topicfilter)
print "Listening to port ", rec_port
print "Publisher on port ", send_port
print "Ready to receive messages. Press Ctrl+C when ready to exit."
for update_nbr in range(900000):
# TBD: Needs to handle exception
string = socket.recv()
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
topic, msgnum, ID = struct.unpack('!BBB', string[:3])
print"\n topic,msg,ID:%s,%s,%s" % (topic, msgnum, ID)
#Listen to topic
if topic == 1 and msgnum == 10:#Assign_Id
top, msg, topId = struct.unpack('!BBB', string[:3])
print "\n topId :", topId
topicId = topId
#Listen to ack
if topic == 2 and msgnum == 12:
top, msg, topId_t = struct.unpack('!BBB', string[:3])
if topicId == topId_t:
# TBD: Needs to handle exception
parse_adc_values(pub_socket, topicId)
time.sleep(1)
parse_mtr_values(pub_socket, topicId)
time.sleep(1)
parse_pcc_values(pub_socket, topicId)
time.sleep(1)
parse_sdf_values(pub_socket, topicId)
time.sleep(1)
socket.close()
pub_socket.close()
sys.exit(0)