123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- # -*- coding: utf-8 -*-
- import sys
- import time
- import socket
- from ssat_sdk.service import service_config
- from ssat_sdk.sat_environment import *
- DEVICE = {
- "RCU": "遥控器",
- "ATV": "ATV码流仪",
- "DTV": "DTV码流仪",
- "ccard": "视频采集卡",
- "voicecard": "音频采集卡",
- "signalcard": "信号仪1",
- "signalcard_2": "信号仪2",
- "ATV": "ATV码流仪",
- }
- # 异常客户端处理类;
- class CAbnormalClient():
- # 构造函数
- def __init__(self):
- self.port = getTesterListenTcpPort()
- self.ip = '127.0.0.1'
- self.sock = socket.socket()
- self.sock.settimeout(100)
- self.socketOpen = False
- # socket.setdefaulttimeout(20)
- self.__OpenSocket(self.ip, self.port)
- # 析构函数
- def __def__(self):
- self.__CloseSocket()
- # 打开连接
- def __OpenSocket(self, ip="127.0.0.1", port=9660):
- try:
- status = self.sock.connect((ip, self.port))
- self.socketOpen = True
- return status != 0
- except Exception, e:
- print e
- self.socketOpen = False
- return False
- # 关闭链接
- def __CloseSocket(self):
- if self.socketOpen:
- self.sock.close()
- self.socketOpen = False
- else:
- print("\n\n\n \t\t Socket was to close.\n\n\n")
- # 发送消息
- def __ReadData(self, message):
- if not self.socketOpen:
- self.__CloseSocket()
- self.__OpenSocket()
- if not self.socketOpen:
- print("\tSocket has not been opened. Call 'OpenSocket()' first.")
- return
- # Send message
- self.sock.send((message + '\n').encode())
- received = ""
- # Check response. This is either a single line, e.g. "OK\n", or a multi-line response with
- # '{' and '}' start/end delimiters.
- while True:
- # Receives data
- received += self.sock.recv(64).decode()
- if self.__CheckEOM(received):
- return received
- # 检查是否到消息末端
- def __CheckEOM(self, message):
- # Multi-line message
- if ('{' in message):
- return ('}' in message)
- # Single line message
- if ("\n" in message):
- return True
- def sendAbnormal(self, device, msg):
- if not self.socketOpen:
- self.__CloseSocket()
- self.__OpenSocket()
- if not self.socketOpen:
- print("\tSocket has not been opened. Call 'OpenSocket()' first.")
- return False
- try:
- message = '{"deviceName":"' + device + '","errorInfo":"' + msg + '"}'
- # Send message
- self.sock.send(message)
- except Exception, e:
- self.__CloseSocket()
- print e
- return False
- # 不接收返回;
- self.__CloseSocket()
- return True
- # 单例模块;
- abnormal_client = CAbnormalClient()
- if __name__ == "__main__":
- abnormal_client.sendAbnormal('RCU', '出错999995555555555559999999999999999999')
|