71 lines
2.1 KiB
Python
Executable File
71 lines
2.1 KiB
Python
Executable File
import os
|
|
import sys
|
|
import socket
|
|
import time
|
|
from time import sleep
|
|
from crccheck.crc import CrcArc
|
|
from datetime import datetime
|
|
|
|
# Signal Types
|
|
# Send with image: "SIA-DCS"0001L0#999
|
|
|
|
def sendSia(type, host, port):
|
|
data = type.encode()
|
|
crc = CrcArc.calc(data)
|
|
crcstr = str(hex(crc)).split('x')
|
|
crcstr = str(crcstr[1].upper())
|
|
if len(crcstr) == 2:
|
|
crcstr = '00' + crcstr
|
|
if len(crcstr) == 3:
|
|
crcstr = '0' + crcstr
|
|
length = str(hex(len(data))).split('x')
|
|
client_socket = socket.socket()
|
|
client_socket.connect((host, port))
|
|
client_socket.settimeout(10)
|
|
text = '\u000A' + crcstr + '00' + length[1].upper() + type + '\u000D'
|
|
print('Sent signal: ' + text)
|
|
message = bytes(text, 'ASCII')
|
|
client_socket.send(message)
|
|
data = client_socket.recv(64).decode()
|
|
print("Received from server: " + data)
|
|
client_socket.close()
|
|
|
|
arg1 = sys.argv[1] if len(sys.argv) > 1 else None
|
|
arg2 = sys.argv[2] if len(sys.argv) > 2 else None
|
|
arg3 = sys.argv[3] if len(sys.argv) > 3 else None
|
|
host = sys.argv[4] if len(sys.argv) > 4 else None
|
|
arg5 = sys.argv[5] if len(sys.argv) > 5 else None
|
|
signalType = sys.argv[6] if len(sys.argv) > 6 else "PA"
|
|
zone = sys.argv[7] if len(sys.argv) > 7 else "00"
|
|
arg8 = sys.argv[8] if len(sys.argv) > 8 else ""
|
|
arg9 = sys.argv[9] if len(sys.argv) > 9 else "0"
|
|
arg10 = sys.argv[10] if len(sys.argv) > 10 else None
|
|
port = int(arg5)
|
|
|
|
def program():
|
|
global host
|
|
global port
|
|
global arg1
|
|
global arg2
|
|
global arg3
|
|
global signalType
|
|
global zone
|
|
global arg8
|
|
global arg9
|
|
global arg10
|
|
current_time_milliseconds = int(time.time() * 1000)
|
|
|
|
Zone = zone
|
|
if len(Zone) == 1:
|
|
Zone = "00" + Zone
|
|
if len(Zone) == 2:
|
|
Zone = "0" + Zone
|
|
|
|
# convert timestamp to string in dd-mm-yyyy HH:MM:SS
|
|
date_time = datetime.now()
|
|
str_date_time = date_time.strftime("_%H:%M:%S,%d-%m-%Y")
|
|
type = f'"ADM-CID"0000R00L0000#{arg1}[#{arg1}|{signalType} 00 {Zone}][V{arg10}?time={current_time_milliseconds}]{str_date_time}'
|
|
sendSia(type, host, port)
|
|
|
|
program()
|