Esempio n. 1
0
import uuid
import datetime

from ModbusLib.common.utils import logger as logging
from ModbusLib.common import exceptions, config_handler
from multiprocessing import Queue
from twisted.internet import reactor
from twisted.internet import error as twisted_error
from pymodbus.server.sync import StartTcpServer
from pymodbus.datastore import ModbusSequentialDataBlock
from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext
from pymodbus.device import ModbusDeviceIdentification
import threading
ROOT_DIR = config_handler.ROOT_DIR

logger = logging.setup('Slave')


class Slave:
    def __init__(self, config, _id, queue):
        handle = config
        # print(handle)
        self._id = _id
        self.port = int(handle['port'])
        self.di = handle['di']
        self.co = handle['co']
        self.hr = handle['hr']
        self.ir = handle['ir']
        self.t = None
        logger.info(handle)
        self.data_queue: Queue = queue
Esempio n. 2
0
import json
import time

from datetime import timedelta

from ModbusLib.common import config_handler, slave_handler, client_handler
from ModbusLib.common.utils import logger as logging
from multiprocessing import Process, Pipe, Queue

logger = logging.setup(__name__)

# logger.setLevel(logging.DEBUG)


class ProcessHandler(Process):
    def __init__(self, pipe: Pipe, viewer_queue: Queue):
        Process.__init__(self)
        self.slave_conn, self.sc_child = Pipe()
        self.viewer_queue = viewer_queue
        self.slaves = slave_handler.SlaveHandler(self.sc_child,
                                                 self.viewer_queue)
        self.client = client_handler.Client()
        self.started = False
        self.rx_count = 0
        self.tx_count = 0
        self.rx_rate = 0
        self.tx_rate = 0
        self.start_time = 0
        self.pipe = pipe
        self.run_flag = True
        self.stat_cache = (self.rx_count, self.tx_count, self.start_time)
Esempio n. 3
0
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

from ModbusLib.common.utils import logger as logging

logger = logging.setup(__name__)

_MODULE_NAME = 'smtp_alert'
_MODULE_DESC = 'Plugin for sending SMTP Alerts'
_DEFAULT_CONFIG = {
    'host': {
        'description': 'The SMTP Server hostname.',
        'type': 'string',
        'default': 'smtp.office365.com',
        'displayName': 'Server Hostname'
    },
    'sender': {
        'description': 'The SMTP Sender.',
        'type': 'string',
        'default': '*****@*****.**',
        'displayName': 'Sender Email'
    },
    'password': {
        'description': 'The SMTP Sender Password.',
        'type': 'string',
        'default': '1R@900m!',
        'displayName': 'Sender Password'
    },
    'port': {
        'description': 'The SMTP Server port.',