Skip to content

Commit

Permalink
Merge pull request #23 from sumannam/TimJira-GOVP-391
Browse files Browse the repository at this point in the history
Tim jira govp 391
  • Loading branch information
sumannam authored Aug 6, 2024
2 parents c2d7cd8 + 6677c43 commit a30e171
Show file tree
Hide file tree
Showing 24 changed files with 1,778 additions and 3 deletions.
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
// 기존 특성에 대한 설명을 보려면 가리킵니다.
// 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
"version": "0.2.0",
"configurations": [
{
"name": "Python 디버거: 현재 파일",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
30 changes: 30 additions & 0 deletions projects/PipeLeakMonitoringSystem/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import os
import sys
from pathlib import Path

PROJECT_NAME = "DEVS-Python"
TBASE_FOLDER = ""

if 'win' in sys.platform: # Windows
sys.path.append('D:/Git/DEVS-Python')
sys.path.append('D:/Git/DEVS-Python/projects/simparc')
TBASE_FOLDER = os.path.dirname(os.path.abspath(__file__)) + "\\tbase"
else: # Linux, Unix, MacOS
sys.path.append('.')
TBASE_FOLDER = os.path.dirname(os.path.abspath(__file__)) + "/tbase"


def setDevPath():
current_path = Path.cwd()
path_str = str(current_path)

if path_str[-11:] == PROJECT_NAME:
sys.path.append(path_str)
project_path = os.path.join(path_str, os.sep, "projects", os.sep, "simparc")
sys.path.append(project_path)
if path_str.find("projects") == -1:
pass
# os.walk("..")
# current_path = Path.cwd()
# parent_path = current_path.parent.name
# print(parent_path)
27 changes: 27 additions & 0 deletions projects/PipeLeakMonitoringSystem/coupbase/EF.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import sys

from src.COUPLED_MODELS import COUPLED_MODELS

from projects.PipeLeakMonitoringSystem.mbase.GENR import GENR
from projects.PipeLeakMonitoringSystem.mbase.TRANSD import TRANSD


class EF(COUPLED_MODELS):
def __init__(self):
COUPLED_MODELS.__init__(self)
self.setName(self.__class__.__name__)

self.addInPorts("in")
self.addOutPorts("out", "result")

genr = GENR()
transd = TRANSD()

self.addModel(genr)
self.addModel(transd)

self.addCoupling(self, "in", transd, "sovled")
self.addCoupling(genr, "out", self, "out")
self.addCoupling(transd, "out", self, "result")
self.addCoupling(transd, "out", genr, "stop")
self.addCoupling(genr, "out", transd, "arrived")
26 changes: 26 additions & 0 deletions projects/PipeLeakMonitoringSystem/coupbase/EF_PIPE.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import sys

from projects.PipeLeakMonitoringSystem.config import setDevPath
setDevPath()

# from pypreprocessor import pypreprocessor
# pypreprocessor.parse()

from src.COUPLED_MODELS import COUPLED_MODELS

from projects.PipeLeakMonitoringSystem.coupbase.PIPES import PIPES
from projects.PipeLeakMonitoringSystem.coupbase.EF import EF

class EF_PIPE(COUPLED_MODELS):
def __init__(self):
COUPLED_MODELS.__init__(self)
self.setName(self.__class__.__name__)

ef = EF()
pipes = PIPES()

self.addModel(ef)
self.addModel(pipes)

self.addCoupling(ef, "out", pipes, "in")
self.addCoupling(pipes, "out", ef, "in")
49 changes: 49 additions & 0 deletions projects/PipeLeakMonitoringSystem/coupbase/PIPES.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import sys

from projects.PipeLeakMonitoringSystem.config import setDevPath
setDevPath()

# from pypreprocessor import pypreprocessor
# pypreprocessor.parse()

from src.COUPLED_MODELS import COUPLED_MODELS

from projects.PipeLeakMonitoringSystem.mbase.PIPE_CNTR import PIPE_CNTR
from projects.PipeLeakMonitoringSystem.mbase.PIPIE1 import PIPE1
from projects.PipeLeakMonitoringSystem.mbase.PIPE2 import PIPE2
from projects.PipeLeakMonitoringSystem.mbase.PIPE3 import PIPE3
from projects.PipeLeakMonitoringSystem.mbase.PIPE4 import PIPE4


class PIPES(COUPLED_MODELS):
def __init__(self):
COUPLED_MODELS.__init__(self)
self.setName(self.__class__.__name__)

self.addInPorts("in")
self.addOutPorts("out")

pipe_cntr = PIPE_CNTR()
pipe1 = PIPE1()
pipe2 = PIPE2()
pipe3 = PIPE3()
pipe4 = PIPE4()

self.addModel(pipe_cntr)
self.addModel(pipe1)
self.addModel(pipe2)
self.addModel(pipe3)
self.addModel(pipe4)

self.addCoupling(self, "in", pipe_cntr, "in")

self.addCoupling(pipe_cntr, "x1", pipe1, "in")
self.addCoupling(pipe1, "out", pipe_cntr, "y1")
self.addCoupling(pipe_cntr, "x2", PIPE2, "in")
self.addCoupling(pipe2, "out", pipe_cntr, "y2")
self.addCoupling(pipe_cntr, "x3", PIPE3, "in")
self.addCoupling(pipe3, "out", pipe_cntr, "y3")
self.addCoupling(pipe_cntr, "x4", PIPE4, "in")
self.addCoupling(pipe4, "out", pipe_cntr, "y4")

self.addCoupling(pipe_cntr, "out", self, "out")
43 changes: 43 additions & 0 deletions projects/PipeLeakMonitoringSystem/kafka_producer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from kafka import KafkaProducer
import json
import time
from csv import reader


class MessageProducer:
broker = ""
topic = ""
producer = None

def __init__(self, broker, topic):
self.broker = broker
self.topic = topic
self.producer = KafkaProducer(bootstrap_servers=self.broker,
value_serializer=lambda x: json.dumps(x).encode('utf-8'),
acks=0,
api_version=(2,5,0),
retries=3
)

def send_message(self, msg):
try:
future = self.producer.send(self.topic, msg)
self.producer.flush() # 비우는 작업
future.get(timeout=60)
return {'status_code': 200, 'error': None}
except Exception as e:
print("error:::::",e)
return e

# 브로커와 토픽명을 지정한다.
path = 'D:/Git/DEVS-Python/projects/PipeLeakMonitoringSystem/'
broker = '192.168.0.171:9092'
topic = 'piping'

message_producer = MessageProducer(broker, topic)


with open(path + 'kafka_topic.txt', 'r', encoding='utf-8') as file:
for data in file:
print("send-data: ", data)
res = message_producer.send_message(data)
Loading

0 comments on commit a30e171

Please sign in to comment.