first upload
This commit is contained in:
commit
d1e1ad0630
181
MistralLLM 설정.txt
Normal file
181
MistralLLM 설정.txt
Normal file
@ -0,0 +1,181 @@
|
||||
우분투(Ubuntu) 서버 환경에서 Mistral LLM을 구축하고 파이썬 API 서버(FastAPI)로 띄우는 전체 과정을 순서대로 정리해 드립니다.
|
||||
|
||||
하드웨어(GPU 유무, RAM 용량)에 구애받지 않고 가장 안정적으로 동작하는 **표준 라이브러리(`transformers`) 기준**으로 작성되었습니다.
|
||||
|
||||
---
|
||||
|
||||
## 1단계: 가상환경 및 필수 라이브러리 설치
|
||||
|
||||
시스템 파이썬을 보호하고 의존성 충돌을 막기 위해 가상환경(Conda)을 세팅합니다.
|
||||
|
||||
**1. Conda 가상환경 생성 및 활성화**
|
||||
|
||||
```bash
|
||||
conda create -n mistral-env python=3.10 -y
|
||||
conda activate mistral-env
|
||||
|
||||
```
|
||||
|
||||
**2. 필수 파이썬 패키지 설치**
|
||||
AI 구동 커널, 웹 서버 라이브러리, 허깅페이스 통신 모듈을 한 번에 설치합니다.
|
||||
|
||||
```bash
|
||||
pip install torch transformers accelerate fastapi uvicorn huggingface_hub
|
||||
|
||||
```
|
||||
|
||||
## 2단계: Hugging Face 인증 및 모델 다운로드
|
||||
|
||||
Mistral 7B 모델은 허깅페이스(Hugging Face)를 통해 배포되므로 토큰 인증이 필요합니다.
|
||||
|
||||
**1. 토큰 로그인**
|
||||
|
||||
```bash
|
||||
python -m huggingface_hub.cli login
|
||||
|
||||
```
|
||||
|
||||
* `Token:` 프롬프트가 뜨면 허깅페이스 사이트(Settings -> Access Tokens)에서 발급받은 토큰을 붙여넣고 엔터를 칩니다. (보안상 화면에 글자가 보이지 않습니다.)
|
||||
* `Add token as git credential? (y/n)` 질문에는 `n`을 입력합니다.
|
||||
|
||||
**2. 모델 다운로드 경로 준비**
|
||||
|
||||
```bash
|
||||
mkdir -p ~/mistral_models/7B-Instruct-v0.3
|
||||
|
||||
```
|
||||
|
||||
**3. 모델 다운로드 실행 (약 15GB)**
|
||||
|
||||
```bash
|
||||
python -m huggingface_hub.cli download mistralai/Mistral-7B-Instruct-v0.3 --local-dir ~/mistral_models/7B-Instruct-v0.3 --local-dir-use-symlinks False
|
||||
|
||||
```
|
||||
|
||||
## 3단계: 파이썬 웹 서버 코드 작성 (`serve_mistral.py`)
|
||||
|
||||
FastAPI를 사용하여 외부에서 API로 LLM에 질문을 던질 수 있도록 서버 코드를 작성합니다.
|
||||
|
||||
**1. 파이썬 파일 생성**
|
||||
|
||||
```bash
|
||||
nano serve_mistral.py
|
||||
|
||||
```
|
||||
|
||||
**2. 서버 코드 붙여넣기**
|
||||
메모리 부족(Killed)이나 GPU(CUDA) 에러를 방지하기 위해 용량을 절반으로 줄이는 `float16` 옵션과 자동 디스크 오프로딩이 적용된 코드입니다.
|
||||
|
||||
```python
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore")
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi.responses import JSONResponse
|
||||
from pydantic import BaseModel
|
||||
import uvicorn
|
||||
import torch
|
||||
import os
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
import time
|
||||
|
||||
# =========================================================
|
||||
# [시스템] AI 모델 로드
|
||||
# =========================================================
|
||||
model_path = os.path.expanduser("~/mistral_models/7B-Instruct-v0.3")
|
||||
print("=== AI 모델 로딩 중... ===")
|
||||
|
||||
try:
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
||||
|
||||
# 메모리 최적화 및 장치 자동 할당
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
model_path,
|
||||
device_map="auto", # GPU가 없으면 자동으로 CPU/RAM 사용
|
||||
torch_dtype=torch.float16, # 메모리 사용량 절반 감소
|
||||
low_cpu_mem_usage=True
|
||||
)
|
||||
print("=== AI 준비 완료 ===")
|
||||
except Exception as e:
|
||||
print(f"!!! 모델 로드 실패: {e}")
|
||||
exit()
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
class ChatRequest(BaseModel):
|
||||
prompt: str
|
||||
|
||||
# =========================================================
|
||||
# [API] 메인 엔드포인트
|
||||
# =========================================================
|
||||
@app.post("/chat")
|
||||
async def chat_endpoint(request: ChatRequest):
|
||||
try:
|
||||
user_input = request.prompt
|
||||
print(f"\n>> 질문: {user_input}")
|
||||
|
||||
# 메시지 템플릿 적용
|
||||
messages = [{"role": "user", "content": user_input}]
|
||||
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
||||
|
||||
# 모델 장치(CPU/GPU)에 맞게 입력값 전달
|
||||
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
|
||||
|
||||
start_time = time.time()
|
||||
print(" (AI 연산 시작...)")
|
||||
|
||||
# 텍스트 생성
|
||||
with torch.no_grad():
|
||||
outputs = model.generate(
|
||||
**inputs,
|
||||
max_new_tokens=512,
|
||||
temperature=0.1,
|
||||
do_sample=True,
|
||||
pad_token_id=tokenizer.eos_token_id
|
||||
)
|
||||
|
||||
print(f" (연산 완료: {time.time() - start_time:.2f}초)")
|
||||
|
||||
# 결과 디코딩 (입력된 프롬프트 제외)
|
||||
generated_text = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
|
||||
|
||||
return JSONResponse(content={"response": generated_text.strip()})
|
||||
|
||||
except Exception as e:
|
||||
print(f"Server Error: {e}")
|
||||
return JSONResponse(content={"response": "시스템 오류가 발생했습니다."}, status_code=500)
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
|
||||
```
|
||||
|
||||
* 저장 후 종료: `Ctrl + O` -> `Enter` -> `Ctrl + X`
|
||||
|
||||
## 4단계: 무중단 백그라운드 실행 (`tmux`)
|
||||
|
||||
SSH 터미널 접속을 끊어도 서버가 계속 켜져 있도록 가상 화면(`tmux`)을 활용합니다.
|
||||
|
||||
**1. 백그라운드 세션 생성**
|
||||
|
||||
```bash
|
||||
tmux new -s aiserver
|
||||
|
||||
```
|
||||
|
||||
**2. 환경 활성화 및 서버 실행**
|
||||
새로 열린 가상 화면에서 서버를 켭니다.
|
||||
|
||||
```bash
|
||||
conda activate mistral-env
|
||||
python serve_mistral.py
|
||||
|
||||
```
|
||||
|
||||
**3. 가상 화면 빠져나오기 (서버 유지)**
|
||||
서버가 정상적으로 켜진 것을 확인한 뒤, 키보드에서 `Ctrl + B`를 누르고 손을 뗀 다음 `D`를 누릅니다.
|
||||
이제 터미널 프로그램을 종료해도 백그라운드에서 AI 서버가 정상적으로 요청을 대기합니다.
|
||||
|
||||
---
|
||||
|
||||
> **운영 팁:** 프로세스가 램 용량을 초과해 강제 종료(Killed)되는 현상이 발생한다면, 우분투 하드디스크 공간을 램처럼 활용하는 **스왑 메모리(Swap Memory)**를 16GB 이상 할당해 주어야 모델이 죽지 않고 연산을 완료할 수 있습니다.
|
||||
BIN
ST45L-ETN-BZ-3/Enternet_program.zip
Normal file
BIN
ST45L-ETN-BZ-3/Enternet_program.zip
Normal file
Binary file not shown.
Binary file not shown.
BIN
ST45L-ETN-BZ-3/Enternet_program/1.ETN Test Program/Qtvc_dll.dll
Normal file
BIN
ST45L-ETN-BZ-3/Enternet_program/1.ETN Test Program/Qtvc_dll.dll
Normal file
Binary file not shown.
BIN
ST45L-ETN-BZ-3/Enternet_program/2.IP Set Program/IP_Setting.exe
Normal file
BIN
ST45L-ETN-BZ-3/Enternet_program/2.IP Set Program/IP_Setting.exe
Normal file
Binary file not shown.
BIN
ST45L-ETN-BZ-3/Q-Light Ethernet 라이브러리 사용 설명서.pdf
Normal file
BIN
ST45L-ETN-BZ-3/Q-Light Ethernet 라이브러리 사용 설명서.pdf
Normal file
Binary file not shown.
17937
ST45L-ETN-BZ-3/ST45L-ETN-WS-3-24-RAG.step
Normal file
17937
ST45L-ETN-BZ-3/ST45L-ETN-WS-3-24-RAG.step
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ST45L-ETN-BZ-3/ST45L-ETN_catalog.pdf
Normal file
BIN
ST45L-ETN-BZ-3/ST45L-ETN_catalog.pdf
Normal file
Binary file not shown.
BIN
ST45L-ETN-BZ-3/ST45L-ETN_drawingcad.dwg
Normal file
BIN
ST45L-ETN-BZ-3/ST45L-ETN_drawingcad.dwg
Normal file
Binary file not shown.
BIN
ST45L-ETN-BZ-3/ST45L-ETN_drawingpdf.pdf
Normal file
BIN
ST45L-ETN-BZ-3/ST45L-ETN_drawingpdf.pdf
Normal file
Binary file not shown.
BIN
ST45L-ETN-BZ-3/ST45L-ETN_manual.pdf
Normal file
BIN
ST45L-ETN-BZ-3/ST45L-ETN_manual.pdf
Normal file
Binary file not shown.
45
agents/LEDAgent (Delphi 13) 에이전트 자동화 구현 계획.txt
Normal file
45
agents/LEDAgent (Delphi 13) 에이전트 자동화 구현 계획.txt
Normal file
@ -0,0 +1,45 @@
|
||||
# LEDAgent (Delphi 13) 에이전트 자동화 구현 계획
|
||||
|
||||
수동 테스트 용도로 작성되었던 `LEDAgent` 프로그램을 데이터베이스와 연동하여 자율적으로 동작하는 진정한 **'하드웨어 제어 에이전트'**로 업그레이드하기 위한 구현 계획입니다.
|
||||
|
||||
## ⚠️ User Review Required (검토 및 확인 필요)
|
||||
|
||||
본격적인 코드 수정에 앞서 아래 사항들을 확인해 주시면 정확한 구현이 가능합니다.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 1. **데이터베이스 접속 정보**: `U_DM.pas`의 `fdConnEtc`를 사용하여 파이썬 서버와 동일한 DB(`mmcl_db`, `root`, `password`, `localhost:3306`)에 접속하도록 소스 코드(`uMain.pas`) 내에 하드코딩해도 괜찮을까요? (혹은 외부 INI 파일 등으로 관리해야 하는지 확인 부탁드립니다.)
|
||||
> 2. **제어 대상 경광등 IP**: 현재 `uMain.dfm` 화면에 있는 텍스트박스(IP/Port)의 값을 기준으로 DLL 통신을 합니다. 에이전트가 1대의 PC에서 1대의 Q-Light 장비만 전담해서 제어하는 1:1 매핑 구조가 맞는지요?
|
||||
> 3. **타이머 주기**: DB를 조회하는 주기는 **1초(1000ms)**로 설정할 계획입니다. 적절한지 피드백 부탁드립니다.
|
||||
|
||||
## 🛠️ Proposed Changes (제안하는 코드 변경 사항)
|
||||
|
||||
### 1. `uMain.pas` (비즈니스 로직 수정)
|
||||
* **모듈 추가**: `uses` 절에 `U_DM`, `uLogManagerThread`, `FireDAC.Stan.Param` 등을 추가합니다.
|
||||
* **초기화 및 종료 로직**:
|
||||
* `FormCreate`:
|
||||
* `InitLogger`를 호출하여 로그 쓰레드를 시작합니다. (로그 폴더 예: `C:\LEDAgentLogs\`)
|
||||
* `U_DM.DM.fdConnEtc` 객체에 연결 정보를 주입하고 DB에 연결합니다.
|
||||
* 폴링용 `TTimer`를 동적으로 생성하고 가동(Interval 1000)합니다.
|
||||
* `FormDestroy`:
|
||||
* `TTimer` 중지, DB 연결 해제, `StopLogger`를 호출하여 안전하게 종료합니다.
|
||||
* **DB 폴링 타이머(Timer) 이벤트 (핵심 로직)**:
|
||||
* `sensor_info` 테이블을 1초마다 조회하여 `target_status`와 `value_status`가 다른 레코드를 찾습니다.
|
||||
```sql
|
||||
SELECT sensor_no, target_ch1_statusID, target_ch2_statusID, target_ch3_statusID
|
||||
FROM sensor_info
|
||||
WHERE target_ch1_statusID != value_ch1_statusID
|
||||
OR target_ch2_statusID != value_ch2_statusID
|
||||
OR target_ch3_statusID != value_ch3_statusID
|
||||
```
|
||||
* 변경 대상이 발견되면:
|
||||
1. 화면의 IP/Port 및 0,1,2 타겟값을 기반으로 `c_pIdata` 배열을 재구성합니다.
|
||||
2. `Tcp_Qu_RW` DLL 함수를 호출하여 실제 하드웨어 경광등 색상을 변경합니다.
|
||||
3. 전송에 성공하면 `UPDATE sensor_info SET value_... = target_...` 쿼리를 실행하여 DB 상태를 갱신(Handshake 완료)합니다.
|
||||
4. 이 모든 과정을 `AddLog_Thread` (파일 로그)와 `LogMessage` (화면 UI 리스트박스)에 기록합니다.
|
||||
|
||||
### 2. `U_DM.pas` 및 `LEDAgent.dpr` (유지)
|
||||
* 제공된 `U_DM`과 `uLogManagerThread`는 변경 없이 그대로 사용하며, `dpr` 파일에 해당 유닛들이 누락되었다면 추가로 등록합니다.
|
||||
|
||||
## ✅ Verification Plan (검증 계획)
|
||||
* 델파이 빌드(`Shift+F9`) 시 에러가 없는지 확인 안내.
|
||||
* 파이썬 API 서버로 POST 호출 시, 델파이 프로그램 화면에 "DB에서 제어 명령 수신" 및 "하드웨어 변경 완료" 로그가 실시간으로 찍히고 504 Timeout 없이 200 OK가 떨어지는지 연동 테스트 안내.
|
||||
20
agents/delphi_led_agent/LEDAgent.dpr
Normal file
20
agents/delphi_led_agent/LEDAgent.dpr
Normal file
@ -0,0 +1,20 @@
|
||||
program LEDAgent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {frmMain},
|
||||
U_DM in 'U_DM.pas' {DM: TDataModule},
|
||||
uLogManagerThread in 'uLogManagerThread.pas',
|
||||
Vcl.Themes,
|
||||
Vcl.Styles;
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
TStyleManager.TrySetStyle('Carbon');
|
||||
Application.CreateForm(TDM, DM);
|
||||
Application.CreateForm(TfrmMain, frmMain);
|
||||
Application.Run;
|
||||
end.
|
||||
1177
agents/delphi_led_agent/LEDAgent.dproj
Normal file
1177
agents/delphi_led_agent/LEDAgent.dproj
Normal file
File diff suppressed because it is too large
Load Diff
14
agents/delphi_led_agent/LEDAgent.dproj.local
Normal file
14
agents/delphi_led_agent/LEDAgent.dproj.local
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<BorlandProject>
|
||||
<Transactions>
|
||||
<Transaction>1899-12-30 00:00:00.000.859,=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_led_agent\uLogManagerThread.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.949,C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_led_agent\LEDAgent.dproj=D:\MyDoc\Embarcadero\Studio\Projects\Project1.dproj</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.326,C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_led_agent\uMain.dfm=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.dfm</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.326,C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_led_agent\uMain.pas=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.261,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.850,=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_led_agent\U_DM.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.996,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.173,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.271,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
</Transactions>
|
||||
</BorlandProject>
|
||||
BIN
agents/delphi_led_agent/LEDAgent.res
Normal file
BIN
agents/delphi_led_agent/LEDAgent.res
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/MainForm.dcu
Normal file
BIN
agents/delphi_led_agent/MainForm.dcu
Normal file
Binary file not shown.
443
agents/delphi_led_agent/MainForm.dfm
Normal file
443
agents/delphi_led_agent/MainForm.dfm
Normal file
@ -0,0 +1,443 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]v1.2'
|
||||
ClientHeight = 450
|
||||
ClientWidth = 720
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
Position = poScreenCenter
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 33
|
||||
Height = 13
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
213
agents/delphi_led_agent/MainForm.pas
Normal file
213
agents/delphi_led_agent/MainForm.pas
Normal file
@ -0,0 +1,213 @@
|
||||
unit MainForm;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvc_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
36
agents/delphi_led_agent/U_DM.dfm
Normal file
36
agents/delphi_led_agent/U_DM.dfm
Normal file
@ -0,0 +1,36 @@
|
||||
object DM: TDM
|
||||
Height = 274
|
||||
Width = 693
|
||||
object fdConnNilm: TFDConnection
|
||||
Left = 100
|
||||
Top = 56
|
||||
end
|
||||
object fdQryNilm: TFDQuery
|
||||
Connection = fdConnNilm
|
||||
Left = 100
|
||||
Top = 132
|
||||
end
|
||||
object FDPhysPgDriverLink: TFDPhysPgDriverLink
|
||||
Left = 520
|
||||
Top = 56
|
||||
end
|
||||
object FDGUIxWaitCursor: TFDGUIxWaitCursor
|
||||
Provider = 'Forms'
|
||||
ScreenCursor = gcrNone
|
||||
Left = 520
|
||||
Top = 132
|
||||
end
|
||||
object fdConnEtc: TFDConnection
|
||||
Left = 300
|
||||
Top = 56
|
||||
end
|
||||
object fdQryEtc: TFDQuery
|
||||
Connection = fdConnEtc
|
||||
Left = 300
|
||||
Top = 132
|
||||
end
|
||||
object FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink
|
||||
Left = 520
|
||||
Top = 208
|
||||
end
|
||||
end
|
||||
38
agents/delphi_led_agent/U_DM.pas
Normal file
38
agents/delphi_led_agent/U_DM.pas
Normal file
@ -0,0 +1,38 @@
|
||||
unit U_DM;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option,
|
||||
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
|
||||
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param,
|
||||
FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.PGDef,
|
||||
FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG, Data.DB,
|
||||
FireDAC.Comp.DataSet, FireDAC.Comp.Client, FireDAC.Phys.MySQLDef,
|
||||
FireDAC.Phys.MySQL;
|
||||
|
||||
type
|
||||
TDM = class(TDataModule)
|
||||
fdConnNilm: TFDConnection;
|
||||
fdQryNilm: TFDQuery;
|
||||
FDPhysPgDriverLink: TFDPhysPgDriverLink;
|
||||
FDGUIxWaitCursor: TFDGUIxWaitCursor;
|
||||
fdConnEtc: TFDConnection;
|
||||
fdQryEtc: TFDQuery;
|
||||
FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink;
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
DM: TDM;
|
||||
|
||||
implementation
|
||||
|
||||
{%CLASSGROUP 'Vcl.Controls.TControl'}
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
end.
|
||||
BIN
agents/delphi_led_agent/Win32/Debug/IP_Setting.exe
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/IP_Setting.exe
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/LEDAgent.exe
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/LEDAgent.exe
Normal file
Binary file not shown.
@ -0,0 +1,58 @@
|
||||
2026-07-21 16:43:42.930 === LEDAgent 시작 ===
|
||||
2026-07-21 17:00:00.026 === LEDAgent 시작 ===
|
||||
2026-07-21 17:09:19.045 === LEDAgent 시작 ===
|
||||
2026-07-21 17:09:45.755 === LEDAgent 시작 ===
|
||||
2026-07-21 17:12:17.121 === LEDAgent 시작 ===
|
||||
2026-07-21 17:12:17.137 DB 연결 실패: [FireDAC][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll, libmariadb.dll or libmysqld.dll]. 지정된 모듈을 찾을 수 없습니다
|
||||
Hint: check it is in the PATH or application EXE directories, and has x86 bitness.
|
||||
2026-07-21 17:14:33.217 === LEDAgent 종료 ===
|
||||
2026-07-21 17:15:07.641 === LEDAgent 시작 ===
|
||||
2026-07-21 17:15:07.695 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-21 17:15:28.320 === LEDAgent 종료 ===
|
||||
2026-07-21 17:15:55.575 === LEDAgent 시작 ===
|
||||
2026-07-21 17:15:55.800 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-21 17:23:43.274 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:23:43.403 하드웨어 제어 성공
|
||||
2026-07-21 17:23:43.416 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:27:51.333 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:27:51.447 하드웨어 제어 성공
|
||||
2026-07-21 17:27:51.460 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:28:25.943 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:28:26.060 하드웨어 제어 성공
|
||||
2026-07-21 17:28:26.070 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:28:38.185 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:28:38.301 하드웨어 제어 성공
|
||||
2026-07-21 17:28:38.313 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:52:06.846 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-21 17:52:06.963 하드웨어 제어 성공
|
||||
2026-07-21 17:52:06.974 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:52:24.199 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-21 17:52:24.308 하드웨어 제어 성공
|
||||
2026-07-21 17:52:24.311 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:52:41.517 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-21 17:52:41.628 하드웨어 제어 성공
|
||||
2026-07-21 17:52:41.640 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:55:49.285 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-21 17:55:49.400 하드웨어 제어 성공
|
||||
2026-07-21 17:55:49.418 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:55:59.518 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:55:59.632 하드웨어 제어 성공
|
||||
2026-07-21 17:55:59.644 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:57:06.531 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-21 17:57:06.648 하드웨어 제어 성공
|
||||
2026-07-21 17:57:06.660 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:57:41.093 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-21 17:57:41.211 하드웨어 제어 성공
|
||||
2026-07-21 17:57:41.223 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 17:59:11.477 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-21 17:59:11.591 하드웨어 제어 성공
|
||||
2026-07-21 17:59:11.609 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 18:01:42.834 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-21 18:01:42.947 하드웨어 제어 성공
|
||||
2026-07-21 18:01:42.959 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 18:01:54.082 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-21 18:01:54.197 하드웨어 제어 성공
|
||||
2026-07-21 18:01:54.209 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-21 18:02:24.725 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-21 18:02:24.842 하드웨어 제어 성공
|
||||
2026-07-21 18:02:24.852 DB 완료 갱신 (Handshake 종료)
|
||||
802
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-22.txt
Normal file
802
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-22.txt
Normal file
@ -0,0 +1,802 @@
|
||||
2026-07-22 08:55:22.029 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 08:55:22.145 하드웨어 제어 성공
|
||||
2026-07-22 08:55:22.157 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 08:58:10.777 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 08:58:10.893 하드웨어 제어 성공
|
||||
2026-07-22 08:58:10.896 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 08:58:36.183 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 08:58:36.286 하드웨어 제어 성공
|
||||
2026-07-22 08:58:36.299 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:02:19.199 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:02:19.315 하드웨어 제어 성공
|
||||
2026-07-22 09:02:19.327 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:11:17.614 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 09:11:17.725 하드웨어 제어 성공
|
||||
2026-07-22 09:11:17.736 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:12:26.530 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:12:26.645 하드웨어 제어 성공
|
||||
2026-07-22 09:12:26.657 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:14:22.745 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:14:22.859 하드웨어 제어 성공
|
||||
2026-07-22 09:14:22.872 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:14:47.136 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:14:47.250 하드웨어 제어 성공
|
||||
2026-07-22 09:14:47.262 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:15:18.476 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:15:18.592 하드웨어 제어 성공
|
||||
2026-07-22 09:15:18.603 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:15:58.995 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:15:59.112 하드웨어 제어 성공
|
||||
2026-07-22 09:15:59.124 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:16:04.211 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:16:04.325 하드웨어 제어 성공
|
||||
2026-07-22 09:16:04.370 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:16:15.455 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:16:15.570 하드웨어 제어 성공
|
||||
2026-07-22 09:16:15.582 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:16:23.667 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 09:16:23.779 하드웨어 제어 성공
|
||||
2026-07-22 09:16:23.793 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:16:46.024 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:16:46.127 하드웨어 제어 성공
|
||||
2026-07-22 09:16:46.140 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:17:01.361 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:17:01.476 하드웨어 제어 성공
|
||||
2026-07-22 09:17:01.480 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:17:56.237 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:17:56.351 하드웨어 제어 성공
|
||||
2026-07-22 09:17:56.363 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:19:03.333 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:19:03.449 하드웨어 제어 성공
|
||||
2026-07-22 09:19:03.453 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:22:30.953 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:22:31.068 하드웨어 제어 성공
|
||||
2026-07-22 09:22:31.072 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:23:03.447 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:23:03.565 하드웨어 제어 성공
|
||||
2026-07-22 09:23:03.576 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:24:15.397 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:24:15.513 하드웨어 제어 성공
|
||||
2026-07-22 09:24:15.516 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:26:34.314 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 09:26:34.429 하드웨어 제어 성공
|
||||
2026-07-22 09:26:34.441 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:28:26.888 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:28:27.002 하드웨어 제어 성공
|
||||
2026-07-22 09:28:27.015 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:28:36.152 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:28:36.268 하드웨어 제어 성공
|
||||
2026-07-22 09:28:36.279 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:28:57.531 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:28:57.647 하드웨어 제어 성공
|
||||
2026-07-22 09:28:57.661 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:29:20.022 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:29:20.135 하드웨어 제어 성공
|
||||
2026-07-22 09:29:20.147 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:29:45.473 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:29:45.587 하드웨어 제어 성공
|
||||
2026-07-22 09:29:45.590 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:30:10.934 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:30:11.050 하드웨어 제어 성공
|
||||
2026-07-22 09:30:11.061 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:30:25.302 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 09:30:25.415 하드웨어 제어 성공
|
||||
2026-07-22 09:30:25.425 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:30:47.649 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:30:47.759 하드웨어 제어 성공
|
||||
2026-07-22 09:30:47.771 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:31:03.990 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-07-22 09:31:04.105 하드웨어 제어 성공
|
||||
2026-07-22 09:31:04.110 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:33:55.277 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:33:55.392 하드웨어 제어 성공
|
||||
2026-07-22 09:33:55.404 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:41:49.593 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 09:41:49.719 하드웨어 제어 성공
|
||||
2026-07-22 09:41:49.731 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:42:06.969 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:42:07.084 하드웨어 제어 성공
|
||||
2026-07-22 09:42:07.090 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:42:23.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 09:42:23.345 하드웨어 제어 성공
|
||||
2026-07-22 09:42:23.358 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:42:33.457 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 09:42:33.572 하드웨어 제어 성공
|
||||
2026-07-22 09:42:33.584 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 09:47:18.228 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 09:47:18.331 하드웨어 제어 성공
|
||||
2026-07-22 09:47:18.336 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:11:15.044 === LEDAgent 시작 ===
|
||||
2026-07-22 10:11:15.093 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 10:27:14.211 === LEDAgent 종료 ===
|
||||
2026-07-22 10:27:32.408 === LEDAgent 시작 ===
|
||||
2026-07-22 10:27:32.437 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 10:27:53.809 === LEDAgent 종료 ===
|
||||
2026-07-22 10:29:36.999 === LEDAgent 시작 ===
|
||||
2026-07-22 10:29:37.035 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 10:50:39.395 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 10:50:39.508 하드웨어 제어 성공
|
||||
2026-07-22 10:50:39.512 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:50:58.729 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 10:50:58.845 하드웨어 제어 성공
|
||||
2026-07-22 10:50:58.856 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:51:12.957 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 10:51:13.072 하드웨어 제어 성공
|
||||
2026-07-22 10:51:13.085 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:51:22.191 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 10:51:22.308 하드웨어 제어 성공
|
||||
2026-07-22 10:51:22.319 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:51:34.483 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 10:51:34.596 하드웨어 제어 성공
|
||||
2026-07-22 10:51:34.608 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:51:48.758 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 10:51:48.875 하드웨어 제어 성공
|
||||
2026-07-22 10:51:48.885 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:52:00.034 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 10:52:00.151 하드웨어 제어 성공
|
||||
2026-07-22 10:52:00.163 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 10:52:10.267 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 10:52:10.384 하드웨어 제어 성공
|
||||
2026-07-22 10:52:10.396 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:24:27.100 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 11:24:27.216 하드웨어 제어 성공
|
||||
2026-07-22 11:24:27.229 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:24:37.538 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 11:24:37.654 하드웨어 제어 성공
|
||||
2026-07-22 11:24:37.658 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:25:08.181 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 11:25:08.285 하드웨어 제어 성공
|
||||
2026-07-22 11:25:08.297 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:25:19.702 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 11:25:19.818 하드웨어 제어 성공
|
||||
2026-07-22 11:25:19.830 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:25:26.912 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 11:25:27.027 하드웨어 제어 성공
|
||||
2026-07-22 11:25:27.038 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:25:39.205 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 11:25:39.322 하드웨어 제어 성공
|
||||
2026-07-22 11:25:39.332 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:25:46.447 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 11:25:46.551 하드웨어 제어 성공
|
||||
2026-07-22 11:25:46.563 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:38:53.368 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 11:38:53.478 하드웨어 제어 성공
|
||||
2026-07-22 11:38:53.483 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:39:02.576 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 11:39:02.687 하드웨어 제어 성공
|
||||
2026-07-22 11:39:02.700 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:39:09.818 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 11:39:09.932 하드웨어 제어 성공
|
||||
2026-07-22 11:39:09.944 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:40:33.965 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 11:40:34.081 하드웨어 제어 성공
|
||||
2026-07-22 11:40:34.093 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:40:59.445 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 11:40:59.560 하드웨어 제어 성공
|
||||
2026-07-22 11:40:59.574 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:42:59.031 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 11:42:59.149 하드웨어 제어 성공
|
||||
2026-07-22 11:42:59.160 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 11:43:36.548 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 11:43:36.650 하드웨어 제어 성공
|
||||
2026-07-22 11:43:36.663 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 12:45:02.155 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 12:45:02.270 하드웨어 제어 성공
|
||||
2026-07-22 12:45:02.281 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 12:45:11.327 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 12:45:11.430 하드웨어 제어 성공
|
||||
2026-07-22 12:45:11.434 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 12:45:20.527 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 12:45:20.645 하드웨어 제어 성공
|
||||
2026-07-22 12:45:20.657 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 12:48:45.190 === LEDAgent 종료 ===
|
||||
2026-07-22 12:49:04.477 === LEDAgent 시작 ===
|
||||
2026-07-22 12:49:04.542 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 12:49:37.223 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 12:49:37.338 하드웨어 제어 성공
|
||||
2026-07-22 12:49:37.351 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 12:54:18.361 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 12:54:18.476 하드웨어 제어 성공
|
||||
2026-07-22 12:54:18.488 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:01:04.904 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 13:01:05.009 하드웨어 제어 성공
|
||||
2026-07-22 13:01:05.014 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:01:20.238 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:01:20.341 하드웨어 제어 성공
|
||||
2026-07-22 13:01:20.344 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:01:27.339 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 13:01:27.456 하드웨어 제어 성공
|
||||
2026-07-22 13:01:27.467 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:01:38.596 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:01:38.709 하드웨어 제어 성공
|
||||
2026-07-22 13:01:38.720 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:01:57.012 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-07-22 13:01:57.128 하드웨어 제어 성공
|
||||
2026-07-22 13:01:57.132 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:14:20.643 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:14:20.759 하드웨어 제어 성공
|
||||
2026-07-22 13:14:20.764 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:15:41.438 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 13:15:41.552 하드웨어 제어 성공
|
||||
2026-07-22 13:15:41.558 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:20:03.935 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:20:04.049 하드웨어 제어 성공
|
||||
2026-07-22 13:20:04.055 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:23:30.334 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 13:23:30.451 하드웨어 제어 성공
|
||||
2026-07-22 13:23:30.462 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:24:23.370 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:24:23.478 하드웨어 제어 성공
|
||||
2026-07-22 13:24:23.481 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:24:39.749 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 13:24:39.865 하드웨어 제어 성공
|
||||
2026-07-22 13:24:39.878 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:25:02.243 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 13:25:02.357 하드웨어 제어 성공
|
||||
2026-07-22 13:25:02.368 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:25:28.752 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 13:25:28.871 하드웨어 제어 성공
|
||||
2026-07-22 13:25:28.884 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:25:45.119 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 13:25:45.235 하드웨어 제어 성공
|
||||
2026-07-22 13:25:45.246 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:25:55.284 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:25:55.397 하드웨어 제어 성공
|
||||
2026-07-22 13:25:55.410 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:26:15.753 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-07-22 13:26:15.868 하드웨어 제어 성공
|
||||
2026-07-22 13:26:15.880 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:27:31.362 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 13:27:31.479 하드웨어 제어 성공
|
||||
2026-07-22 13:27:31.490 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:27:47.717 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:27:47.820 하드웨어 제어 성공
|
||||
2026-07-22 13:27:47.833 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:28:30.607 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:28:30.710 하드웨어 제어 성공
|
||||
2026-07-22 13:28:30.722 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:29:17.574 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:29:17.692 하드웨어 제어 성공
|
||||
2026-07-22 13:29:17.697 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:29:32.940 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:29:33.055 하드웨어 제어 성공
|
||||
2026-07-22 13:29:33.066 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:30:06.608 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 13:30:06.726 하드웨어 제어 성공
|
||||
2026-07-22 13:30:06.731 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:31:36.565 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:31:36.680 하드웨어 제어 성공
|
||||
2026-07-22 13:31:36.685 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:40:38.245 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 13:40:38.348 하드웨어 제어 성공
|
||||
2026-07-22 13:40:38.360 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:42:10.378 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:42:10.492 하드웨어 제어 성공
|
||||
2026-07-22 13:42:10.502 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:42:24.742 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:1)
|
||||
2026-07-22 13:42:24.844 하드웨어 제어 성공
|
||||
2026-07-22 13:42:24.858 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:46:23.696 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 13:46:23.812 하드웨어 제어 성공
|
||||
2026-07-22 13:46:23.816 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:46:35.932 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 13:46:36.035 하드웨어 제어 성공
|
||||
2026-07-22 13:46:36.041 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:47:31.156 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:47:31.272 하드웨어 제어 성공
|
||||
2026-07-22 13:47:31.277 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:47:39.304 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 13:47:39.420 하드웨어 제어 성공
|
||||
2026-07-22 13:47:39.423 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 13:55:19.962 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 13:55:20.080 하드웨어 제어 성공
|
||||
2026-07-22 13:55:20.091 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:02:42.390 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 14:02:42.506 하드웨어 제어 성공
|
||||
2026-07-22 14:02:42.518 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:02:48.477 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:02:48.585 하드웨어 제어 성공
|
||||
2026-07-22 14:02:48.591 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:11:40.110 === LEDAgent 종료 ===
|
||||
2026-07-22 14:12:00.204 === LEDAgent 시작 ===
|
||||
2026-07-22 14:12:00.244 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 14:43:22.202 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 14:43:22.316 하드웨어 제어 성공
|
||||
2026-07-22 14:43:22.329 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:43:52.847 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:43:52.963 하드웨어 제어 성공
|
||||
2026-07-22 14:43:52.974 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:46:47.436 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 14:46:47.544 하드웨어 제어 성공
|
||||
2026-07-22 14:46:47.547 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:46:56.661 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 14:46:56.763 하드웨어 제어 성공
|
||||
2026-07-22 14:46:56.774 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:47:28.336 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:47:28.451 하드웨어 제어 성공
|
||||
2026-07-22 14:47:28.463 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:47:37.481 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:47:37.598 하드웨어 제어 성공
|
||||
2026-07-22 14:47:37.602 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:47:48.148 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:47:48.267 하드웨어 제어 성공
|
||||
2026-07-22 14:47:48.352 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:48:12.331 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:48:12.448 하드웨어 제어 성공
|
||||
2026-07-22 14:48:12.452 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:48:22.561 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:23.575 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:24.576 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:25.580 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:26.596 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:27.597 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:28.736 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:29.752 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:30.755 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:31.755 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:32.772 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 14:48:33.780 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:51.157 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:48:52.158 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:53.342 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:48:54.355 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:55.379 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:48:56.393 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:57.392 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:48:58.393 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:48:59.553 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:00.557 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:01.580 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:02.589 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:03.605 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:04.612 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:05.794 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:06.809 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:07.835 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:08.837 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:09.869 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:10.871 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:12.003 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:13.019 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:14.036 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:15.046 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:16.069 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:17.082 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:18.359 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:18.476 하드웨어 제어 성공
|
||||
2026-07-22 14:49:18.495 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:49:19.509 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:20.515 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:21.545 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:22.559 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:24.459 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:25.473 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:26.484 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:26.601 하드웨어 제어 성공
|
||||
2026-07-22 14:49:26.614 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 14:49:27.643 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:28.645 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:30.591 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:31.594 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:32.621 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:33.633 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 14:49:34.646 DB 명령 감지 - Sensor:103, IP:192.168.200.149 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 14:49:35.660 TCP/IP 제어 실패 (하드웨어 연결 확인)
|
||||
2026-07-22 15:13:29.532 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:13:29.646 하드웨어 제어 성공
|
||||
2026-07-22 15:13:29.659 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:18:07.545 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 15:18:07.649 하드웨어 제어 성공
|
||||
2026-07-22 15:18:07.660 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:19:18.982 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 15:19:19.084 하드웨어 제어 성공
|
||||
2026-07-22 15:19:19.097 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:19:29.202 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 15:19:29.318 하드웨어 제어 성공
|
||||
2026-07-22 15:19:29.332 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:19:47.569 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 15:19:47.672 하드웨어 제어 성공
|
||||
2026-07-22 15:19:47.683 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:21:54.223 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:21:54.340 하드웨어 제어 성공
|
||||
2026-07-22 15:21:54.352 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:25:06.404 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 15:25:06.520 하드웨어 제어 성공
|
||||
2026-07-22 15:25:06.532 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:25:24.831 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:25:24.947 하드웨어 제어 성공
|
||||
2026-07-22 15:25:24.954 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:27:57.021 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 15:27:57.135 하드웨어 제어 성공
|
||||
2026-07-22 15:27:57.144 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:27:59.188 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:27:59.305 하드웨어 제어 성공
|
||||
2026-07-22 15:27:59.317 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:30:48.722 === LEDAgent 종료 ===
|
||||
2026-07-22 15:33:44.716 === LEDAgent 시작 ===
|
||||
2026-07-22 15:33:44.757 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-07-22 15:34:01.075 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 15:34:01.179 하드웨어 제어 성공
|
||||
2026-07-22 15:34:01.190 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:34:34.907 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:34:35.009 하드웨어 제어 성공
|
||||
2026-07-22 15:34:35.014 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:39:02.684 하드웨어 동기화 완료 (Sensor:102, R:1 Y:1 G:0)
|
||||
2026-07-22 15:39:11.847 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:39:11.965 하드웨어 제어 성공
|
||||
2026-07-22 15:39:11.969 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 15:45:54.017 하드웨어 동기화 완료 (Sensor:102, R:0 Y:0 G:0)
|
||||
2026-07-22 15:46:05.202 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 15:46:05.318 하드웨어 제어 성공
|
||||
2026-07-22 15:46:05.327 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:09:48.791 하드웨어 동기화 완료 (Sensor:102, R:1 Y:1 G:0)
|
||||
2026-07-22 16:10:17.331 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 16:10:17.433 하드웨어 제어 성공
|
||||
2026-07-22 16:10:17.437 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:21:28.681 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 16:21:28.797 하드웨어 제어 성공
|
||||
2026-07-22 16:21:28.809 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:26:16.523 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 16:26:16.626 하드웨어 제어 성공
|
||||
2026-07-22 16:26:16.674 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:33:22.497 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-07-22 16:33:22.601 하드웨어 제어 성공
|
||||
2026-07-22 16:33:22.613 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:33:33.745 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 16:33:33.864 하드웨어 제어 성공
|
||||
2026-07-22 16:33:33.874 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:34:36.035 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 16:34:36.151 하드웨어 제어 성공
|
||||
2026-07-22 16:34:36.163 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:35:52.704 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 16:35:52.807 하드웨어 제어 성공
|
||||
2026-07-22 16:35:52.817 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:42:36.273 하드웨어 동기화 완료 (Sensor:102, R:2 Y:0 G:1)
|
||||
2026-07-22 16:43:02.777 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 16:43:02.881 하드웨어 제어 성공
|
||||
2026-07-22 16:43:02.892 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:46:57.666 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 16:46:57.770 하드웨어 제어 성공
|
||||
2026-07-22 16:46:57.774 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:47:23.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 16:47:23.344 하드웨어 제어 성공
|
||||
2026-07-22 16:47:23.355 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 16:59:54.134 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 16:59:54.252 하드웨어 제어 성공
|
||||
2026-07-22 16:59:54.265 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:00:19.689 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:00:19.806 하드웨어 제어 성공
|
||||
2026-07-22 17:00:19.809 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:04:20.705 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 17:04:20.811 하드웨어 제어 성공
|
||||
2026-07-22 17:04:20.822 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:04:45.175 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:04:45.291 하드웨어 제어 성공
|
||||
2026-07-22 17:04:45.303 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:05:12.847 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 17:05:12.951 하드웨어 제어 성공
|
||||
2026-07-22 17:05:12.954 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:05:34.240 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:05:34.357 하드웨어 제어 성공
|
||||
2026-07-22 17:05:34.367 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:14:07.409 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 17:14:07.512 하드웨어 제어 성공
|
||||
2026-07-22 17:14:07.523 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:14:32.963 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:14:33.067 하드웨어 제어 성공
|
||||
2026-07-22 17:14:33.079 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:16:26.450 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 17:16:26.553 하드웨어 제어 성공
|
||||
2026-07-22 17:16:26.557 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:16:46.890 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:16:47.008 하드웨어 제어 성공
|
||||
2026-07-22 17:16:47.020 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:25:46.309 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 17:25:46.426 하드웨어 제어 성공
|
||||
2026-07-22 17:25:46.438 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:26:10.844 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:26:10.959 하드웨어 제어 성공
|
||||
2026-07-22 17:26:10.971 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:34:32.592 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 17:34:32.696 하드웨어 제어 성공
|
||||
2026-07-22 17:34:32.710 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:35:48.195 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:35:48.312 하드웨어 제어 성공
|
||||
2026-07-22 17:35:48.325 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:40:08.968 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 17:40:09.086 하드웨어 제어 성공
|
||||
2026-07-22 17:40:09.097 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:40:24.281 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:40:24.397 하드웨어 제어 성공
|
||||
2026-07-22 17:40:24.407 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:40:49.822 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-07-22 17:40:49.930 하드웨어 제어 성공
|
||||
2026-07-22 17:40:49.942 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:41:17.395 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:41:17.500 하드웨어 제어 성공
|
||||
2026-07-22 17:41:17.505 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:44:57.180 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 17:44:57.297 하드웨어 제어 성공
|
||||
2026-07-22 17:44:57.302 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:45:09.459 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:45:09.577 하드웨어 제어 성공
|
||||
2026-07-22 17:45:09.590 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:45:15.600 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 17:45:15.718 하드웨어 제어 성공
|
||||
2026-07-22 17:45:15.729 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:45:34.973 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:45:35.088 하드웨어 제어 성공
|
||||
2026-07-22 17:45:35.092 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:46:59.829 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 17:46:59.934 하드웨어 제어 성공
|
||||
2026-07-22 17:46:59.945 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:47:14.115 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 17:47:14.218 하드웨어 제어 성공
|
||||
2026-07-22 17:47:14.230 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:47:18.204 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:47:18.321 하드웨어 제어 성공
|
||||
2026-07-22 17:47:18.334 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:47:27.486 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-07-22 17:47:27.591 하드웨어 제어 성공
|
||||
2026-07-22 17:47:27.594 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:47:43.732 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:47:43.848 하드웨어 제어 성공
|
||||
2026-07-22 17:47:43.853 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:47:54.985 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-07-22 17:47:55.090 하드웨어 제어 성공
|
||||
2026-07-22 17:47:55.093 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:48:11.280 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:48:11.384 하드웨어 제어 성공
|
||||
2026-07-22 17:48:11.389 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:50:52.868 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:0)
|
||||
2026-07-22 17:50:52.983 하드웨어 제어 성공
|
||||
2026-07-22 17:50:52.994 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 17:51:11.255 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 17:51:11.370 하드웨어 제어 성공
|
||||
2026-07-22 17:51:11.385 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:04:40.864 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 18:04:40.968 하드웨어 제어 성공
|
||||
2026-07-22 18:04:40.980 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:05:30.898 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:05:31.016 하드웨어 제어 성공
|
||||
2026-07-22 18:05:31.029 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:10:33.176 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 18:10:33.279 하드웨어 제어 성공
|
||||
2026-07-22 18:10:33.294 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:10:58.659 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:10:58.763 하드웨어 제어 성공
|
||||
2026-07-22 18:10:58.767 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:15:44.705 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 18:15:44.822 하드웨어 제어 성공
|
||||
2026-07-22 18:15:44.834 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:16:10.287 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:16:10.391 하드웨어 제어 성공
|
||||
2026-07-22 18:16:10.404 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:18:22.132 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 18:18:22.249 하드웨어 제어 성공
|
||||
2026-07-22 18:18:22.253 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:18:46.648 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:18:46.753 하드웨어 제어 성공
|
||||
2026-07-22 18:18:46.765 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:24:50.276 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 18:24:50.379 하드웨어 제어 성공
|
||||
2026-07-22 18:24:50.391 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:25:14.835 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:25:14.951 하드웨어 제어 성공
|
||||
2026-07-22 18:25:14.963 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:34:55.392 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 18:34:55.508 하드웨어 제어 성공
|
||||
2026-07-22 18:34:55.520 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 18:35:45.434 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 18:35:45.537 하드웨어 제어 성공
|
||||
2026-07-22 18:35:45.551 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:04:36.437 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 19:04:36.551 하드웨어 제어 성공
|
||||
2026-07-22 19:04:36.557 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:05:51.100 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:05:51.206 하드웨어 제어 성공
|
||||
2026-07-22 19:05:51.211 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:10:29.111 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:10:29.215 하드웨어 제어 성공
|
||||
2026-07-22 19:10:29.226 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:10:54.659 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:10:54.778 하드웨어 제어 성공
|
||||
2026-07-22 19:10:54.789 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:17:50.721 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:17:50.837 하드웨어 제어 성공
|
||||
2026-07-22 19:17:50.843 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:18:15.222 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:18:15.328 하드웨어 제어 성공
|
||||
2026-07-22 19:18:15.341 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:22:10.238 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:22:10.356 하드웨어 제어 성공
|
||||
2026-07-22 19:22:10.366 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:22:35.803 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:22:35.907 하드웨어 제어 성공
|
||||
2026-07-22 19:22:35.911 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:26:03.293 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:26:03.409 하드웨어 제어 성공
|
||||
2026-07-22 19:26:03.420 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:26:28.829 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:26:28.945 하드웨어 제어 성공
|
||||
2026-07-22 19:26:28.958 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:31:39.409 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:31:39.511 하드웨어 제어 성공
|
||||
2026-07-22 19:31:39.522 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:32:04.955 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:32:05.058 하드웨어 제어 성공
|
||||
2026-07-22 19:32:05.070 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:34:23.885 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 19:34:24.003 하드웨어 제어 성공
|
||||
2026-07-22 19:34:24.008 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:36:06.022 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:36:06.137 하드웨어 제어 성공
|
||||
2026-07-22 19:36:06.150 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:38:34.080 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:38:34.197 하드웨어 제어 성공
|
||||
2026-07-22 19:38:34.209 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:38:59.914 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:39:00.027 하드웨어 제어 성공
|
||||
2026-07-22 19:39:00.039 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:39:52.984 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:39:53.101 하드웨어 제어 성공
|
||||
2026-07-22 19:39:53.129 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:40:19.610 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:40:19.714 하드웨어 제어 성공
|
||||
2026-07-22 19:40:19.725 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:47:36.817 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 19:47:36.934 하드웨어 제어 성공
|
||||
2026-07-22 19:47:36.945 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 19:48:02.324 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 19:48:02.428 하드웨어 제어 성공
|
||||
2026-07-22 19:48:02.431 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:04:32.577 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 20:04:32.694 하드웨어 제어 성공
|
||||
2026-07-22 20:04:32.706 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:04:59.083 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:04:59.186 하드웨어 제어 성공
|
||||
2026-07-22 20:04:59.198 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:05:25.647 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 20:05:25.750 하드웨어 제어 성공
|
||||
2026-07-22 20:05:25.754 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:05:48.179 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:05:48.296 하드웨어 제어 성공
|
||||
2026-07-22 20:05:48.309 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:07:00.747 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 20:07:00.852 하드웨어 제어 성공
|
||||
2026-07-22 20:07:00.863 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:07:26.232 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:07:26.337 하드웨어 제어 성공
|
||||
2026-07-22 20:07:26.347 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:10:28.107 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 20:10:28.225 하드웨어 제어 성공
|
||||
2026-07-22 20:10:28.229 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:10:52.647 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:10:52.764 하드웨어 제어 성공
|
||||
2026-07-22 20:10:52.775 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:20:48.358 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 20:20:48.462 하드웨어 제어 성공
|
||||
2026-07-22 20:20:48.474 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:21:13.828 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:21:13.946 하드웨어 제어 성공
|
||||
2026-07-22 20:21:13.963 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:29:07.832 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 20:29:07.950 하드웨어 제어 성공
|
||||
2026-07-22 20:29:07.955 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:29:34.470 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:29:34.587 하드웨어 제어 성공
|
||||
2026-07-22 20:29:34.599 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:30:01.021 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 20:30:01.137 하드웨어 제어 성공
|
||||
2026-07-22 20:30:01.149 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:31:40.119 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:31:40.222 하드웨어 제어 성공
|
||||
2026-07-22 20:31:40.233 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:33:21.247 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 20:33:21.363 하드웨어 제어 성공
|
||||
2026-07-22 20:33:21.374 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:33:45.725 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:33:45.843 하드웨어 제어 성공
|
||||
2026-07-22 20:33:45.848 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:34:20.415 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 20:34:20.517 하드웨어 제어 성공
|
||||
2026-07-22 20:34:20.529 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 20:35:07.455 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 20:35:07.559 하드웨어 제어 성공
|
||||
2026-07-22 20:35:07.564 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:04:27.015 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 21:04:27.121 하드웨어 제어 성공
|
||||
2026-07-22 21:04:27.127 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:05:38.546 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 21:05:38.650 하드웨어 제어 성공
|
||||
2026-07-22 21:05:38.662 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:15:37.232 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 21:15:37.336 하드웨어 제어 성공
|
||||
2026-07-22 21:15:37.342 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:16:02.792 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 21:16:02.903 하드웨어 제어 성공
|
||||
2026-07-22 21:16:02.916 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:29:26.014 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 21:29:26.131 하드웨어 제어 성공
|
||||
2026-07-22 21:29:26.141 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:29:51.545 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 21:29:51.663 하드웨어 제어 성공
|
||||
2026-07-22 21:29:51.675 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:34:45.845 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 21:34:45.963 하드웨어 제어 성공
|
||||
2026-07-22 21:34:45.976 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 21:36:02.522 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 21:36:02.626 하드웨어 제어 성공
|
||||
2026-07-22 21:36:02.638 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:04:25.012 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 22:04:25.132 하드웨어 제어 성공
|
||||
2026-07-22 22:04:25.142 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:05:14.057 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:05:14.175 하드웨어 제어 성공
|
||||
2026-07-22 22:05:14.186 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:13:48.136 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 22:13:48.253 하드웨어 제어 성공
|
||||
2026-07-22 22:13:48.263 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:14:12.672 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:14:12.778 하드웨어 제어 성공
|
||||
2026-07-22 22:14:12.781 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:20:18.504 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 22:20:18.621 하드웨어 제어 성공
|
||||
2026-07-22 22:20:18.632 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:20:43.004 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:20:43.107 하드웨어 제어 성공
|
||||
2026-07-22 22:20:43.112 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:34:37.682 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 22:34:37.787 하드웨어 제어 성공
|
||||
2026-07-22 22:34:37.799 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:35:53.248 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:35:53.352 하드웨어 제어 성공
|
||||
2026-07-22 22:35:53.362 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:36:13.780 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 22:36:13.897 하드웨어 제어 성공
|
||||
2026-07-22 22:36:13.902 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:36:39.334 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:36:39.450 하드웨어 제어 성공
|
||||
2026-07-22 22:36:39.454 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:59:07.390 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 22:59:07.508 하드웨어 제어 성공
|
||||
2026-07-22 22:59:07.518 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 22:59:31.954 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 22:59:32.070 하드웨어 제어 성공
|
||||
2026-07-22 22:59:32.083 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:04:26.319 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 23:04:26.424 하드웨어 제어 성공
|
||||
2026-07-22 23:04:26.435 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:05:37.758 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:05:37.874 하드웨어 제어 성공
|
||||
2026-07-22 23:05:37.885 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:18:05.511 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 23:18:05.628 하드웨어 제어 성공
|
||||
2026-07-22 23:18:05.640 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:18:30.033 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:18:30.149 하드웨어 제어 성공
|
||||
2026-07-22 23:18:30.163 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:34:34.828 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-22 23:34:34.945 하드웨어 제어 성공
|
||||
2026-07-22 23:34:34.952 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:35:49.429 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:35:49.546 하드웨어 제어 성공
|
||||
2026-07-22 23:35:49.560 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:41:43.992 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 23:41:44.111 하드웨어 제어 성공
|
||||
2026-07-22 23:41:44.122 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:42:10.556 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:42:10.671 하드웨어 제어 성공
|
||||
2026-07-22 23:42:10.682 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:43:03.682 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 23:43:03.799 하드웨어 제어 성공
|
||||
2026-07-22 23:43:03.813 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:43:29.201 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:43:29.303 하드웨어 제어 성공
|
||||
2026-07-22 23:43:29.311 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:53:51.375 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-22 23:53:51.493 하드웨어 제어 성공
|
||||
2026-07-22 23:53:51.504 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-22 23:54:18.050 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-22 23:54:18.168 하드웨어 제어 성공
|
||||
2026-07-22 23:54:18.178 DB 완료 갱신 (Handshake 종료)
|
||||
1401
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-23.txt
Normal file
1401
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-23.txt
Normal file
File diff suppressed because it is too large
Load Diff
2877
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-24.txt
Normal file
2877
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-24.txt
Normal file
File diff suppressed because it is too large
Load Diff
5289
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-25.txt
Normal file
5289
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-25.txt
Normal file
File diff suppressed because it is too large
Load Diff
3849
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-26.txt
Normal file
3849
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-26.txt
Normal file
File diff suppressed because it is too large
Load Diff
2925
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-27.txt
Normal file
2925
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-27.txt
Normal file
File diff suppressed because it is too large
Load Diff
633
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-28.txt
Normal file
633
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-28.txt
Normal file
@ -0,0 +1,633 @@
|
||||
2026-07-28 00:04:24.207 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 00:04:24.323 하드웨어 제어 성공
|
||||
2026-07-28 00:04:24.328 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:05:44.929 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 00:05:45.034 하드웨어 제어 성공
|
||||
2026-07-28 00:05:45.046 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:19:18.302 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 00:19:18.413 하드웨어 제어 성공
|
||||
2026-07-28 00:19:18.424 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:19:35.682 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 00:19:35.800 하드웨어 제어 성공
|
||||
2026-07-28 00:19:35.812 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:27:54.229 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 00:27:54.347 하드웨어 제어 성공
|
||||
2026-07-28 00:27:54.359 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:28:16.736 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 00:28:16.843 하드웨어 제어 성공
|
||||
2026-07-28 00:28:16.854 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:34:13.431 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 00:34:13.549 하드웨어 제어 성공
|
||||
2026-07-28 00:34:13.554 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 00:35:35.079 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 00:35:35.183 하드웨어 제어 성공
|
||||
2026-07-28 00:35:35.209 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:02:40.214 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 01:02:40.331 하드웨어 제어 성공
|
||||
2026-07-28 01:02:40.335 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:03:04.766 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 01:03:04.883 하드웨어 제어 성공
|
||||
2026-07-28 01:03:04.899 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:04:55.032 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 01:04:55.149 하드웨어 제어 성공
|
||||
2026-07-28 01:04:55.162 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:05:48.229 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 01:05:48.347 하드웨어 제어 성공
|
||||
2026-07-28 01:05:48.357 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:18:53.199 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 01:18:53.304 하드웨어 제어 성공
|
||||
2026-07-28 01:18:53.316 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:19:13.586 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 01:19:13.690 하드웨어 제어 성공
|
||||
2026-07-28 01:19:13.702 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:34:14.823 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 01:34:14.940 하드웨어 제어 성공
|
||||
2026-07-28 01:34:14.946 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 01:35:56.999 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 01:35:57.116 하드웨어 제어 성공
|
||||
2026-07-28 01:35:57.128 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:04:29.857 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 02:04:29.962 하드웨어 제어 성공
|
||||
2026-07-28 02:04:29.974 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:04:54.454 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 02:04:54.570 하드웨어 제어 성공
|
||||
2026-07-28 02:04:54.584 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:18:58.578 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 02:18:58.695 하드웨어 제어 성공
|
||||
2026-07-28 02:18:58.700 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:19:16.970 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 02:19:17.074 하드웨어 제어 성공
|
||||
2026-07-28 02:19:17.084 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:32:33.006 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 02:32:33.124 하드웨어 제어 성공
|
||||
2026-07-28 02:32:33.135 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:32:57.501 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 02:32:57.616 하드웨어 제어 성공
|
||||
2026-07-28 02:32:57.629 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:34:19.212 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 02:34:19.330 하드웨어 제어 성공
|
||||
2026-07-28 02:34:19.335 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 02:35:59.207 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 02:35:59.312 하드웨어 제어 성공
|
||||
2026-07-28 02:35:59.322 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:04:13.024 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 03:04:13.127 하드웨어 제어 성공
|
||||
2026-07-28 03:04:13.138 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:05:32.728 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 03:05:32.833 하드웨어 제어 성공
|
||||
2026-07-28 03:05:32.838 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:19:08.206 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 03:19:08.322 하드웨어 제어 성공
|
||||
2026-07-28 03:19:08.336 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:19:27.650 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 03:19:27.767 하드웨어 제어 성공
|
||||
2026-07-28 03:19:27.780 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:34:06.421 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 03:34:06.525 하드웨어 제어 성공
|
||||
2026-07-28 03:34:06.536 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 03:35:26.144 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 03:35:26.247 하드웨어 제어 성공
|
||||
2026-07-28 03:35:26.261 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:02:34.104 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 04:02:34.207 하드웨어 제어 성공
|
||||
2026-07-28 04:02:34.211 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:03:01.650 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 04:03:01.767 하드웨어 제어 성공
|
||||
2026-07-28 04:03:01.780 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:04:51.961 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 04:04:52.077 하드웨어 제어 성공
|
||||
2026-07-28 04:04:52.090 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:05:42.091 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 04:05:42.207 하드웨어 제어 성공
|
||||
2026-07-28 04:05:42.221 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:18:52.319 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 04:18:52.434 하드웨어 제어 성공
|
||||
2026-07-28 04:18:52.444 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:19:13.730 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 04:19:13.848 하드웨어 제어 성공
|
||||
2026-07-28 04:19:13.857 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:34:12.140 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 04:34:12.243 하드웨어 제어 성공
|
||||
2026-07-28 04:34:12.257 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 04:35:31.857 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 04:35:31.976 하드웨어 제어 성공
|
||||
2026-07-28 04:35:31.989 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:04:32.972 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 05:04:33.088 하드웨어 제어 성공
|
||||
2026-07-28 05:04:33.100 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:05:43.474 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 05:05:43.589 하드웨어 제어 성공
|
||||
2026-07-28 05:05:43.602 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:18:58.346 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 05:18:58.456 하드웨어 제어 성공
|
||||
2026-07-28 05:18:58.467 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:19:15.727 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 05:19:15.830 하드웨어 제어 성공
|
||||
2026-07-28 05:19:15.835 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:32:32.832 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 05:32:32.949 하드웨어 제어 성공
|
||||
2026-07-28 05:32:32.953 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:32:59.383 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 05:32:59.485 하드웨어 제어 성공
|
||||
2026-07-28 05:32:59.497 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:34:23.268 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 05:34:23.371 하드웨어 제어 성공
|
||||
2026-07-28 05:34:23.378 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 05:36:04.537 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 05:36:04.656 하드웨어 제어 성공
|
||||
2026-07-28 05:36:04.668 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 06:34:27.059 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 06:34:27.165 하드웨어 제어 성공
|
||||
2026-07-28 06:34:27.171 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 06:35:21.228 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 06:35:21.345 하드웨어 제어 성공
|
||||
2026-07-28 06:35:21.356 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:04:19.274 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 07:04:19.378 하드웨어 제어 성공
|
||||
2026-07-28 07:04:19.389 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:04:41.722 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 07:04:41.839 하드웨어 제어 성공
|
||||
2026-07-28 07:04:41.851 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:05:12.417 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 07:05:12.522 하드웨어 제어 성공
|
||||
2026-07-28 07:05:12.536 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:05:39.054 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 07:05:39.171 하드웨어 제어 성공
|
||||
2026-07-28 07:05:39.183 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:18:44.994 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 07:18:45.098 하드웨어 제어 성공
|
||||
2026-07-28 07:18:45.110 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:19:06.419 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 07:19:06.537 하드웨어 제어 성공
|
||||
2026-07-28 07:19:06.549 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:34:09.853 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 07:34:09.959 하드웨어 제어 성공
|
||||
2026-07-28 07:34:09.970 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 07:35:29.508 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 07:35:29.623 하드웨어 제어 성공
|
||||
2026-07-28 07:35:29.637 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 08:18:56.401 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 08:18:56.503 하드웨어 제어 성공
|
||||
2026-07-28 08:18:56.514 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 08:19:15.793 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 08:19:15.896 하드웨어 제어 성공
|
||||
2026-07-28 08:19:15.901 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 08:34:21.259 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 08:34:21.375 하드웨어 제어 성공
|
||||
2026-07-28 08:34:21.380 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 08:36:03.303 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 08:36:03.407 하드웨어 제어 성공
|
||||
2026-07-28 08:36:03.418 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:01:20.846 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:01:20.950 하드웨어 제어 성공
|
||||
2026-07-28 09:01:20.954 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:02:16.082 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:02:16.199 하드웨어 제어 성공
|
||||
2026-07-28 09:02:16.203 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:04:14.629 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 09:04:14.734 하드웨어 제어 성공
|
||||
2026-07-28 09:04:14.748 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:05:36.283 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:05:36.398 하드웨어 제어 성공
|
||||
2026-07-28 09:05:36.410 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:08:40.424 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:08:40.541 하드웨어 제어 성공
|
||||
2026-07-28 09:08:40.556 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:09:07.029 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:09:07.146 하드웨어 제어 성공
|
||||
2026-07-28 09:09:07.150 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:31:05.914 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 09:31:06.032 하드웨어 제어 성공
|
||||
2026-07-28 09:31:06.046 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:31:28.433 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:31:28.550 하드웨어 제어 성공
|
||||
2026-07-28 09:31:28.554 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:32:54.203 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 09:32:54.316 하드웨어 제어 성공
|
||||
2026-07-28 09:32:54.330 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:33:17.698 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:33:17.817 하드웨어 제어 성공
|
||||
2026-07-28 09:33:17.828 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:34:15.940 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 09:34:16.054 하드웨어 제어 성공
|
||||
2026-07-28 09:34:16.068 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:35:38.788 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:35:38.899 하드웨어 제어 성공
|
||||
2026-07-28 09:35:38.904 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:40:31.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:40:31.337 하드웨어 제어 성공
|
||||
2026-07-28 09:40:31.349 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:41:24.374 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:41:24.489 하드웨어 제어 성공
|
||||
2026-07-28 09:41:24.494 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:43:12.764 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:43:12.879 하드웨어 제어 성공
|
||||
2026-07-28 09:43:12.891 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:43:41.324 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:43:41.430 하드웨어 제어 성공
|
||||
2026-07-28 09:43:41.448 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:48:41.676 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:48:41.780 하드웨어 제어 성공
|
||||
2026-07-28 09:48:41.792 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:49:08.261 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:49:08.364 하드웨어 제어 성공
|
||||
2026-07-28 09:49:08.385 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:56:01.528 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:56:01.632 하드웨어 제어 성공
|
||||
2026-07-28 09:56:01.645 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:57:22.243 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:57:22.361 하드웨어 제어 성공
|
||||
2026-07-28 09:57:22.372 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:57:49.850 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 09:57:49.967 하드웨어 제어 성공
|
||||
2026-07-28 09:57:49.979 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 09:59:11.592 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 09:59:11.707 하드웨어 제어 성공
|
||||
2026-07-28 09:59:11.712 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:07:05.031 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 10:07:05.148 하드웨어 제어 성공
|
||||
2026-07-28 10:07:05.159 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:07:29.559 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:07:29.661 하드웨어 제어 성공
|
||||
2026-07-28 10:07:29.665 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:08:27.841 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 10:08:27.958 하드웨어 제어 성공
|
||||
2026-07-28 10:08:27.968 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:09:19.848 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:09:19.951 하드웨어 제어 성공
|
||||
2026-07-28 10:09:19.963 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:12:05.411 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 10:12:05.525 하드웨어 제어 성공
|
||||
2026-07-28 10:12:05.537 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:17:02.874 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:17:02.979 하드웨어 제어 성공
|
||||
2026-07-28 10:17:02.992 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:18:30.753 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 10:18:30.857 하드웨어 제어 성공
|
||||
2026-07-28 10:18:30.862 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:18:54.318 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:18:54.423 하드웨어 제어 성공
|
||||
2026-07-28 10:18:54.430 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:19:17.765 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 10:19:17.882 하드웨어 제어 성공
|
||||
2026-07-28 10:19:17.894 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:19:43.279 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:19:43.383 하드웨어 제어 성공
|
||||
2026-07-28 10:19:43.394 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:31:33.643 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-28 10:31:33.747 하드웨어 제어 성공
|
||||
2026-07-28 10:31:33.760 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:32:01.198 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 10:32:01.302 하드웨어 제어 성공
|
||||
2026-07-28 10:32:01.313 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 10:32:28.794 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 10:32:28.904 하드웨어 제어 성공
|
||||
2026-07-28 10:32:28.909 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:02:58.146 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:02:58.262 하드웨어 제어 성공
|
||||
2026-07-28 11:02:58.274 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:03:23.706 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:03:23.823 하드웨어 제어 성공
|
||||
2026-07-28 11:03:23.835 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:04:46.629 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:04:46.746 하드웨어 제어 성공
|
||||
2026-07-28 11:04:46.752 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:06:30.917 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:06:31.020 하드웨어 제어 성공
|
||||
2026-07-28 11:06:31.030 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:18:48.694 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:18:48.811 하드웨어 제어 성공
|
||||
2026-07-28 11:18:48.842 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:19:11.094 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:19:11.211 하드웨어 제어 성공
|
||||
2026-07-28 11:19:11.221 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:32:47.744 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:32:47.862 하드웨어 제어 성공
|
||||
2026-07-28 11:32:47.866 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:33:32.792 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:33:32.895 하드웨어 제어 성공
|
||||
2026-07-28 11:33:32.907 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:34:37.181 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:34:37.298 하드웨어 제어 성공
|
||||
2026-07-28 11:34:37.311 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:35:56.871 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:35:56.987 하드웨어 제어 성공
|
||||
2026-07-28 11:35:56.993 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:50:54.403 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:50:54.518 하드웨어 제어 성공
|
||||
2026-07-28 11:50:54.531 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:52:14.016 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:52:14.132 하드웨어 제어 성공
|
||||
2026-07-28 11:52:14.143 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:55:25.083 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:55:25.198 하드웨어 제어 성공
|
||||
2026-07-28 11:55:25.202 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:55:50.680 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:55:50.798 하드웨어 제어 성공
|
||||
2026-07-28 11:55:50.803 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:56:18.302 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 11:56:18.420 하드웨어 제어 성공
|
||||
2026-07-28 11:56:18.425 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 11:57:12.511 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 11:57:12.614 하드웨어 제어 성공
|
||||
2026-07-28 11:57:12.626 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:01:18.059 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:01:18.176 하드웨어 제어 성공
|
||||
2026-07-28 12:01:18.188 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:03:57.349 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:03:57.467 하드웨어 제어 성공
|
||||
2026-07-28 12:03:57.478 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:04:27.968 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:04:28.085 하드웨어 제어 성공
|
||||
2026-07-28 12:04:28.097 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:05:47.782 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:05:47.899 하드웨어 제어 성공
|
||||
2026-07-28 12:05:47.910 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:18:54.689 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:18:54.806 하드웨어 제어 성공
|
||||
2026-07-28 12:18:54.820 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:19:12.057 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:19:12.162 하드웨어 제어 성공
|
||||
2026-07-28 12:19:12.174 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:20:16.428 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:20:16.531 하드웨어 제어 성공
|
||||
2026-07-28 12:20:16.543 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:20:43.072 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:20:43.190 하드웨어 제어 성공
|
||||
2026-07-28 12:20:43.216 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:22:59.027 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:22:59.147 하드웨어 제어 성공
|
||||
2026-07-28 12:22:59.159 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:24:18.733 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:24:18.851 하드웨어 제어 성공
|
||||
2026-07-28 12:24:18.864 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:32:29.347 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:32:29.465 하드웨어 제어 성공
|
||||
2026-07-28 12:32:29.470 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:32:54.894 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:32:55.010 하드웨어 제어 성공
|
||||
2026-07-28 12:32:55.016 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:34:18.777 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 12:34:18.897 하드웨어 제어 성공
|
||||
2026-07-28 12:34:18.909 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 12:35:38.451 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 12:35:38.555 하드웨어 제어 성공
|
||||
2026-07-28 12:35:38.561 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:04:09.306 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 13:04:09.424 하드웨어 제어 성공
|
||||
2026-07-28 13:04:09.435 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:11:17.157 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 13:11:17.275 하드웨어 제어 성공
|
||||
2026-07-28 13:11:17.286 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:15:01.226 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 13:15:01.343 하드웨어 제어 성공
|
||||
2026-07-28 13:15:01.348 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:15:49.285 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 13:15:49.402 하드웨어 제어 성공
|
||||
2026-07-28 13:15:49.413 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:17:44.812 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 13:17:44.915 하드웨어 제어 성공
|
||||
2026-07-28 13:17:44.928 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:19:00.363 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 13:19:00.476 하드웨어 제어 성공
|
||||
2026-07-28 13:19:00.488 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:19:31.025 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 13:19:31.129 하드웨어 제어 성공
|
||||
2026-07-28 13:19:31.135 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:22:09.361 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 13:22:09.464 하드웨어 제어 성공
|
||||
2026-07-28 13:22:09.474 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:32:37.693 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 13:32:37.811 하드웨어 제어 성공
|
||||
2026-07-28 13:32:37.823 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 13:33:00.164 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 13:33:00.280 하드웨어 제어 성공
|
||||
2026-07-28 13:33:00.293 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:02:24.405 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 14:02:24.510 하드웨어 제어 성공
|
||||
2026-07-28 14:02:24.521 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:03:15.597 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 14:03:15.713 하드웨어 제어 성공
|
||||
2026-07-28 14:03:15.718 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:04:14.797 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 14:04:14.917 하드웨어 제어 성공
|
||||
2026-07-28 14:04:14.929 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:05:59.981 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 14:06:00.084 하드웨어 제어 성공
|
||||
2026-07-28 14:06:00.088 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:19:09.565 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 14:19:09.683 하드웨어 제어 성공
|
||||
2026-07-28 14:19:09.695 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:19:27.942 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 14:19:28.058 하드웨어 제어 성공
|
||||
2026-07-28 14:19:28.070 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:34:33.432 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 14:34:33.537 하드웨어 제어 성공
|
||||
2026-07-28 14:34:33.542 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 14:36:16.532 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 14:36:16.648 하드웨어 제어 성공
|
||||
2026-07-28 14:36:16.667 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:02:34.219 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 15:02:34.337 하드웨어 제어 성공
|
||||
2026-07-28 15:02:34.354 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:02:59.731 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 15:02:59.845 하드웨어 제어 성공
|
||||
2026-07-28 15:02:59.850 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:04:22.569 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 15:04:22.687 하드웨어 제어 성공
|
||||
2026-07-28 15:04:22.701 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:05:41.304 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 15:05:41.419 하드웨어 제어 성공
|
||||
2026-07-28 15:05:41.431 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:18:48.346 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 15:18:48.464 하드웨어 제어 성공
|
||||
2026-07-28 15:18:48.472 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:19:10.892 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 15:19:11.005 하드웨어 제어 성공
|
||||
2026-07-28 15:19:11.018 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:34:09.335 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 15:34:09.438 하드웨어 제어 성공
|
||||
2026-07-28 15:34:09.449 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 15:35:53.609 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 15:35:53.722 하드웨어 제어 성공
|
||||
2026-07-28 15:35:53.734 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:02:38.027 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 16:02:38.144 하드웨어 제어 성공
|
||||
2026-07-28 16:02:38.149 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:03:23.978 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 16:03:24.094 하드웨어 제어 성공
|
||||
2026-07-28 16:03:24.108 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:04:27.334 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 16:04:27.448 하드웨어 제어 성공
|
||||
2026-07-28 16:04:27.453 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:05:47.034 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 16:05:47.137 하드웨어 제어 성공
|
||||
2026-07-28 16:05:47.148 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:18:53.088 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 16:18:53.205 하드웨어 제어 성공
|
||||
2026-07-28 16:18:53.221 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:19:16.580 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 16:19:16.696 하드웨어 제어 성공
|
||||
2026-07-28 16:19:16.711 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:34:16.033 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 16:34:16.150 하드웨어 제어 성공
|
||||
2026-07-28 16:34:16.154 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 16:36:28.149 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 16:36:28.267 하드웨어 제어 성공
|
||||
2026-07-28 16:36:28.279 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:04:28.348 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 17:04:28.451 하드웨어 제어 성공
|
||||
2026-07-28 17:04:28.454 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:06:11.541 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 17:06:11.660 하드웨어 제어 성공
|
||||
2026-07-28 17:06:11.676 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:18:53.768 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 17:18:53.870 하드웨어 제어 성공
|
||||
2026-07-28 17:18:53.883 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:19:16.293 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 17:19:16.396 하드웨어 제어 성공
|
||||
2026-07-28 17:19:16.400 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:34:12.674 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 17:34:12.780 하드웨어 제어 성공
|
||||
2026-07-28 17:34:12.786 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 17:36:24.551 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 17:36:24.667 하드웨어 제어 성공
|
||||
2026-07-28 17:36:24.671 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:02:40.493 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 18:02:40.597 하드웨어 제어 성공
|
||||
2026-07-28 18:02:40.604 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:03:07.121 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 18:03:07.240 하드웨어 제어 성공
|
||||
2026-07-28 18:03:07.259 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:04:30.910 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 18:04:31.027 하드웨어 제어 성공
|
||||
2026-07-28 18:04:31.032 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:06:14.080 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 18:06:14.197 하드웨어 제어 성공
|
||||
2026-07-28 18:06:14.203 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:18:59.226 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 18:18:59.342 하드웨어 제어 성공
|
||||
2026-07-28 18:18:59.353 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:19:21.734 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 18:19:21.839 하드웨어 제어 성공
|
||||
2026-07-28 18:19:21.851 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:32:32.682 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 18:32:32.800 하드웨어 제어 성공
|
||||
2026-07-28 18:32:32.805 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:33:19.644 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 18:33:19.750 하드웨어 제어 성공
|
||||
2026-07-28 18:33:19.756 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:34:19.863 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 18:34:19.981 하드웨어 제어 성공
|
||||
2026-07-28 18:34:19.985 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 18:36:03.201 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 18:36:03.317 하드웨어 제어 성공
|
||||
2026-07-28 18:36:03.330 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:04:13.173 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 19:04:13.290 하드웨어 제어 성공
|
||||
2026-07-28 19:04:13.293 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:05:32.871 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 19:05:32.987 하드웨어 제어 성공
|
||||
2026-07-28 19:05:33.002 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:32:38.647 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 19:32:38.765 하드웨어 제어 성공
|
||||
2026-07-28 19:32:38.777 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:33:05.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 19:33:05.348 하드웨어 제어 성공
|
||||
2026-07-28 19:33:05.361 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:34:00.357 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 19:34:00.476 하드웨어 제어 성공
|
||||
2026-07-28 19:34:00.481 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 19:36:12.080 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 19:36:12.198 하드웨어 제어 성공
|
||||
2026-07-28 19:36:12.212 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:04:15.968 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 20:04:16.084 하드웨어 제어 성공
|
||||
2026-07-28 20:04:16.090 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:05:35.693 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 20:05:35.810 하드웨어 제어 성공
|
||||
2026-07-28 20:05:35.821 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:32:42.724 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 20:32:42.840 하드웨어 제어 성공
|
||||
2026-07-28 20:32:42.852 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:33:07.235 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 20:33:07.352 하드웨어 제어 성공
|
||||
2026-07-28 20:33:07.357 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:34:29.922 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 20:34:30.025 하드웨어 제어 성공
|
||||
2026-07-28 20:34:30.029 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 20:36:15.166 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 20:36:15.285 하드웨어 제어 성공
|
||||
2026-07-28 20:36:15.289 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:04:17.265 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 21:04:17.381 하드웨어 제어 성공
|
||||
2026-07-28 21:04:17.387 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:05:36.970 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 21:05:37.073 하드웨어 제어 성공
|
||||
2026-07-28 21:05:37.084 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:18:43.643 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 21:18:43.760 하드웨어 제어 성공
|
||||
2026-07-28 21:18:43.773 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:19:07.155 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 21:19:07.272 하드웨어 제어 성공
|
||||
2026-07-28 21:19:07.285 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:19:36.782 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 21:19:36.898 하드웨어 제어 성공
|
||||
2026-07-28 21:19:36.901 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:19:59.203 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 21:19:59.319 하드웨어 제어 성공
|
||||
2026-07-28 21:19:59.331 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:32:45.485 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 21:32:45.588 하드웨어 제어 성공
|
||||
2026-07-28 21:32:45.600 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:33:06.908 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 21:33:07.012 하드웨어 제어 성공
|
||||
2026-07-28 21:33:07.024 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:34:05.154 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 21:34:05.271 하드웨어 제어 성공
|
||||
2026-07-28 21:34:05.283 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 21:36:17.025 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 21:36:17.142 하드웨어 제어 성공
|
||||
2026-07-28 21:36:17.146 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:04:23.395 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 22:04:23.498 하드웨어 제어 성공
|
||||
2026-07-28 22:04:23.503 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:05:42.992 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 22:05:43.109 하드웨어 제어 성공
|
||||
2026-07-28 22:05:43.121 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:18:51.612 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 22:18:51.729 하드웨어 제어 성공
|
||||
2026-07-28 22:18:51.741 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:19:13.021 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 22:19:13.124 하드웨어 제어 성공
|
||||
2026-07-28 22:19:13.136 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:34:10.542 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 22:34:10.658 하드웨어 제어 성공
|
||||
2026-07-28 22:34:10.662 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 22:35:32.173 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 22:35:32.276 하드웨어 제어 성공
|
||||
2026-07-28 22:35:32.288 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:02:40.375 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 23:02:40.479 하드웨어 제어 성공
|
||||
2026-07-28 23:02:40.483 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:03:05.890 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 23:03:06.008 하드웨어 제어 성공
|
||||
2026-07-28 23:03:06.020 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:04:27.523 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 23:04:27.640 하드웨어 제어 성공
|
||||
2026-07-28 23:04:27.644 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:06:11.672 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 23:06:11.789 하드웨어 제어 성공
|
||||
2026-07-28 23:06:11.793 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:32:30.834 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 23:32:30.938 하드웨어 제어 성공
|
||||
2026-07-28 23:32:30.943 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:32:55.371 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 23:32:55.476 하드웨어 제어 성공
|
||||
2026-07-28 23:32:55.480 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:34:18.140 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-28 23:34:18.251 하드웨어 제어 성공
|
||||
2026-07-28 23:34:18.254 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-28 23:36:02.300 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-28 23:36:02.418 하드웨어 제어 성공
|
||||
2026-07-28 23:36:02.429 DB 완료 갱신 (Handshake 종료)
|
||||
526
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-29.txt
Normal file
526
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-07-29.txt
Normal file
@ -0,0 +1,526 @@
|
||||
2026-07-29 00:04:09.658 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 00:04:09.773 하드웨어 제어 성공
|
||||
2026-07-29 00:04:09.776 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 00:05:29.353 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 00:05:29.470 하드웨어 제어 성공
|
||||
2026-07-29 00:05:29.482 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 00:33:59.637 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 00:33:59.743 하드웨어 제어 성공
|
||||
2026-07-29 00:33:59.748 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 00:35:43.730 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 00:35:43.849 하드웨어 제어 성공
|
||||
2026-07-29 00:35:43.861 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:02:26.857 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 01:02:26.962 하드웨어 제어 성공
|
||||
2026-07-29 01:02:26.975 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:02:52.348 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 01:02:52.466 하드웨어 제어 성공
|
||||
2026-07-29 01:02:52.478 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:04:44.787 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 01:04:44.900 하드웨어 제어 성공
|
||||
2026-07-29 01:04:44.913 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:05:31.710 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 01:05:31.813 하드웨어 제어 성공
|
||||
2026-07-29 01:05:31.824 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:18:44.716 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 01:18:44.835 하드웨어 제어 성공
|
||||
2026-07-29 01:18:44.846 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:19:07.138 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 01:19:07.252 하드웨어 제어 성공
|
||||
2026-07-29 01:19:07.264 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:34:01.019 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 01:34:01.134 하드웨어 제어 성공
|
||||
2026-07-29 01:34:01.138 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 01:35:21.761 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 01:35:21.880 하드웨어 제어 성공
|
||||
2026-07-29 01:35:21.884 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:02:32.568 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 02:02:32.673 하드웨어 제어 성공
|
||||
2026-07-29 02:02:32.676 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:02:59.182 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 02:02:59.285 하드웨어 제어 성공
|
||||
2026-07-29 02:02:59.291 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:04:24.127 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 02:04:24.244 하드웨어 제어 성공
|
||||
2026-07-29 02:04:24.257 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:05:16.281 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 02:05:16.397 하드웨어 제어 성공
|
||||
2026-07-29 02:05:16.409 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:18:49.763 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 02:18:49.880 하드웨어 제어 성공
|
||||
2026-07-29 02:18:49.887 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:19:13.229 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 02:19:13.347 하드웨어 제어 성공
|
||||
2026-07-29 02:19:13.360 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:34:11.652 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 02:34:11.755 하드웨어 제어 성공
|
||||
2026-07-29 02:34:11.762 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 02:35:32.328 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 02:35:32.444 하드웨어 제어 성공
|
||||
2026-07-29 02:35:32.456 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:02:37.146 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 03:02:37.265 하드웨어 제어 성공
|
||||
2026-07-29 03:02:37.270 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:03:01.652 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 03:03:01.756 하드웨어 제어 성공
|
||||
2026-07-29 03:03:01.767 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:03:58.834 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 03:03:58.937 하드웨어 제어 성공
|
||||
2026-07-29 03:03:58.949 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:05:18.495 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 03:05:18.613 하드웨어 제어 성공
|
||||
2026-07-29 03:05:18.625 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:18:55.013 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 03:18:55.129 하드웨어 제어 성공
|
||||
2026-07-29 03:18:55.141 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:19:16.475 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 03:19:16.590 하드웨어 제어 성공
|
||||
2026-07-29 03:19:16.602 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:34:16.907 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 03:34:17.023 하드웨어 제어 성공
|
||||
2026-07-29 03:34:17.033 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 03:36:02.993 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 03:36:03.096 하드웨어 제어 성공
|
||||
2026-07-29 03:36:03.108 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:04:33.321 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 04:04:33.438 하드웨어 제어 성공
|
||||
2026-07-29 04:04:33.442 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:05:27.539 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 04:05:27.656 하드웨어 제어 성공
|
||||
2026-07-29 04:05:27.659 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:32:35.188 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 04:32:35.304 하드웨어 제어 성공
|
||||
2026-07-29 04:32:35.312 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:33:01.730 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 04:33:01.834 하드웨어 제어 성공
|
||||
2026-07-29 04:33:01.840 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:34:24.468 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 04:34:24.585 하드웨어 제어 성공
|
||||
2026-07-29 04:34:24.589 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 04:36:12.764 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 04:36:12.867 하드웨어 제어 성공
|
||||
2026-07-29 04:36:12.872 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:04:17.621 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 05:04:17.736 하드웨어 제어 성공
|
||||
2026-07-29 05:04:17.748 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:05:35.274 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 05:05:35.377 하드웨어 제어 성공
|
||||
2026-07-29 05:05:35.387 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:18:46.248 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 05:18:46.364 하드웨어 제어 성공
|
||||
2026-07-29 05:18:46.376 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:19:07.734 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 05:19:07.852 하드웨어 제어 성공
|
||||
2026-07-29 05:19:07.863 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:34:16.097 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 05:34:16.215 하드웨어 제어 성공
|
||||
2026-07-29 05:34:16.220 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 05:36:01.454 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 05:36:01.558 하드웨어 제어 성공
|
||||
2026-07-29 05:36:01.570 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:04:20.398 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:04:20.501 하드웨어 제어 성공
|
||||
2026-07-29 06:04:20.512 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:05:41.069 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:05:41.173 하드웨어 제어 성공
|
||||
2026-07-29 06:05:41.185 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:32:33.311 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:32:33.428 하드웨어 제어 성공
|
||||
2026-07-29 06:32:33.440 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:32:57.875 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:32:57.993 하드웨어 제어 성공
|
||||
2026-07-29 06:32:58.006 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:34:21.608 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:34:21.713 하드웨어 제어 성공
|
||||
2026-07-29 06:34:21.720 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:35:41.320 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:35:41.424 하드웨어 제어 성공
|
||||
2026-07-29 06:35:41.436 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:44:21.709 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:44:21.813 하드웨어 제어 성공
|
||||
2026-07-29 06:44:21.818 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:47:00.997 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:47:01.114 하드웨어 제어 성공
|
||||
2026-07-29 06:47:01.126 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:47:34.735 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:47:34.853 하드웨어 제어 성공
|
||||
2026-07-29 06:47:34.858 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:49:20.024 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:49:20.128 하드웨어 제어 성공
|
||||
2026-07-29 06:49:20.133 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:52:33.148 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:52:33.266 하드웨어 제어 성공
|
||||
2026-07-29 06:52:33.279 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:53:28.328 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:53:28.445 하드웨어 제어 성공
|
||||
2026-07-29 06:53:28.449 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:54:50.228 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:54:50.344 하드웨어 제어 성공
|
||||
2026-07-29 06:54:50.347 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:56:06.842 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:56:06.959 하드웨어 제어 성공
|
||||
2026-07-29 06:56:06.964 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:57:05.158 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 06:57:05.263 하드웨어 제어 성공
|
||||
2026-07-29 06:57:05.275 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 06:59:21.029 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 06:59:21.134 하드웨어 제어 성공
|
||||
2026-07-29 06:59:21.146 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:02:36.165 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 07:02:36.268 하드웨어 제어 성공
|
||||
2026-07-29 07:02:36.275 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:03:02.729 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 07:03:02.832 하드웨어 제어 성공
|
||||
2026-07-29 07:03:02.845 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:04:26.487 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 07:04:26.593 하드웨어 제어 성공
|
||||
2026-07-29 07:04:26.598 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:05:46.136 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 07:05:46.252 하드웨어 제어 성공
|
||||
2026-07-29 07:05:46.264 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:18:29.577 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 07:18:29.694 하드웨어 제어 성공
|
||||
2026-07-29 07:18:29.707 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:18:53.121 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 07:18:53.236 하드웨어 제어 성공
|
||||
2026-07-29 07:18:53.249 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:32:39.748 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 07:32:39.852 하드웨어 제어 성공
|
||||
2026-07-29 07:32:39.862 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:33:05.272 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 07:33:05.390 하드웨어 제어 성공
|
||||
2026-07-29 07:33:05.402 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:34:30.022 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 07:34:30.139 하드웨어 제어 성공
|
||||
2026-07-29 07:34:30.144 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 07:36:16.223 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 07:36:16.329 하드웨어 제어 성공
|
||||
2026-07-29 07:36:16.336 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 08:04:33.099 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 08:04:33.215 하드웨어 제어 성공
|
||||
2026-07-29 08:04:33.227 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 08:05:27.319 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 08:05:27.438 하드웨어 제어 성공
|
||||
2026-07-29 08:05:27.444 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 08:34:04.389 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 08:34:04.492 하드웨어 제어 성공
|
||||
2026-07-29 08:34:04.497 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 08:35:24.109 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 08:35:24.226 하드웨어 제어 성공
|
||||
2026-07-29 08:35:24.237 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:00:44.407 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 09:00:44.524 하드웨어 제어 성공
|
||||
2026-07-29 09:00:44.536 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:01:10.912 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 09:01:11.016 하드웨어 제어 성공
|
||||
2026-07-29 09:01:11.028 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:04:03.504 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 09:04:03.606 하드웨어 제어 성공
|
||||
2026-07-29 09:04:03.618 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:05:23.122 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 09:05:23.226 하드웨어 제어 성공
|
||||
2026-07-29 09:05:23.230 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:34:04.364 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 09:34:04.475 하드웨어 제어 성공
|
||||
2026-07-29 09:34:04.479 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 09:36:17.166 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 09:36:17.270 하드웨어 제어 성공
|
||||
2026-07-29 09:36:17.280 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:06:34.107 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 10:06:34.225 하드웨어 제어 성공
|
||||
2026-07-29 10:06:34.229 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:09:36.897 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:09:37.015 하드웨어 제어 성공
|
||||
2026-07-29 10:09:37.019 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:11:58.835 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 10:11:58.943 하드웨어 제어 성공
|
||||
2026-07-29 10:11:58.949 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:17:40.028 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:17:40.142 하드웨어 제어 성공
|
||||
2026-07-29 10:17:40.146 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:22:50.682 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 10:22:50.800 하드웨어 제어 성공
|
||||
2026-07-29 10:22:50.813 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:23:13.147 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:23:13.264 하드웨어 제어 성공
|
||||
2026-07-29 10:23:13.276 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:29:53.800 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 10:29:53.916 하드웨어 제어 성공
|
||||
2026-07-29 10:29:53.921 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:31:15.525 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 10:31:15.629 하드웨어 제어 성공
|
||||
2026-07-29 10:31:15.640 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:31:42.054 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 10:31:42.157 하드웨어 제어 성공
|
||||
2026-07-29 10:31:42.168 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:32:07.588 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:32:07.705 하드웨어 제어 성공
|
||||
2026-07-29 10:32:07.709 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:32:35.227 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 10:32:35.343 하드웨어 제어 성공
|
||||
2026-07-29 10:32:35.356 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:33:02.782 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 10:33:02.900 하드웨어 제어 성공
|
||||
2026-07-29 10:33:02.912 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:35:20.784 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:35:20.901 하드웨어 제어 성공
|
||||
2026-07-29 10:35:20.904 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:51:42.046 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 10:51:42.162 하드웨어 제어 성공
|
||||
2026-07-29 10:51:42.168 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 10:52:08.575 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 10:52:08.678 하드웨어 제어 성공
|
||||
2026-07-29 10:52:08.691 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:02:50.292 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:02:50.411 하드웨어 제어 성공
|
||||
2026-07-29 11:02:50.422 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:03:15.814 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:03:15.917 하드웨어 제어 성공
|
||||
2026-07-29 11:03:15.921 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:04:40.609 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:04:40.713 하드웨어 제어 성공
|
||||
2026-07-29 11:04:40.725 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:06:25.835 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:06:25.952 하드웨어 제어 성공
|
||||
2026-07-29 11:06:25.965 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:07:53.665 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:07:53.782 하드웨어 제어 성공
|
||||
2026-07-29 11:07:53.785 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:08:19.168 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:08:19.286 하드웨어 제어 성공
|
||||
2026-07-29 11:08:19.297 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:12:02.065 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:12:02.183 하드웨어 제어 성공
|
||||
2026-07-29 11:12:02.194 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:12:26.612 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:12:26.732 하드웨어 제어 성공
|
||||
2026-07-29 11:12:26.744 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:13:48.304 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:13:48.422 하드웨어 제어 성공
|
||||
2026-07-29 11:13:48.426 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:14:14.891 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:14:14.994 하드웨어 제어 성공
|
||||
2026-07-29 11:14:15.005 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:18:50.025 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:18:50.129 하드웨어 제어 성공
|
||||
2026-07-29 11:18:50.141 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:19:11.513 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:19:11.631 하드웨어 제어 성공
|
||||
2026-07-29 11:19:11.644 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:34:45.409 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:34:45.512 하드웨어 제어 성공
|
||||
2026-07-29 11:34:45.524 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:36:07.117 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:36:07.235 하드웨어 제어 성공
|
||||
2026-07-29 11:36:07.240 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:49:49.160 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:49:49.266 하드웨어 제어 성공
|
||||
2026-07-29 11:49:49.278 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:51:05.799 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:51:05.903 하드웨어 제어 성공
|
||||
2026-07-29 11:51:05.906 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:53:55.347 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:53:55.451 하드웨어 제어 성공
|
||||
2026-07-29 11:53:55.463 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:54:49.431 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:54:49.547 하드웨어 제어 성공
|
||||
2026-07-29 11:54:49.550 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:55:19.020 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:55:19.124 하드웨어 제어 성공
|
||||
2026-07-29 11:55:19.137 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:56:10.118 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 11:56:10.235 하드웨어 제어 성공
|
||||
2026-07-29 11:56:10.246 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 11:59:50.900 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 11:59:51.018 하드웨어 제어 성공
|
||||
2026-07-29 11:59:51.042 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:02:01.748 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:02:01.851 하드웨어 제어 성공
|
||||
2026-07-29 12:02:01.862 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:02:33.445 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 12:02:33.563 하드웨어 제어 성공
|
||||
2026-07-29 12:02:33.575 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:03:22.531 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:03:22.634 하드웨어 제어 성공
|
||||
2026-07-29 12:03:22.638 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:04:22.779 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 12:04:22.897 하드웨어 제어 성공
|
||||
2026-07-29 12:04:22.902 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:06:06.970 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:06:07.086 하드웨어 제어 성공
|
||||
2026-07-29 12:06:07.091 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:18:53.406 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 12:18:53.522 하드웨어 제어 성공
|
||||
2026-07-29 12:18:53.525 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:19:12.832 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:19:12.941 하드웨어 제어 성공
|
||||
2026-07-29 12:19:12.952 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:22:55.671 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 12:22:55.774 하드웨어 제어 성공
|
||||
2026-07-29 12:22:55.777 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:24:45.066 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:24:45.184 하드웨어 제어 성공
|
||||
2026-07-29 12:24:45.195 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:34:23.337 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 12:34:23.439 하드웨어 제어 성공
|
||||
2026-07-29 12:34:23.451 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 12:34:49.954 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 12:34:50.057 하드웨어 제어 성공
|
||||
2026-07-29 12:34:50.072 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:02:55.785 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 13:02:55.888 하드웨어 제어 성공
|
||||
2026-07-29 13:02:55.892 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:03:17.181 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:03:17.284 하드웨어 제어 성공
|
||||
2026-07-29 13:03:17.296 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:04:17.551 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 13:04:17.655 하드웨어 제어 성공
|
||||
2026-07-29 13:04:17.665 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:05:56.603 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:05:56.720 하드웨어 제어 성공
|
||||
2026-07-29 13:05:56.726 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:19:17.159 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 13:19:17.262 하드웨어 제어 성공
|
||||
2026-07-29 13:19:17.273 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:19:37.535 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:19:37.639 하드웨어 제어 성공
|
||||
2026-07-29 13:19:37.651 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:30:27.698 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 13:30:27.817 하드웨어 제어 성공
|
||||
2026-07-29 13:30:27.837 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:31:51.396 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:31:51.514 하드웨어 제어 성공
|
||||
2026-07-29 13:31:51.526 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:32:53.822 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 13:32:53.924 하드웨어 제어 성공
|
||||
2026-07-29 13:32:53.930 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:36:27.412 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:36:27.530 하드웨어 제어 성공
|
||||
2026-07-29 13:36:27.541 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:56:51.656 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 13:56:51.774 하드웨어 제어 성공
|
||||
2026-07-29 13:56:51.786 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 13:57:18.252 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 13:57:18.369 하드웨어 제어 성공
|
||||
2026-07-29 13:57:18.383 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 14:04:15.244 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 14:04:15.347 하드웨어 제어 성공
|
||||
2026-07-29 14:04:15.358 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 14:05:37.086 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 14:05:37.204 하드웨어 제어 성공
|
||||
2026-07-29 14:05:37.215 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 14:34:15.889 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 14:34:15.994 하드웨어 제어 성공
|
||||
2026-07-29 14:34:15.999 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 14:36:01.207 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 14:36:01.311 하드웨어 제어 성공
|
||||
2026-07-29 14:36:01.334 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:04:21.483 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 15:04:21.600 하드웨어 제어 성공
|
||||
2026-07-29 15:04:21.612 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:05:43.168 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 15:05:43.285 하드웨어 제어 성공
|
||||
2026-07-29 15:05:43.297 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:10:06.785 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-07-29 15:10:06.888 하드웨어 제어 성공
|
||||
2026-07-29 15:10:06.902 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:10:33.345 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 15:10:33.447 하드웨어 제어 성공
|
||||
2026-07-29 15:10:33.459 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:18:53.184 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 15:18:53.288 하드웨어 제어 성공
|
||||
2026-07-29 15:18:53.291 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:19:14.607 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 15:19:14.711 하드웨어 제어 성공
|
||||
2026-07-29 15:19:14.716 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:34:14.154 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 15:34:14.257 하드웨어 제어 성공
|
||||
2026-07-29 15:34:14.262 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 15:35:59.370 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 15:35:59.488 하드웨어 제어 성공
|
||||
2026-07-29 15:35:59.499 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:02:37.914 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 16:02:38.029 하드웨어 제어 성공
|
||||
2026-07-29 16:02:38.034 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:03:03.467 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 16:03:03.584 하드웨어 제어 성공
|
||||
2026-07-29 16:03:03.597 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:04:27.300 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 16:04:27.404 하드웨어 제어 성공
|
||||
2026-07-29 16:04:27.414 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:04:49.742 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 16:04:49.858 하드웨어 제어 성공
|
||||
2026-07-29 16:04:49.869 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:18:59.812 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 16:18:59.917 하드웨어 제어 성공
|
||||
2026-07-29 16:18:59.921 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:19:24.298 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 16:19:24.414 하드웨어 제어 성공
|
||||
2026-07-29 16:19:24.419 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:32:39.210 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 16:32:39.325 하드웨어 제어 성공
|
||||
2026-07-29 16:32:39.338 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:33:03.706 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 16:33:03.822 하드웨어 제어 성공
|
||||
2026-07-29 16:33:03.834 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:34:26.350 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 16:34:26.468 하드웨어 제어 성공
|
||||
2026-07-29 16:34:26.475 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 16:36:07.563 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 16:36:07.666 하드웨어 제어 성공
|
||||
2026-07-29 16:36:07.678 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:02:41.845 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 17:02:41.959 하드웨어 제어 성공
|
||||
2026-07-29 17:02:41.972 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:03:07.389 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 17:03:07.505 하드웨어 제어 성공
|
||||
2026-07-29 17:03:07.516 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:04:03.531 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 17:04:03.648 하드웨어 제어 성공
|
||||
2026-07-29 17:04:03.659 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:05:48.760 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 17:05:48.876 하드웨어 제어 성공
|
||||
2026-07-29 17:05:48.887 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:34:05.801 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 17:34:05.917 하드웨어 제어 성공
|
||||
2026-07-29 17:34:05.923 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 17:35:51.893 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 17:35:52.008 하드웨어 제어 성공
|
||||
2026-07-29 17:35:52.020 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 18:04:09.904 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 18:04:10.023 하드웨어 제어 성공
|
||||
2026-07-29 18:04:10.035 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 18:05:31.599 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 18:05:31.702 하드웨어 제어 성공
|
||||
2026-07-29 18:05:31.712 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 18:34:17.196 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 18:34:17.315 하드웨어 제어 성공
|
||||
2026-07-29 18:34:17.320 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 18:36:04.428 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 18:36:04.545 하드웨어 제어 성공
|
||||
2026-07-29 18:36:04.556 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:02:36.455 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 19:02:36.560 하드웨어 제어 성공
|
||||
2026-07-29 19:02:36.565 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:03:03.021 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 19:03:03.138 하드웨어 제어 성공
|
||||
2026-07-29 19:03:03.142 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:04:25.809 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 19:04:25.928 하드웨어 제어 성공
|
||||
2026-07-29 19:04:25.934 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:05:20.183 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 19:05:20.288 하드웨어 제어 성공
|
||||
2026-07-29 19:05:20.299 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:34:03.735 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 19:34:03.852 하드웨어 제어 성공
|
||||
2026-07-29 19:34:03.857 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 19:35:47.996 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 19:35:48.110 하드웨어 제어 성공
|
||||
2026-07-29 19:35:48.123 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 20:04:14.893 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-07-29 20:04:14.999 하드웨어 제어 성공
|
||||
2026-07-29 20:04:15.012 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 20:05:35.561 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-07-29 20:05:35.679 하드웨어 제어 성공
|
||||
2026-07-29 20:05:35.692 DB 완료 갱신 (Handshake 종료)
|
||||
2026-07-29 20:07:48.441 DB 폴링 에러: [FireDAC][Phys][MySQL] Lost connection to MySQL server during query
|
||||
@ -0,0 +1 @@
|
||||
2026-08-03 11:25:28.391 === LEDAgent 종료 ===
|
||||
320
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-05.txt
Normal file
320
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-05.txt
Normal file
@ -0,0 +1,320 @@
|
||||
2026-08-05 10:01:15.122 === LEDAgent 시작 ===
|
||||
2026-08-05 10:01:15.258 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-08-05 10:01:20.397 하드웨어 동기화 완료 (Sensor:102, R:0 Y:0 G:0)
|
||||
2026-08-05 10:05:06.372 === LEDAgent 시작 ===
|
||||
2026-08-05 10:05:06.409 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-08-05 10:05:07.417 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:05:07.526 하드웨어 제어 성공
|
||||
2026-08-05 10:05:07.539 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:06:07.718 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:06:07.835 하드웨어 제어 성공
|
||||
2026-08-05 10:06:07.837 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:06:40.371 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:06:40.476 하드웨어 제어 성공
|
||||
2026-08-05 10:06:40.479 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:08:29.656 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:08:29.760 하드웨어 제어 성공
|
||||
2026-08-05 10:08:29.772 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:08:48.070 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 10:08:48.175 하드웨어 제어 성공
|
||||
2026-08-05 10:08:48.186 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:09:13.566 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:09:13.670 하드웨어 제어 성공
|
||||
2026-08-05 10:09:13.681 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:11:38.659 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:11:38.764 하드웨어 제어 성공
|
||||
2026-08-05 10:11:38.775 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:16:28.710 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:16:28.813 하드웨어 제어 성공
|
||||
2026-08-05 10:16:28.816 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:17:05.482 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:17:05.598 하드웨어 제어 성공
|
||||
2026-08-05 10:17:05.609 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:19:48.914 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:19:49.018 하드웨어 제어 성공
|
||||
2026-08-05 10:19:49.027 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:27:07.013 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:27:07.118 하드웨어 제어 성공
|
||||
2026-08-05 10:27:07.128 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:27:25.436 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:27:25.539 하드웨어 제어 성공
|
||||
2026-08-05 10:27:25.543 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:31:29.455 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 10:31:29.558 하드웨어 제어 성공
|
||||
2026-08-05 10:31:29.570 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 10:32:24.647 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 10:32:24.752 하드웨어 제어 성공
|
||||
2026-08-05 10:32:24.782 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:01:13.991 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:01:14.096 하드웨어 제어 성공
|
||||
2026-08-05 11:01:14.111 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:01:39.485 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:01:39.589 하드웨어 제어 성공
|
||||
2026-08-05 11:01:39.592 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:02:37.739 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:02:37.844 하드웨어 제어 성공
|
||||
2026-08-05 11:02:37.847 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:03:02.238 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:03:02.341 하드웨어 제어 성공
|
||||
2026-08-05 11:03:02.352 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:04:27.019 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:04:27.124 하드웨어 제어 성공
|
||||
2026-08-05 11:04:27.135 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:05:41.535 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:05:41.639 하드웨어 제어 성공
|
||||
2026-08-05 11:05:41.643 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:19:34.087 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:19:34.205 하드웨어 제어 성공
|
||||
2026-08-05 11:19:34.217 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:19:54.516 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:19:54.621 하드웨어 제어 성공
|
||||
2026-08-05 11:19:54.633 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:30:10.280 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 11:30:10.397 하드웨어 제어 성공
|
||||
2026-08-05 11:30:10.405 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:30:37.037 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:30:37.141 하드웨어 제어 성공
|
||||
2026-08-05 11:30:37.143 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:31:12.787 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:31:12.890 하드웨어 제어 성공
|
||||
2026-08-05 11:31:12.897 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:31:37.272 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:31:37.375 하드웨어 제어 성공
|
||||
2026-08-05 11:31:37.387 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:32:30.297 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:32:30.402 하드웨어 제어 성공
|
||||
2026-08-05 11:32:30.410 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:33:16.274 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:33:16.393 하드웨어 제어 성공
|
||||
2026-08-05 11:33:16.402 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:57:54.567 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 11:57:54.684 하드웨어 제어 성공
|
||||
2026-08-05 11:57:54.696 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 11:59:07.100 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 11:59:07.203 하드웨어 제어 성공
|
||||
2026-08-05 11:59:07.217 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:01:20.973 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 12:01:21.077 하드웨어 제어 성공
|
||||
2026-08-05 12:01:21.082 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:02:12.015 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 12:02:12.118 하드웨어 제어 성공
|
||||
2026-08-05 12:02:12.130 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:02:40.591 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 12:02:40.696 하드웨어 제어 성공
|
||||
2026-08-05 12:02:40.708 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:03:03.035 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 12:03:03.139 하드웨어 제어 성공
|
||||
2026-08-05 12:03:03.142 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:08:14.666 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 12:08:14.770 하드웨어 제어 성공
|
||||
2026-08-05 12:08:14.780 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:09:56.781 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 12:09:56.899 하드웨어 제어 성공
|
||||
2026-08-05 12:09:56.910 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:19:26.830 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 12:19:26.933 하드웨어 제어 성공
|
||||
2026-08-05 12:19:26.937 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:19:44.234 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 12:19:44.351 하드웨어 제어 성공
|
||||
2026-08-05 12:19:44.365 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:31:30.182 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 12:31:30.288 하드웨어 제어 성공
|
||||
2026-08-05 12:31:30.299 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 12:32:18.194 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 12:32:18.312 하드웨어 제어 성공
|
||||
2026-08-05 12:32:18.323 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:01:14.039 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:01:14.144 하드웨어 제어 성공
|
||||
2026-08-05 13:01:14.156 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:02:01.031 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:02:01.136 하드웨어 제어 성공
|
||||
2026-08-05 13:02:01.143 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:02:31.709 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:02:31.825 하드웨어 제어 성공
|
||||
2026-08-05 13:02:31.837 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:02:56.226 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:02:56.331 하드웨어 제어 성공
|
||||
2026-08-05 13:02:56.341 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:04:15.878 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:04:15.983 하드웨어 제어 성공
|
||||
2026-08-05 13:04:15.994 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:05:29.405 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:05:29.521 하드웨어 제어 성공
|
||||
2026-08-05 13:05:29.532 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:09:41.625 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:09:41.743 하드웨어 제어 성공
|
||||
2026-08-05 13:09:41.746 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:10:08.148 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:10:08.250 하드웨어 제어 성공
|
||||
2026-08-05 13:10:08.264 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:26:05.211 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 13:26:05.313 하드웨어 제어 성공
|
||||
2026-08-05 13:26:05.317 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:28:40.461 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:28:40.567 하드웨어 제어 성공
|
||||
2026-08-05 13:28:40.571 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:32:59.728 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:32:59.845 하드웨어 제어 성공
|
||||
2026-08-05 13:32:59.856 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:37:53.728 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:37:53.831 하드웨어 제어 성공
|
||||
2026-08-05 13:37:53.843 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:38:16.239 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:38:16.353 하드웨어 제어 성공
|
||||
2026-08-05 13:38:16.373 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:51:33.106 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:51:33.208 하드웨어 제어 성공
|
||||
2026-08-05 13:51:33.220 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:51:57.610 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:51:57.726 하드웨어 제어 성공
|
||||
2026-08-05 13:51:57.739 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:52:49.706 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 13:52:49.822 하드웨어 제어 성공
|
||||
2026-08-05 13:52:49.837 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 13:53:15.199 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 13:53:15.302 하드웨어 제어 성공
|
||||
2026-08-05 13:53:15.315 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:01:10.385 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:01:10.489 하드웨어 제어 성공
|
||||
2026-08-05 14:01:10.494 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:01:35.859 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:01:35.975 하드웨어 제어 성공
|
||||
2026-08-05 14:01:35.987 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:02:28.977 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:02:29.080 하드웨어 제어 성공
|
||||
2026-08-05 14:02:29.092 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:02:53.487 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:02:53.604 하드웨어 제어 성공
|
||||
2026-08-05 14:02:53.616 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:04:37.616 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:04:37.720 하드웨어 제어 성공
|
||||
2026-08-05 14:04:37.724 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:05:27.662 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:05:27.779 하드웨어 제어 성공
|
||||
2026-08-05 14:05:27.786 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:31:33.171 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:31:33.276 하드웨어 제어 성공
|
||||
2026-08-05 14:31:33.282 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:31:59.716 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:31:59.833 하드웨어 제어 성공
|
||||
2026-08-05 14:31:59.843 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:32:30.325 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:32:30.441 하드웨어 제어 성공
|
||||
2026-08-05 14:32:30.461 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:32:54.834 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:32:54.951 하드웨어 제어 성공
|
||||
2026-08-05 14:32:54.961 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:33:41.814 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 14:33:41.932 하드웨어 제어 성공
|
||||
2026-08-05 14:33:41.942 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:34:17.604 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:34:17.707 하드웨어 제어 성공
|
||||
2026-08-05 14:34:17.710 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:35:10.674 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:35:10.777 하드웨어 제어 성공
|
||||
2026-08-05 14:35:10.789 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:40:03.861 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 14:40:03.966 하드웨어 제어 성공
|
||||
2026-08-05 14:40:03.979 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:40:30.369 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:40:30.485 하드웨어 제어 성공
|
||||
2026-08-05 14:40:30.496 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:45:59.229 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 14:45:59.343 하드웨어 제어 성공
|
||||
2026-08-05 14:45:59.348 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:46:26.758 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:46:26.861 하드웨어 제어 성공
|
||||
2026-08-05 14:46:26.871 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:49:39.646 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 14:49:39.762 하드웨어 제어 성공
|
||||
2026-08-05 14:49:39.770 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:51:52.421 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:51:52.532 하드웨어 제어 성공
|
||||
2026-08-05 14:51:52.536 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:54:34.858 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:54:34.974 하드웨어 제어 성공
|
||||
2026-08-05 14:54:34.984 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:55:04.472 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 14:55:04.589 하드웨어 제어 성공
|
||||
2026-08-05 14:55:04.604 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 14:55:56.532 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 14:55:56.650 하드웨어 제어 성공
|
||||
2026-08-05 14:55:56.654 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:02:25.699 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 15:02:25.816 하드웨어 제어 성공
|
||||
2026-08-05 15:02:25.826 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:02:51.200 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:02:51.304 하드웨어 제어 성공
|
||||
2026-08-05 15:02:51.308 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:04:42.461 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 15:04:42.576 하드웨어 제어 성공
|
||||
2026-08-05 15:04:42.586 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:05:06.964 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:05:07.083 하드웨어 제어 성공
|
||||
2026-08-05 15:05:07.095 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:11:49.290 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 15:11:49.393 하드웨어 제어 성공
|
||||
2026-08-05 15:11:49.405 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:12:15.831 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:12:15.947 하드웨어 제어 성공
|
||||
2026-08-05 15:12:15.958 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:16:18.866 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 15:16:18.980 하드웨어 제어 성공
|
||||
2026-08-05 15:16:18.992 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:16:44.361 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:16:44.466 하드웨어 제어 성공
|
||||
2026-08-05 15:16:44.477 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:19:10.395 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 15:19:10.498 하드웨어 제어 성공
|
||||
2026-08-05 15:19:10.501 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:20:00.445 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:20:00.561 하드웨어 제어 성공
|
||||
2026-08-05 15:20:00.564 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:24:59.733 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-05 15:24:59.849 하드웨어 제어 성공
|
||||
2026-08-05 15:24:59.861 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 15:25:25.230 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 15:25:25.334 하드웨어 제어 성공
|
||||
2026-08-05 15:25:25.344 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 16:23:46.779 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 16:23:46.882 하드웨어 제어 성공
|
||||
2026-08-05 16:23:46.895 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 16:24:04.109 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 16:24:04.226 하드웨어 제어 성공
|
||||
2026-08-05 16:24:04.237 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 16:31:34.481 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 16:31:34.597 하드웨어 제어 성공
|
||||
2026-08-05 16:31:34.608 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 16:32:00.026 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 16:32:00.134 하드웨어 제어 성공
|
||||
2026-08-05 16:32:00.139 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:01:30.963 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 17:01:31.080 하드웨어 제어 성공
|
||||
2026-08-05 17:01:31.084 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:01:55.484 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 17:01:55.587 하드웨어 제어 성공
|
||||
2026-08-05 17:01:55.598 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:19:17.269 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 17:19:17.386 하드웨어 제어 성공
|
||||
2026-08-05 17:19:17.395 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:19:38.710 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 17:19:38.828 하드웨어 제어 성공
|
||||
2026-08-05 17:19:38.838 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:31:34.536 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 17:31:34.653 하드웨어 제어 성공
|
||||
2026-08-05 17:31:34.664 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:32:02.099 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 17:32:02.203 하드웨어 제어 성공
|
||||
2026-08-05 17:32:02.215 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:32:29.636 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 17:32:29.739 하드웨어 제어 성공
|
||||
2026-08-05 17:32:29.966 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:32:57.290 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 17:32:57.403 하드웨어 제어 성공
|
||||
2026-08-05 17:32:57.416 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:34:48.635 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-05 17:34:48.738 하드웨어 제어 성공
|
||||
2026-08-05 17:34:48.751 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-05 17:35:33.490 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-05 17:35:33.607 하드웨어 제어 성공
|
||||
2026-08-05 17:35:33.618 DB 완료 갱신 (Handshake 종료)
|
||||
@ -0,0 +1 @@
|
||||
2026-08-10 14:58:47.189 === LEDAgent 종료 ===
|
||||
147
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-18.txt
Normal file
147
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-18.txt
Normal file
@ -0,0 +1,147 @@
|
||||
2026-08-18 10:19:53.459 === LEDAgent 시작 ===
|
||||
2026-08-18 10:19:53.597 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-08-18 10:20:27.284 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 10:20:27.404 하드웨어 제어 성공
|
||||
2026-08-18 10:20:27.415 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 10:20:39.549 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 10:20:39.652 하드웨어 제어 성공
|
||||
2026-08-18 10:20:39.667 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 10:20:53.841 하드웨어 동기화 완료 (Sensor:102, R:1 Y:0 G:1)
|
||||
2026-08-18 10:21:00.968 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 10:21:01.085 하드웨어 제어 성공
|
||||
2026-08-18 10:21:01.096 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:04:23.541 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 11:04:23.657 하드웨어 제어 성공
|
||||
2026-08-18 11:04:23.684 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:04:48.041 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:04:48.144 하드웨어 제어 성공
|
||||
2026-08-18 11:04:48.155 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:38:18.391 하드웨어 동기화 완료 (Sensor:102, R:1 Y:0 G:1)
|
||||
2026-08-18 11:38:24.517 하드웨어 동기화 완료 (Sensor:102, R:0 Y:0 G:0)
|
||||
2026-08-18 11:38:38.766 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:38:38.868 하드웨어 제어 성공
|
||||
2026-08-18 11:38:38.873 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:41:01.704 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:1)
|
||||
2026-08-18 11:41:01.820 하드웨어 제어 성공
|
||||
2026-08-18 11:41:01.835 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:41:17.050 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-08-18 11:41:17.152 하드웨어 제어 성공
|
||||
2026-08-18 11:41:17.163 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:41:27.247 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-08-18 11:41:27.351 하드웨어 제어 성공
|
||||
2026-08-18 11:41:27.363 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:41:41.514 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:41:41.617 하드웨어 제어 성공
|
||||
2026-08-18 11:41:41.627 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:42:46.716 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:1 R:1)
|
||||
2026-08-18 11:42:46.819 하드웨어 제어 성공
|
||||
2026-08-18 11:42:46.822 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:42:54.968 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:0)
|
||||
2026-08-18 11:42:55.072 하드웨어 제어 성공
|
||||
2026-08-18 11:42:55.082 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:43:01.089 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:43:01.207 하드웨어 제어 성공
|
||||
2026-08-18 11:43:01.211 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:44:27.922 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 11:44:28.025 하드웨어 제어 성공
|
||||
2026-08-18 11:44:28.036 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:44:53.420 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:44:53.536 하드웨어 제어 성공
|
||||
2026-08-18 11:44:53.539 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:45:46.558 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 11:45:46.675 하드웨어 제어 성공
|
||||
2026-08-18 11:45:46.679 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 11:46:35.569 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 11:46:35.672 하드웨어 제어 성공
|
||||
2026-08-18 11:46:35.682 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 12:11:30.644 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 12:11:30.761 하드웨어 제어 성공
|
||||
2026-08-18 12:11:30.771 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 12:12:47.208 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 12:12:47.311 하드웨어 제어 성공
|
||||
2026-08-18 12:12:47.324 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 12:13:14.814 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 12:13:14.930 하드웨어 제어 성공
|
||||
2026-08-18 12:13:14.939 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 12:13:35.228 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 12:13:35.347 하드웨어 제어 성공
|
||||
2026-08-18 12:13:35.358 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 12:16:54.557 DB 폴링 에러: [FireDAC][Phys][MySQL] Lost connection to MySQL server during query
|
||||
2026-08-18 12:50:03.903 === LEDAgent 종료 ===
|
||||
2026-08-18 13:12:13.965 === LEDAgent 시작 ===
|
||||
2026-08-18 13:12:14.116 DB 연결 성공 (qst-s.iptime.org)
|
||||
2026-08-18 13:12:15.120 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 13:12:15.239 하드웨어 제어 성공
|
||||
2026-08-18 13:12:15.249 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 13:12:44.812 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 13:12:44.916 하드웨어 제어 성공
|
||||
2026-08-18 13:12:44.930 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 15:19:55.155 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 15:19:55.260 하드웨어 제어 성공
|
||||
2026-08-18 15:19:55.271 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 15:20:10.415 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 15:20:10.519 하드웨어 제어 성공
|
||||
2026-08-18 15:20:10.522 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 16:21:51.034 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 16:21:51.150 하드웨어 제어 성공
|
||||
2026-08-18 16:21:51.161 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 16:22:28.742 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-18 16:22:28.859 하드웨어 제어 성공
|
||||
2026-08-18 16:22:28.868 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 16:23:20.879 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 16:23:20.981 하드웨어 제어 성공
|
||||
2026-08-18 16:23:20.992 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 17:58:06.825 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 17:58:06.944 하드웨어 제어 성공
|
||||
2026-08-18 17:58:06.956 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:00:39.075 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 18:00:39.188 하드웨어 제어 성공
|
||||
2026-08-18 18:00:39.200 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:09:53.658 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 18:09:53.762 하드웨어 제어 성공
|
||||
2026-08-18 18:09:53.773 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:10:45.724 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 18:10:45.829 하드웨어 제어 성공
|
||||
2026-08-18 18:10:45.832 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:30:23.321 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 18:30:23.439 하드웨어 제어 성공
|
||||
2026-08-18 18:30:23.449 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:30:44.776 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 18:30:44.893 하드웨어 제어 성공
|
||||
2026-08-18 18:30:44.905 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:39:32.882 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 18:39:32.999 하드웨어 제어 성공
|
||||
2026-08-18 18:39:33.010 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:39:54.565 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 18:39:54.667 하드웨어 제어 성공
|
||||
2026-08-18 18:39:54.679 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:47:50.553 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 18:47:50.659 하드웨어 제어 성공
|
||||
2026-08-18 18:47:50.669 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 18:49:29.633 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 18:49:29.740 하드웨어 제어 성공
|
||||
2026-08-18 18:49:29.747 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 19:03:06.676 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 19:03:06.793 하드웨어 제어 성공
|
||||
2026-08-18 19:03:06.804 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 19:03:53.709 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 19:03:53.814 하드웨어 제어 성공
|
||||
2026-08-18 19:03:53.818 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 21:20:04.234 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 21:20:04.350 하드웨어 제어 성공
|
||||
2026-08-18 21:20:04.363 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 21:20:25.610 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 21:20:25.723 하드웨어 제어 성공
|
||||
2026-08-18 21:20:25.733 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 21:34:54.273 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 21:34:54.378 하드웨어 제어 성공
|
||||
2026-08-18 21:34:54.389 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 21:35:16.711 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 21:35:16.815 하드웨어 제어 성공
|
||||
2026-08-18 21:35:16.827 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 23:12:09.822 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-18 23:12:09.926 하드웨어 제어 성공
|
||||
2026-08-18 23:12:09.937 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-18 23:12:32.341 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-18 23:12:32.446 하드웨어 제어 성공
|
||||
2026-08-18 23:12:32.455 DB 완료 갱신 (Handshake 종료)
|
||||
390
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-19.txt
Normal file
390
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-19.txt
Normal file
@ -0,0 +1,390 @@
|
||||
2026-08-19 00:40:15.823 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 00:40:15.928 하드웨어 제어 성공
|
||||
2026-08-19 00:40:15.940 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 00:41:55.962 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 00:41:56.065 하드웨어 제어 성공
|
||||
2026-08-19 00:41:56.076 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 00:49:25.427 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 00:49:25.530 하드웨어 제어 성공
|
||||
2026-08-19 00:49:25.534 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 00:49:49.937 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 00:49:50.053 하드웨어 제어 성공
|
||||
2026-08-19 00:49:50.063 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:20:03.990 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 01:20:04.095 하드웨어 제어 성공
|
||||
2026-08-19 01:20:04.105 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:20:24.422 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 01:20:24.538 하드웨어 제어 성공
|
||||
2026-08-19 01:20:24.541 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:46:14.839 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 01:46:14.955 하드웨어 제어 성공
|
||||
2026-08-19 01:46:14.966 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:47:02.911 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 01:47:03.028 하드웨어 제어 성공
|
||||
2026-08-19 01:47:03.039 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:47:59.112 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 01:47:59.230 하드웨어 제어 성공
|
||||
2026-08-19 01:47:59.237 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:48:20.541 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 01:48:20.646 하드웨어 제어 성공
|
||||
2026-08-19 01:48:20.657 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:50:35.604 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 01:50:35.708 하드웨어 제어 성공
|
||||
2026-08-19 01:50:35.719 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:51:00.154 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 01:51:00.259 하드웨어 제어 성공
|
||||
2026-08-19 01:51:00.262 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:51:29.790 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 01:51:29.893 하드웨어 제어 성공
|
||||
2026-08-19 01:51:29.897 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 01:52:37.232 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 01:52:37.336 하드웨어 제어 성공
|
||||
2026-08-19 01:52:37.347 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 02:11:32.204 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 02:11:32.308 하드웨어 제어 성공
|
||||
2026-08-19 02:11:32.320 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 02:11:52.609 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 02:11:52.712 하드웨어 제어 성공
|
||||
2026-08-19 02:11:52.724 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 03:57:33.211 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 03:57:33.314 하드웨어 제어 성공
|
||||
2026-08-19 03:57:33.326 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 03:57:50.580 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 03:57:50.683 하드웨어 제어 성공
|
||||
2026-08-19 03:57:50.693 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 05:20:00.158 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 05:20:00.262 하드웨어 제어 성공
|
||||
2026-08-19 05:20:00.275 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 05:20:21.632 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 05:20:21.737 하드웨어 제어 성공
|
||||
2026-08-19 05:20:21.749 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:31:27.650 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:31:27.753 하드웨어 제어 성공
|
||||
2026-08-19 08:31:27.757 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:33:59.758 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:33:59.874 하드웨어 제어 성공
|
||||
2026-08-19 08:33:59.887 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:34:31.386 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:34:31.490 하드웨어 제어 성공
|
||||
2026-08-19 08:34:31.502 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:36:15.465 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:36:15.571 하드웨어 제어 성공
|
||||
2026-08-19 08:36:15.581 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:38:00.681 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:38:00.784 하드웨어 제어 성공
|
||||
2026-08-19 08:38:00.795 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:38:23.186 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:38:23.302 하드웨어 제어 성공
|
||||
2026-08-19 08:38:23.314 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:39:19.338 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:39:19.455 하드웨어 제어 성공
|
||||
2026-08-19 08:39:19.465 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:40:59.446 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:40:59.551 하드웨어 제어 성공
|
||||
2026-08-19 08:40:59.562 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:42:22.208 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:42:22.312 하드웨어 제어 성공
|
||||
2026-08-19 08:42:22.323 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:44:02.248 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:44:02.352 하드웨어 제어 성공
|
||||
2026-08-19 08:44:02.355 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:44:32.869 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 08:44:32.975 하드웨어 제어 성공
|
||||
2026-08-19 08:44:32.979 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 08:47:31.056 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 08:47:31.160 하드웨어 제어 성공
|
||||
2026-08-19 08:47:31.171 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:03:47.170 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 09:03:47.285 하드웨어 제어 성공
|
||||
2026-08-19 09:03:47.296 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:04:13.744 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 09:04:13.848 하드웨어 제어 성공
|
||||
2026-08-19 09:04:13.851 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:07:36.083 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 09:07:36.187 하드웨어 제어 성공
|
||||
2026-08-19 09:07:36.197 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:08:00.547 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 09:08:00.664 하드웨어 제어 성공
|
||||
2026-08-19 09:08:00.674 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:08:26.028 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 09:08:26.131 하드웨어 제어 성공
|
||||
2026-08-19 09:08:26.141 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:08:51.549 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 09:08:51.658 하드웨어 제어 성공
|
||||
2026-08-19 09:08:51.669 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:19:58.413 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 09:19:58.531 하드웨어 제어 성공
|
||||
2026-08-19 09:19:58.541 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 09:20:17.790 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 09:20:17.894 하드웨어 제어 성공
|
||||
2026-08-19 09:20:17.897 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:25:31.964 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 10:25:32.069 하드웨어 제어 성공
|
||||
2026-08-19 10:25:32.089 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:26:21.956 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:26:22.074 하드웨어 제어 성공
|
||||
2026-08-19 10:26:22.084 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:29:45.055 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:29:45.158 하드웨어 제어 성공
|
||||
2026-08-19 10:29:45.169 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:30:11.628 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:30:11.732 하드웨어 제어 성공
|
||||
2026-08-19 10:30:11.743 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:31:26.070 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:31:26.172 하드웨어 제어 성공
|
||||
2026-08-19 10:31:26.188 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:31:51.589 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:31:51.707 하드웨어 제어 성공
|
||||
2026-08-19 10:31:51.711 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:42:24.565 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:42:24.668 하드웨어 제어 성공
|
||||
2026-08-19 10:42:24.671 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:42:51.120 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:42:51.224 하드웨어 제어 성공
|
||||
2026-08-19 10:42:51.238 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:43:41.113 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:43:41.230 하드웨어 제어 성공
|
||||
2026-08-19 10:43:41.240 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:44:06.643 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 10:44:06.748 하드웨어 제어 성공
|
||||
2026-08-19 10:44:06.757 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:44:31.118 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:44:31.234 하드웨어 제어 성공
|
||||
2026-08-19 10:44:31.237 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:44:56.642 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:44:56.746 하드웨어 제어 성공
|
||||
2026-08-19 10:44:56.757 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:46:38.748 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 10:46:38.852 하드웨어 제어 성공
|
||||
2026-08-19 10:46:38.863 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:47:54.272 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 10:47:54.389 하드웨어 제어 성공
|
||||
2026-08-19 10:47:54.400 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 10:48:19.799 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 10:48:19.915 하드웨어 제어 성공
|
||||
2026-08-19 10:48:19.925 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:04:05.813 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 11:04:05.916 하드웨어 제어 성공
|
||||
2026-08-19 11:04:05.919 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:04:29.259 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 11:04:29.364 하드웨어 제어 성공
|
||||
2026-08-19 11:04:29.376 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:04:47.620 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 11:04:47.723 하드웨어 제어 성공
|
||||
2026-08-19 11:04:47.730 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:05:12.086 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 11:05:12.189 하드웨어 제어 성공
|
||||
2026-08-19 11:05:12.199 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:06:37.762 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 11:06:37.865 하드웨어 제어 성공
|
||||
2026-08-19 11:06:37.873 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:07:03.246 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 11:07:03.364 하드웨어 제어 성공
|
||||
2026-08-19 11:07:03.367 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:11:16.484 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 11:11:16.601 하드웨어 제어 성공
|
||||
2026-08-19 11:11:16.620 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:11:39.967 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 11:11:40.085 하드웨어 제어 성공
|
||||
2026-08-19 11:11:40.096 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:45:49.730 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 11:45:49.833 하드웨어 제어 성공
|
||||
2026-08-19 11:45:49.843 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 11:46:38.688 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 11:46:38.806 하드웨어 제어 성공
|
||||
2026-08-19 11:46:38.816 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:11:06.308 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 12:11:06.425 하드웨어 제어 성공
|
||||
2026-08-19 12:11:06.438 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:13:07.826 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 12:13:07.929 하드웨어 제어 성공
|
||||
2026-08-19 12:13:07.932 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:21:38.466 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 12:21:38.570 하드웨어 제어 성공
|
||||
2026-08-19 12:21:38.576 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:22:03.067 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 12:22:03.183 하드웨어 제어 성공
|
||||
2026-08-19 12:22:03.186 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:22:29.667 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 12:22:29.784 하드웨어 제어 성공
|
||||
2026-08-19 12:22:29.795 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:23:44.179 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 12:23:44.297 하드웨어 제어 성공
|
||||
2026-08-19 12:23:44.309 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:52:14.714 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 12:52:14.831 하드웨어 제어 성공
|
||||
2026-08-19 12:52:14.834 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 12:52:40.259 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 12:52:40.363 하드웨어 제어 성공
|
||||
2026-08-19 12:52:40.374 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:00:41.344 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:00:41.458 하드웨어 제어 성공
|
||||
2026-08-19 13:00:41.481 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:01:05.894 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:01:05.998 하드웨어 제어 성공
|
||||
2026-08-19 13:01:06.007 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:04:53.759 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:04:53.863 하드웨어 제어 성공
|
||||
2026-08-19 13:04:53.867 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:05:19.259 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:05:19.364 하드웨어 제어 성공
|
||||
2026-08-19 13:05:19.374 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:07:01.421 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:07:01.525 하드웨어 제어 성공
|
||||
2026-08-19 13:07:01.535 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:07:25.907 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:07:26.012 하드웨어 제어 성공
|
||||
2026-08-19 13:07:26.024 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:13:20.139 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:13:20.257 하드웨어 제어 성공
|
||||
2026-08-19 13:13:20.273 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:13:45.923 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:13:46.026 하드웨어 제어 성공
|
||||
2026-08-19 13:13:46.029 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:21:46.884 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:21:46.988 하드웨어 제어 성공
|
||||
2026-08-19 13:21:46.995 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:22:12.331 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:22:12.436 하드웨어 제어 성공
|
||||
2026-08-19 13:22:12.446 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:26:50.635 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:26:50.738 하드웨어 제어 성공
|
||||
2026-08-19 13:26:50.741 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:27:40.657 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:27:40.774 하드웨어 제어 성공
|
||||
2026-08-19 13:27:40.785 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:30:12.827 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:30:12.930 하드웨어 제어 성공
|
||||
2026-08-19 13:30:12.942 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:30:38.336 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:30:38.440 하드웨어 제어 성공
|
||||
2026-08-19 13:30:38.451 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:31:03.827 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:31:03.931 하드웨어 제어 성공
|
||||
2026-08-19 13:31:03.941 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:31:53.864 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:31:53.980 하드웨어 제어 성공
|
||||
2026-08-19 13:31:53.991 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:32:19.294 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 13:32:19.398 하드웨어 제어 성공
|
||||
2026-08-19 13:32:19.408 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:33:34.962 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:33:35.066 하드웨어 제어 성공
|
||||
2026-08-19 13:33:35.079 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:34:00.456 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 13:34:00.573 하드웨어 제어 성공
|
||||
2026-08-19 13:34:00.579 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:35:41.546 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:35:41.649 하드웨어 제어 성공
|
||||
2026-08-19 13:35:41.661 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:36:58.130 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:36:58.234 하드웨어 제어 성공
|
||||
2026-08-19 13:36:58.244 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:57:12.336 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 13:57:12.441 하드웨어 제어 성공
|
||||
2026-08-19 13:57:12.453 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 13:57:36.815 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 13:57:36.918 하드웨어 제어 성공
|
||||
2026-08-19 13:57:36.928 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 14:36:33.046 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 14:36:33.163 하드웨어 제어 성공
|
||||
2026-08-19 14:36:33.174 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 14:37:24.159 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 14:37:24.262 하드웨어 제어 성공
|
||||
2026-08-19 14:37:24.277 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:01:50.586 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 15:01:50.704 하드웨어 제어 성공
|
||||
2026-08-19 15:01:50.713 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:02:38.581 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:02:38.699 하드웨어 제어 성공
|
||||
2026-08-19 15:02:38.711 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:13:54.427 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 15:13:54.531 하드웨어 제어 성공
|
||||
2026-08-19 15:13:54.534 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:14:22.018 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:14:22.136 하드웨어 제어 성공
|
||||
2026-08-19 15:14:22.161 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:20:11.169 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 15:20:11.273 하드웨어 제어 성공
|
||||
2026-08-19 15:20:11.283 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:20:32.582 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:20:32.700 하드웨어 제어 성공
|
||||
2026-08-19 15:20:32.714 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:36:38.399 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 15:36:38.502 하드웨어 제어 성공
|
||||
2026-08-19 15:36:38.517 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:37:04.932 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:37:05.041 하드웨어 제어 성공
|
||||
2026-08-19 15:37:05.054 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:42:45.044 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 15:42:45.148 하드웨어 제어 성공
|
||||
2026-08-19 15:42:45.163 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:46:15.425 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 15:46:15.543 하드웨어 제어 성공
|
||||
2026-08-19 15:46:15.554 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:49:44.749 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:49:44.864 하드웨어 제어 성공
|
||||
2026-08-19 15:49:44.874 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:50:12.416 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 15:50:12.521 하드웨어 제어 성공
|
||||
2026-08-19 15:50:12.531 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 15:50:37.924 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 15:50:38.042 하드웨어 제어 성공
|
||||
2026-08-19 15:50:38.059 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 16:10:42.123 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 16:10:42.228 하드웨어 제어 성공
|
||||
2026-08-19 16:10:42.239 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 16:11:08.867 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 16:11:08.972 하드웨어 제어 성공
|
||||
2026-08-19 16:11:08.984 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 16:11:34.340 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 16:11:34.445 하드웨어 제어 성공
|
||||
2026-08-19 16:11:34.449 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 16:23:47.495 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-19 16:23:47.613 하드웨어 제어 성공
|
||||
2026-08-19 16:23:47.615 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 16:24:13.994 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 16:24:14.100 하드웨어 제어 성공
|
||||
2026-08-19 16:24:14.115 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:32:11.212 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 21:32:11.329 하드웨어 제어 성공
|
||||
2026-08-19 21:32:11.346 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:32:28.556 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 21:32:28.659 하드웨어 제어 성공
|
||||
2026-08-19 21:32:28.670 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:37:50.239 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 21:37:50.344 하드웨어 제어 성공
|
||||
2026-08-19 21:37:50.348 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:39:03.868 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 21:39:03.975 하드웨어 제어 성공
|
||||
2026-08-19 21:39:03.985 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:40:02.131 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 21:40:02.235 하드웨어 제어 성공
|
||||
2026-08-19 21:40:02.246 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 21:40:26.646 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 21:40:26.763 하드웨어 제어 성공
|
||||
2026-08-19 21:40:26.766 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:13:15.428 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 23:13:15.532 하드웨어 제어 성공
|
||||
2026-08-19 23:13:15.547 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:14:54.498 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 23:14:54.600 하드웨어 제어 성공
|
||||
2026-08-19 23:14:54.609 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:23:43.668 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 23:23:43.774 하드웨어 제어 성공
|
||||
2026-08-19 23:23:43.780 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:24:03.024 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 23:24:03.129 하드웨어 제어 성공
|
||||
2026-08-19 23:24:03.138 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:28:29.632 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 23:28:29.738 하드웨어 제어 성공
|
||||
2026-08-19 23:28:29.746 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:28:51.118 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 23:28:51.222 하드웨어 제어 성공
|
||||
2026-08-19 23:28:51.232 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:36:46.170 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-19 23:36:46.273 하드웨어 제어 성공
|
||||
2026-08-19 23:36:46.284 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-19 23:37:07.620 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-19 23:37:07.735 하드웨어 제어 성공
|
||||
2026-08-19 23:37:07.738 DB 완료 갱신 (Handshake 종료)
|
||||
480
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-20.txt
Normal file
480
agents/delphi_led_agent/Win32/Debug/Logs/LEDAgent_2026-08-20.txt
Normal file
@ -0,0 +1,480 @@
|
||||
2026-08-20 00:27:44.745 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 00:27:44.861 하드웨어 제어 성공
|
||||
2026-08-20 00:27:44.865 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:28:31.818 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 00:28:31.934 하드웨어 제어 성공
|
||||
2026-08-20 00:28:31.946 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:43:25.953 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 00:43:26.072 하드웨어 제어 성공
|
||||
2026-08-20 00:43:26.084 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:43:47.389 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 00:43:47.494 하드웨어 제어 성공
|
||||
2026-08-20 00:43:47.507 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:44:20.114 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 00:44:20.229 하드웨어 제어 성공
|
||||
2026-08-20 00:44:20.240 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:44:39.477 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 00:44:39.581 하드웨어 제어 성공
|
||||
2026-08-20 00:44:39.594 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:57:22.932 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 00:57:23.036 하드웨어 제어 성공
|
||||
2026-08-20 00:57:23.047 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 00:58:09.960 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 00:58:10.079 하드웨어 제어 성공
|
||||
2026-08-20 00:58:10.090 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:03:28.790 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 01:03:28.907 하드웨어 제어 성공
|
||||
2026-08-20 01:03:28.918 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:03:49.197 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 01:03:49.304 하드웨어 제어 성공
|
||||
2026-08-20 01:03:49.316 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:10:26.544 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 01:10:26.659 하드웨어 제어 성공
|
||||
2026-08-20 01:10:26.674 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:10:54.162 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 01:10:54.281 하드웨어 제어 성공
|
||||
2026-08-20 01:10:54.292 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:36:35.014 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 01:36:35.131 하드웨어 제어 성공
|
||||
2026-08-20 01:36:35.142 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:37:21.998 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 01:37:22.115 하드웨어 제어 성공
|
||||
2026-08-20 01:37:22.126 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:43:07.209 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 01:43:07.324 하드웨어 제어 성공
|
||||
2026-08-20 01:43:07.333 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 01:43:29.705 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 01:43:29.808 하드웨어 제어 성공
|
||||
2026-08-20 01:43:29.818 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 02:13:11.320 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 02:13:11.423 하드웨어 제어 성공
|
||||
2026-08-20 02:13:11.427 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 02:13:58.284 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 02:13:58.400 하드웨어 제어 성공
|
||||
2026-08-20 02:13:58.412 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 02:16:39.710 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 02:16:39.827 하드웨어 제어 성공
|
||||
2026-08-20 02:16:39.831 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 02:20:57.268 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 02:20:57.386 하드웨어 제어 성공
|
||||
2026-08-20 02:20:57.396 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 04:00:48.526 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 04:00:48.641 하드웨어 제어 성공
|
||||
2026-08-20 04:00:48.645 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 04:01:09.937 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 04:01:10.041 하드웨어 제어 성공
|
||||
2026-08-20 04:01:10.052 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 04:06:01.517 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 04:06:01.629 하드웨어 제어 성공
|
||||
2026-08-20 04:06:01.635 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 04:06:26.263 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 04:06:26.376 하드웨어 제어 성공
|
||||
2026-08-20 04:06:26.381 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 07:24:14.714 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 07:24:14.820 하드웨어 제어 성공
|
||||
2026-08-20 07:24:14.833 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 07:28:57.619 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 07:28:57.736 하드웨어 제어 성공
|
||||
2026-08-20 07:28:57.747 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 08:57:14.668 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 08:57:14.786 하드웨어 제어 성공
|
||||
2026-08-20 08:57:14.797 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 08:57:40.257 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 08:57:40.374 하드웨어 제어 성공
|
||||
2026-08-20 08:57:40.385 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 08:58:05.733 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 08:58:05.840 하드웨어 제어 성공
|
||||
2026-08-20 08:58:05.850 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 09:26:56.582 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 09:26:56.699 하드웨어 제어 성공
|
||||
2026-08-20 09:26:56.710 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 09:27:42.526 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 09:27:42.644 하드웨어 제어 성공
|
||||
2026-08-20 09:27:42.648 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 09:57:44.350 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 09:57:44.453 하드웨어 제어 성공
|
||||
2026-08-20 09:57:44.464 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 09:58:09.940 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 09:58:10.059 하드웨어 제어 성공
|
||||
2026-08-20 09:58:10.071 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:01:49.449 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 10:01:49.554 하드웨어 제어 성공
|
||||
2026-08-20 10:01:49.557 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:50:37.976 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 10:50:38.079 하드웨어 제어 성공
|
||||
2026-08-20 10:50:38.093 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:52:00.663 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 10:52:00.766 하드웨어 제어 성공
|
||||
2026-08-20 10:52:00.769 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:52:23.340 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 10:52:23.444 하드웨어 제어 성공
|
||||
2026-08-20 10:52:23.454 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:52:52.898 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 10:52:53.015 하드웨어 제어 성공
|
||||
2026-08-20 10:52:53.025 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:54:10.476 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 10:54:10.594 하드웨어 제어 성공
|
||||
2026-08-20 10:54:10.596 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:55:30.116 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 10:55:30.219 하드웨어 제어 성공
|
||||
2026-08-20 10:55:30.229 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:56:43.527 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 10:56:43.630 하드웨어 제어 성공
|
||||
2026-08-20 10:56:43.641 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 10:57:40.659 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 10:57:40.763 하드웨어 제어 성공
|
||||
2026-08-20 10:57:40.774 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:00:39.410 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:00:39.515 하드웨어 제어 성공
|
||||
2026-08-20 11:00:39.519 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:07:16.419 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:07:16.524 하드웨어 제어 성공
|
||||
2026-08-20 11:07:16.537 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:07:38.906 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:07:39.023 하드웨어 제어 성공
|
||||
2026-08-20 11:07:39.035 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:08:09.530 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:08:09.633 하드웨어 제어 성공
|
||||
2026-08-20 11:08:09.637 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:15:28.413 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:15:28.518 하드웨어 제어 성공
|
||||
2026-08-20 11:15:28.529 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:16:25.613 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:16:25.730 하드웨어 제어 성공
|
||||
2026-08-20 11:16:25.741 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:16:46.984 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:16:47.089 하드웨어 제어 성공
|
||||
2026-08-20 11:16:47.097 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:22:57.763 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:22:57.866 하드웨어 제어 성공
|
||||
2026-08-20 11:22:57.869 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:26:00.385 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:26:00.490 하드웨어 제어 성공
|
||||
2026-08-20 11:26:00.501 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:26:27.197 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:26:27.304 하드웨어 제어 성공
|
||||
2026-08-20 11:26:27.315 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:41:39.112 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:41:39.229 하드웨어 제어 성공
|
||||
2026-08-20 11:41:39.240 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:42:35.261 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:42:35.378 하드웨어 제어 성공
|
||||
2026-08-20 11:42:35.390 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:42:56.648 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:42:56.765 하드웨어 제어 성공
|
||||
2026-08-20 11:42:56.768 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:46:04.486 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:46:04.589 하드웨어 제어 성공
|
||||
2026-08-20 11:46:04.592 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:47:44.484 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:47:44.603 하드웨어 제어 성공
|
||||
2026-08-20 11:47:44.606 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:48:15.113 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:48:15.216 하드웨어 제어 성공
|
||||
2026-08-20 11:48:15.227 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:48:36.594 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:48:36.699 하드웨어 제어 성공
|
||||
2026-08-20 11:48:36.710 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:50:01.325 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:50:01.429 하드웨어 제어 성공
|
||||
2026-08-20 11:50:01.433 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:50:20.746 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:50:20.849 하드웨어 제어 성공
|
||||
2026-08-20 11:50:20.860 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:53:03.209 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:53:03.312 하드웨어 제어 성공
|
||||
2026-08-20 11:53:03.323 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:53:24.648 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:53:24.766 하드웨어 제어 성공
|
||||
2026-08-20 11:53:24.778 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:57:51.115 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:57:51.232 하드웨어 제어 성공
|
||||
2026-08-20 11:57:51.243 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:58:11.585 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 11:58:11.702 하드웨어 제어 성공
|
||||
2026-08-20 11:58:11.706 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 11:59:35.229 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 11:59:35.348 하드웨어 제어 성공
|
||||
2026-08-20 11:59:35.352 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:15:12.490 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:15:12.593 하드웨어 제어 성공
|
||||
2026-08-20 12:15:12.603 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:16:35.211 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:16:35.315 하드웨어 제어 성공
|
||||
2026-08-20 12:16:35.320 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:16:56.604 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:16:56.709 하드웨어 제어 성공
|
||||
2026-08-20 12:16:56.720 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:21:23.078 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:21:23.193 하드웨어 제어 성공
|
||||
2026-08-20 12:21:23.204 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:22:41.649 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:22:41.753 하드웨어 제어 성공
|
||||
2026-08-20 12:22:41.766 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:23:08.163 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:23:08.269 하드웨어 제어 성공
|
||||
2026-08-20 12:23:08.272 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:23:28.544 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:23:28.647 하드웨어 제어 성공
|
||||
2026-08-20 12:23:28.658 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:39:16.172 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:39:16.275 하드웨어 제어 성공
|
||||
2026-08-20 12:39:16.285 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:39:38.642 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:39:38.757 하드웨어 제어 성공
|
||||
2026-08-20 12:39:38.770 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:40:09.260 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:40:09.363 하드웨어 제어 성공
|
||||
2026-08-20 12:40:09.374 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:50:31.003 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 12:50:31.107 하드웨어 제어 성공
|
||||
2026-08-20 12:50:31.119 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 12:59:18.906 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 12:59:19.010 하드웨어 제어 성공
|
||||
2026-08-20 12:59:19.014 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 13:00:34.463 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 13:00:34.570 하드웨어 제어 성공
|
||||
2026-08-20 13:00:34.580 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:08:54.319 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 14:08:54.436 하드웨어 제어 성공
|
||||
2026-08-20 14:08:54.447 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:09:47.370 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:09:47.474 하드웨어 제어 성공
|
||||
2026-08-20 14:09:47.478 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:20:46.868 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:20:46.985 하드웨어 제어 성공
|
||||
2026-08-20 14:20:46.989 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:21:09.362 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:21:09.467 하드웨어 제어 성공
|
||||
2026-08-20 14:21:09.471 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:21:33.855 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:21:33.973 하드웨어 제어 성공
|
||||
2026-08-20 14:21:33.984 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:22:00.334 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:22:00.451 하드웨어 제어 성공
|
||||
2026-08-20 14:22:00.455 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:22:26.869 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:22:26.986 하드웨어 제어 성공
|
||||
2026-08-20 14:22:26.996 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:22:53.484 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:22:53.597 하드웨어 제어 성공
|
||||
2026-08-20 14:22:53.600 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:28:06.985 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:28:07.104 하드웨어 제어 성공
|
||||
2026-08-20 14:28:07.115 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:28:33.514 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:28:33.619 하드웨어 제어 성공
|
||||
2026-08-20 14:28:33.645 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:32:54.832 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:32:54.949 하드웨어 제어 성공
|
||||
2026-08-20 14:32:54.959 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:33:21.354 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:33:21.469 하드웨어 제어 성공
|
||||
2026-08-20 14:33:21.481 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:37:17.387 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:37:17.490 하드웨어 제어 성공
|
||||
2026-08-20 14:37:17.501 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:37:47.984 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:37:48.101 하드웨어 제어 성공
|
||||
2026-08-20 14:37:48.111 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:38:09.329 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:38:09.434 하드웨어 제어 성공
|
||||
2026-08-20 14:38:09.437 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:38:36.905 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:38:37.008 하드웨어 제어 성공
|
||||
2026-08-20 14:38:37.022 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:39:01.446 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:39:01.549 하드웨어 제어 성공
|
||||
2026-08-20 14:39:01.559 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:39:54.471 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:39:54.575 하드웨어 제어 성공
|
||||
2026-08-20 14:39:54.586 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:40:29.237 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 14:40:29.342 하드웨어 제어 성공
|
||||
2026-08-20 14:40:29.345 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:44:42.349 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 14:44:42.466 하드웨어 제어 성공
|
||||
2026-08-20 14:44:42.477 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:45:08.924 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 14:45:09.042 하드웨어 제어 성공
|
||||
2026-08-20 14:45:09.045 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:45:34.444 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:45:34.560 하드웨어 제어 성공
|
||||
2026-08-20 14:45:34.570 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:47:02.255 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 14:47:02.358 하드웨어 제어 성공
|
||||
2026-08-20 14:47:02.369 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 14:56:07.277 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 14:56:07.395 하드웨어 제어 성공
|
||||
2026-08-20 14:56:07.405 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:06:04.575 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:06:04.692 하드웨어 제어 성공
|
||||
2026-08-20 15:06:04.696 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:06:31.084 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:06:31.201 하드웨어 제어 성공
|
||||
2026-08-20 15:06:31.217 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:15:23.006 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:15:23.110 하드웨어 제어 성공
|
||||
2026-08-20 15:15:23.121 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:15:47.512 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:15:47.615 하드웨어 제어 성공
|
||||
2026-08-20 15:15:47.626 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:24:33.228 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:24:33.332 하드웨어 제어 성공
|
||||
2026-08-20 15:24:33.343 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:28:50.458 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:28:50.574 하드웨어 제어 성공
|
||||
2026-08-20 15:28:50.584 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:36:35.787 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 15:36:35.891 하드웨어 제어 성공
|
||||
2026-08-20 15:36:35.901 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:37:02.303 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:37:02.418 하드웨어 제어 성공
|
||||
2026-08-20 15:37:02.430 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:40:31.623 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:40:31.742 하드웨어 제어 성공
|
||||
2026-08-20 15:40:31.747 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:40:59.207 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:40:59.312 하드웨어 제어 성공
|
||||
2026-08-20 15:40:59.316 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:42:16.809 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 15:42:16.914 하드웨어 제어 성공
|
||||
2026-08-20 15:42:16.946 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:42:43.374 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:42:43.478 하드웨어 제어 성공
|
||||
2026-08-20 15:42:43.488 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:43:34.466 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 15:43:34.569 하드웨어 제어 성공
|
||||
2026-08-20 15:43:34.578 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:44:00.950 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:44:01.057 하드웨어 제어 성공
|
||||
2026-08-20 15:44:01.060 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:45:47.211 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 15:45:47.330 하드웨어 제어 성공
|
||||
2026-08-20 15:45:47.341 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:46:11.696 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:46:11.801 하드웨어 제어 성공
|
||||
2026-08-20 15:46:11.812 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:47:13.949 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:47:14.066 하드웨어 제어 성공
|
||||
2026-08-20 15:47:14.076 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:48:05.997 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:48:06.114 하드웨어 제어 성공
|
||||
2026-08-20 15:48:06.124 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:48:32.594 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:48:32.698 하드웨어 제어 성공
|
||||
2026-08-20 15:48:32.710 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:48:54.014 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:48:54.132 하드웨어 제어 성공
|
||||
2026-08-20 15:48:54.143 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:50:17.779 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:50:17.882 하드웨어 제어 성공
|
||||
2026-08-20 15:50:17.893 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:51:05.788 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:51:05.906 하드웨어 제어 성공
|
||||
2026-08-20 15:51:05.909 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:52:28.574 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:52:28.692 하드웨어 제어 성공
|
||||
2026-08-20 15:52:28.704 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:58:25.963 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 15:58:26.079 하드웨어 제어 성공
|
||||
2026-08-20 15:58:26.083 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 15:58:51.734 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 15:58:51.838 하드웨어 제어 성공
|
||||
2026-08-20 15:58:51.842 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:01:02.476 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 16:01:02.580 하드웨어 제어 성공
|
||||
2026-08-20 16:01:02.583 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:01:29.034 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:01:29.139 하드웨어 제어 성공
|
||||
2026-08-20 16:01:29.143 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:01:55.658 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 16:01:55.762 하드웨어 제어 성공
|
||||
2026-08-20 16:01:55.771 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:02:21.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:02:21.343 하드웨어 제어 성공
|
||||
2026-08-20 16:02:21.354 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:06:47.689 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 16:06:47.794 하드웨어 제어 성공
|
||||
2026-08-20 16:06:47.805 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:07:35.684 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:07:35.789 하드웨어 제어 성공
|
||||
2026-08-20 16:07:35.793 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:08:37.025 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:08:37.129 하드웨어 제어 성공
|
||||
2026-08-20 16:08:37.134 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:14:39.375 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:14:39.488 하드웨어 제어 성공
|
||||
2026-08-20 16:14:39.499 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:16:02.014 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:16:02.129 하드웨어 제어 성공
|
||||
2026-08-20 16:16:02.133 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:16:47.909 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:16:48.011 하드웨어 제어 성공
|
||||
2026-08-20 16:16:48.021 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:25:28.344 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 16:25:28.460 하드웨어 제어 성공
|
||||
2026-08-20 16:25:28.475 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:25:54.915 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:25:55.019 하드웨어 제어 성공
|
||||
2026-08-20 16:25:55.030 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:29:49.736 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-20 16:29:49.840 하드웨어 제어 성공
|
||||
2026-08-20 16:29:49.850 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:30:42.851 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:30:42.967 하드웨어 제어 성공
|
||||
2026-08-20 16:30:42.978 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:42:02.929 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:42:03.033 하드웨어 제어 성공
|
||||
2026-08-20 16:42:03.043 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:42:28.471 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 16:42:28.585 하드웨어 제어 성공
|
||||
2026-08-20 16:42:28.602 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 16:58:45.474 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 16:58:45.577 하드웨어 제어 성공
|
||||
2026-08-20 16:58:45.581 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:20:31.403 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 17:20:31.516 하드웨어 제어 성공
|
||||
2026-08-20 17:20:31.528 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:24:55.775 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 17:24:55.892 하드웨어 제어 성공
|
||||
2026-08-20 17:24:55.903 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:25:21.242 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 17:25:21.359 하드웨어 제어 성공
|
||||
2026-08-20 17:25:21.363 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:37:34.572 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 17:37:34.690 하드웨어 제어 성공
|
||||
2026-08-20 17:37:34.702 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:38:26.727 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 17:38:26.841 하드웨어 제어 성공
|
||||
2026-08-20 17:38:26.856 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:38:52.291 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 17:38:52.393 하드웨어 제어 성공
|
||||
2026-08-20 17:38:52.407 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:41:24.472 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 17:41:24.589 하드웨어 제어 성공
|
||||
2026-08-20 17:41:24.602 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 17:58:02.906 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 17:58:03.010 하드웨어 제어 성공
|
||||
2026-08-20 17:58:03.022 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 18:18:29.236 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 18:18:29.354 하드웨어 제어 성공
|
||||
2026-08-20 18:18:29.366 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:17:27.535 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 20:17:27.640 하드웨어 제어 성공
|
||||
2026-08-20 20:17:27.651 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:17:48.017 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 20:17:48.122 하드웨어 제어 성공
|
||||
2026-08-20 20:17:48.134 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:18:45.133 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 20:18:45.246 하드웨어 제어 성공
|
||||
2026-08-20 20:18:45.249 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:19:10.641 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 20:19:10.745 하드웨어 제어 성공
|
||||
2026-08-20 20:19:10.751 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:19:38.233 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-20 20:19:38.350 하드웨어 제어 성공
|
||||
2026-08-20 20:19:38.360 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-20 20:20:52.774 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-20 20:20:52.891 하드웨어 제어 성공
|
||||
2026-08-20 20:20:52.902 DB 완료 갱신 (Handshake 종료)
|
||||
@ -0,0 +1,43 @@
|
||||
2026-08-21 00:41:02.467 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 00:41:02.570 하드웨어 제어 성공
|
||||
2026-08-21 00:41:02.581 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 00:41:22.901 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 00:41:23.018 하드웨어 제어 성공
|
||||
2026-08-21 00:41:23.030 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 03:06:32.821 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 03:06:32.926 하드웨어 제어 성공
|
||||
2026-08-21 03:06:32.937 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 03:09:05.970 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 03:09:06.089 하드웨어 제어 성공
|
||||
2026-08-21 03:09:06.100 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 05:52:06.483 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 05:52:06.601 하드웨어 제어 성공
|
||||
2026-08-21 05:52:06.612 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 05:52:29.958 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 05:52:30.061 하드웨어 제어 성공
|
||||
2026-08-21 05:52:30.073 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 05:54:42.788 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 05:54:42.904 하드웨어 제어 성공
|
||||
2026-08-21 05:54:42.917 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 05:55:08.318 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 05:55:08.424 하드웨어 제어 성공
|
||||
2026-08-21 05:55:08.436 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 06:53:32.237 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 06:53:32.354 하드웨어 제어 성공
|
||||
2026-08-21 06:53:32.360 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 06:53:53.783 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 06:53:53.900 하드웨어 제어 성공
|
||||
2026-08-21 06:53:53.911 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 09:13:35.177 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:0 R:1)
|
||||
2026-08-21 09:13:35.295 하드웨어 제어 성공
|
||||
2026-08-21 09:13:35.307 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 09:14:00.729 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 09:14:00.832 하드웨어 제어 성공
|
||||
2026-08-21 09:14:00.844 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 09:17:49.470 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:0 Y:1 R:0)
|
||||
2026-08-21 09:17:49.581 하드웨어 제어 성공
|
||||
2026-08-21 09:17:49.593 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 09:18:39.520 DB 명령 감지 - Sensor:102, IP:192.168.200.114 (Target: G:1 Y:0 R:0)
|
||||
2026-08-21 09:18:39.635 하드웨어 제어 성공
|
||||
2026-08-21 09:18:39.662 DB 완료 갱신 (Handshake 종료)
|
||||
2026-08-21 10:09:40.894 === LEDAgent 종료 ===
|
||||
BIN
agents/delphi_led_agent/Win32/Debug/Qtvc_dll.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/Qtvc_dll.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/U_DM.dcu
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/U_DM.dcu
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/libeay32.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/libeay32.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/libiconv-2.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/libiconv-2.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/libintl-8.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/libintl-8.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/libmysql.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/libmysql.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/libpq.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/libpq.dll
Normal file
Binary file not shown.
6
agents/delphi_led_agent/Win32/Debug/settings.ini
Normal file
6
agents/delphi_led_agent/Win32/Debug/settings.ini
Normal file
@ -0,0 +1,6 @@
|
||||
[DB]
|
||||
Host=qst-s.iptime.org
|
||||
Port=33063
|
||||
User=mmcl_user
|
||||
Password=qsentech!1233
|
||||
Database=mmcl_db
|
||||
BIN
agents/delphi_led_agent/Win32/Debug/ssleay32.dll
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/ssleay32.dll
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/uLogManagerThread.dcu
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/uLogManagerThread.dcu
Normal file
Binary file not shown.
BIN
agents/delphi_led_agent/Win32/Debug/uMain.dcu
Normal file
BIN
agents/delphi_led_agent/Win32/Debug/uMain.dcu
Normal file
Binary file not shown.
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~1~
Normal file
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~1~
Normal file
@ -0,0 +1,14 @@
|
||||
program LEDAgent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {Form1};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
||||
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~2~
Normal file
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~2~
Normal file
@ -0,0 +1,14 @@
|
||||
program LEDAgent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {fMain};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TfMain, fMain);
|
||||
Application.Run;
|
||||
end.
|
||||
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~3~
Normal file
14
agents/delphi_led_agent/__history/LEDAgent.dpr.~3~
Normal file
@ -0,0 +1,14 @@
|
||||
program LEDAgent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {frmMain};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TfrmMain, frmMain);
|
||||
Application.Run;
|
||||
end.
|
||||
17
agents/delphi_led_agent/__history/LEDAgent.dpr.~4~
Normal file
17
agents/delphi_led_agent/__history/LEDAgent.dpr.~4~
Normal file
@ -0,0 +1,17 @@
|
||||
program LEDAgent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {frmMain},
|
||||
U_DM in 'U_DM.pas' {DM: TDataModule},
|
||||
uLogManagerThread in 'uLogManagerThread.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TDM, DM);
|
||||
Application.CreateForm(TfrmMain, frmMain);
|
||||
Application.Run;
|
||||
end.
|
||||
429
agents/delphi_led_agent/__history/MainForm.dfm.~1~
Normal file
429
agents/delphi_led_agent/__history/MainForm.dfm.~1~
Normal file
@ -0,0 +1,429 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]v1.2'
|
||||
ClientHeight = 450
|
||||
ClientWidth = 720
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 38
|
||||
Height = 13
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
427
agents/delphi_led_agent/__history/MainForm.dfm.~2~
Normal file
427
agents/delphi_led_agent/__history/MainForm.dfm.~2~
Normal file
@ -0,0 +1,427 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]v1.2'
|
||||
ClientHeight = 450
|
||||
ClientWidth = 720
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 33
|
||||
Height = 13
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
442
agents/delphi_led_agent/__history/MainForm.dfm.~3~
Normal file
442
agents/delphi_led_agent/__history/MainForm.dfm.~3~
Normal file
@ -0,0 +1,442 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]v1.2'
|
||||
ClientHeight = 450
|
||||
ClientWidth = 720
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 33
|
||||
Height = 13
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4367854
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 21
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 13
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
560
agents/delphi_led_agent/__history/uMain.dfm.~10~
Normal file
560
agents/delphi_led_agent/__history/uMain.dfm.~10~
Normal file
@ -0,0 +1,560 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 665
|
||||
ClientWidth = 850
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 14
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 0
|
||||
Top = 65
|
||||
Width = 409
|
||||
Height = 600
|
||||
Align = alLeft
|
||||
Caption = '[ TEST ] Lamp Control'
|
||||
TabOrder = 0
|
||||
ExplicitHeight = 694
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 2
|
||||
Top = 78
|
||||
Width = 405
|
||||
Height = 206
|
||||
Align = alTop
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 0
|
||||
ExplicitTop = 400
|
||||
object btnSoundOff: TButton
|
||||
Left = 18
|
||||
Top = 24
|
||||
Width = 367
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 18
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 18
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 18
|
||||
Top = 160
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 216
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 216
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 405
|
||||
Height = 62
|
||||
Align = alTop
|
||||
Caption = 'TCP Setting'
|
||||
TabOrder = 1
|
||||
object Label1: TLabel
|
||||
Left = 20
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 262
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 72
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 195
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 1
|
||||
Text = '114'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 154
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 113
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtPort: TEdit
|
||||
Left = 314
|
||||
Top = 25
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 2
|
||||
Top = 284
|
||||
Width = 405
|
||||
Height = 314
|
||||
Align = alClient
|
||||
Caption = 'LED Control'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 195
|
||||
ExplicitTop = 102
|
||||
ExplicitWidth = 885
|
||||
ExplicitHeight = 662
|
||||
object Label7: TLabel
|
||||
Left = 24
|
||||
Top = 263
|
||||
Width = 58
|
||||
Height = 25
|
||||
Caption = 'Silver'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 205
|
||||
Width = 45
|
||||
Height = 25
|
||||
Caption = 'Blue'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 147
|
||||
Width = 62
|
||||
Height = 25
|
||||
Caption = 'Green'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 89
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Yellow'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 34
|
||||
Width = 44
|
||||
Height = 25
|
||||
Caption = 'RED'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 209
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 305
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 209
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 113
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 305
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 209
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 113
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 305
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 209
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 113
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 305
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 209
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 113
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 305
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOn: TButton
|
||||
Left = 113
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 409
|
||||
Top = 65
|
||||
Width = 441
|
||||
Height = 600
|
||||
Align = alClient
|
||||
Caption = '[ Status ]'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 534
|
||||
ExplicitTop = 165
|
||||
ExplicitWidth = 516
|
||||
ExplicitHeight = 304
|
||||
object lbStatus: TListBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 437
|
||||
Height = 582
|
||||
Align = alClient
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 16
|
||||
ExplicitTop = 24
|
||||
ExplicitWidth = 480
|
||||
ExplicitHeight = 50
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 850
|
||||
Height = 65
|
||||
Align = alTop
|
||||
BevelKind = bkFlat
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
ExplicitWidth = 1106
|
||||
DesignSize = (
|
||||
846
|
||||
61)
|
||||
object btnStatRead: TButton
|
||||
Left = 449
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 0
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 582
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Reset'
|
||||
TabOrder = 1
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 716
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 2
|
||||
OnClick = btnExitClick
|
||||
ExplicitLeft = 972
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 559
|
||||
Top = 306
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
563
agents/delphi_led_agent/__history/uMain.dfm.~11~
Normal file
563
agents/delphi_led_agent/__history/uMain.dfm.~11~
Normal file
@ -0,0 +1,563 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 712
|
||||
ClientWidth = 850
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 14
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 0
|
||||
Top = 65
|
||||
Width = 409
|
||||
Height = 647
|
||||
Align = alLeft
|
||||
Caption = '[ TEST ] Lamp Control'
|
||||
TabOrder = 0
|
||||
ExplicitHeight = 694
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 2
|
||||
Top = 121
|
||||
Width = 405
|
||||
Height = 208
|
||||
Align = alTop
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 0
|
||||
object btnSoundOff: TButton
|
||||
Left = 18
|
||||
Top = 24
|
||||
Width = 367
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 18
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 18
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 18
|
||||
Top = 160
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 216
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 216
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 405
|
||||
Height = 105
|
||||
Align = alTop
|
||||
Caption = 'TCP Setting'
|
||||
TabOrder = 1
|
||||
DesignSize = (
|
||||
405
|
||||
105)
|
||||
object Label1: TLabel
|
||||
Left = 20
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 262
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 72
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 195
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 1
|
||||
Text = '114'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 154
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 113
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtPort: TEdit
|
||||
Left = 314
|
||||
Top = 25
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '20000'
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 262
|
||||
Top = 57
|
||||
Width = 125
|
||||
Height = 36
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 5
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 2
|
||||
Top = 329
|
||||
Width = 405
|
||||
Height = 316
|
||||
Align = alClient
|
||||
Caption = 'LED Control'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 195
|
||||
ExplicitTop = 102
|
||||
ExplicitWidth = 885
|
||||
ExplicitHeight = 662
|
||||
object Label7: TLabel
|
||||
Left = 24
|
||||
Top = 263
|
||||
Width = 58
|
||||
Height = 25
|
||||
Caption = 'Silver'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 205
|
||||
Width = 45
|
||||
Height = 25
|
||||
Caption = 'Blue'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 147
|
||||
Width = 62
|
||||
Height = 25
|
||||
Caption = 'Green'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 89
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Yellow'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 34
|
||||
Width = 44
|
||||
Height = 25
|
||||
Caption = 'RED'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 209
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 305
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 209
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 113
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 305
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 209
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 113
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 305
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 209
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 113
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 305
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 209
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 113
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 305
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOn: TButton
|
||||
Left = 113
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 409
|
||||
Top = 65
|
||||
Width = 441
|
||||
Height = 647
|
||||
Align = alClient
|
||||
Caption = '[ Status ]'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 534
|
||||
ExplicitTop = 165
|
||||
ExplicitWidth = 516
|
||||
ExplicitHeight = 304
|
||||
object lbStatus: TListBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 437
|
||||
Height = 629
|
||||
Align = alClient
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 16
|
||||
ExplicitTop = 24
|
||||
ExplicitWidth = 480
|
||||
ExplicitHeight = 50
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 850
|
||||
Height = 65
|
||||
Align = alTop
|
||||
BevelKind = bkFlat
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
ExplicitWidth = 1106
|
||||
DesignSize = (
|
||||
846
|
||||
61)
|
||||
object btnReset: TButton
|
||||
Left = 582
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Status Clear'
|
||||
TabOrder = 0
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 716
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 1
|
||||
OnClick = btnExitClick
|
||||
ExplicitLeft = 972
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 431
|
||||
Top = 106
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
end
|
||||
end
|
||||
563
agents/delphi_led_agent/__history/uMain.dfm.~12~
Normal file
563
agents/delphi_led_agent/__history/uMain.dfm.~12~
Normal file
@ -0,0 +1,563 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 712
|
||||
ClientWidth = 850
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 14
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 0
|
||||
Top = 65
|
||||
Width = 409
|
||||
Height = 647
|
||||
Align = alLeft
|
||||
Caption = '[ TEST ] Lamp Control'
|
||||
TabOrder = 0
|
||||
ExplicitHeight = 694
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 2
|
||||
Top = 121
|
||||
Width = 405
|
||||
Height = 208
|
||||
Align = alTop
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 0
|
||||
object btnSoundOff: TButton
|
||||
Left = 18
|
||||
Top = 24
|
||||
Width = 367
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 18
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 18
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 18
|
||||
Top = 160
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 216
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 216
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 405
|
||||
Height = 105
|
||||
Align = alTop
|
||||
Caption = 'TCP Setting'
|
||||
TabOrder = 1
|
||||
DesignSize = (
|
||||
405
|
||||
105)
|
||||
object Label1: TLabel
|
||||
Left = 20
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 262
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 72
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 195
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 1
|
||||
Text = '114'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 154
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 113
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtPort: TEdit
|
||||
Left = 314
|
||||
Top = 25
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '20000'
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 18
|
||||
Top = 57
|
||||
Width = 367
|
||||
Height = 36
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 5
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 2
|
||||
Top = 329
|
||||
Width = 405
|
||||
Height = 316
|
||||
Align = alClient
|
||||
Caption = 'LED Control'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 195
|
||||
ExplicitTop = 102
|
||||
ExplicitWidth = 885
|
||||
ExplicitHeight = 662
|
||||
object Label7: TLabel
|
||||
Left = 24
|
||||
Top = 263
|
||||
Width = 58
|
||||
Height = 25
|
||||
Caption = 'Silver'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 205
|
||||
Width = 45
|
||||
Height = 25
|
||||
Caption = 'Blue'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 147
|
||||
Width = 62
|
||||
Height = 25
|
||||
Caption = 'Green'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 89
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Yellow'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 34
|
||||
Width = 44
|
||||
Height = 25
|
||||
Caption = 'RED'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 209
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 305
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 209
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 113
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 305
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 209
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 113
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 305
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 209
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 113
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 305
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 209
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 113
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 305
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOn: TButton
|
||||
Left = 113
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 409
|
||||
Top = 65
|
||||
Width = 441
|
||||
Height = 647
|
||||
Align = alClient
|
||||
Caption = '[ Status ]'
|
||||
TabOrder = 2
|
||||
ExplicitLeft = 534
|
||||
ExplicitTop = 165
|
||||
ExplicitWidth = 516
|
||||
ExplicitHeight = 304
|
||||
object lbStatus: TListBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 437
|
||||
Height = 629
|
||||
Align = alClient
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 16
|
||||
ExplicitTop = 24
|
||||
ExplicitWidth = 480
|
||||
ExplicitHeight = 50
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 850
|
||||
Height = 65
|
||||
Align = alTop
|
||||
BevelKind = bkFlat
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
ExplicitWidth = 1106
|
||||
DesignSize = (
|
||||
846
|
||||
61)
|
||||
object btnReset: TButton
|
||||
Left = 582
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Status Clear'
|
||||
TabOrder = 0
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 716
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 1
|
||||
OnClick = btnExitClick
|
||||
ExplicitLeft = 972
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 431
|
||||
Top = 106
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
end
|
||||
end
|
||||
548
agents/delphi_led_agent/__history/uMain.dfm.~13~
Normal file
548
agents/delphi_led_agent/__history/uMain.dfm.~13~
Normal file
@ -0,0 +1,548 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'MMCL QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 712
|
||||
ClientWidth = 850
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 14
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 0
|
||||
Top = 65
|
||||
Width = 409
|
||||
Height = 647
|
||||
Align = alLeft
|
||||
Caption = '[ TEST ] Lamp Control'
|
||||
TabOrder = 0
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 2
|
||||
Top = 121
|
||||
Width = 405
|
||||
Height = 208
|
||||
Align = alTop
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 0
|
||||
object btnSoundOff: TButton
|
||||
Left = 18
|
||||
Top = 24
|
||||
Width = 367
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 18
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 18
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 18
|
||||
Top = 160
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 216
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 216
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 405
|
||||
Height = 105
|
||||
Align = alTop
|
||||
Caption = 'TCP Setting'
|
||||
TabOrder = 1
|
||||
DesignSize = (
|
||||
405
|
||||
105)
|
||||
object Label1: TLabel
|
||||
Left = 20
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 262
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 72
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 195
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 1
|
||||
Text = '114'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 154
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 113
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtPort: TEdit
|
||||
Left = 314
|
||||
Top = 25
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '20000'
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 18
|
||||
Top = 57
|
||||
Width = 367
|
||||
Height = 36
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 5
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 2
|
||||
Top = 329
|
||||
Width = 405
|
||||
Height = 316
|
||||
Align = alClient
|
||||
Caption = 'LED Control'
|
||||
TabOrder = 2
|
||||
object Label7: TLabel
|
||||
Left = 24
|
||||
Top = 263
|
||||
Width = 58
|
||||
Height = 25
|
||||
Caption = 'Silver'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 205
|
||||
Width = 45
|
||||
Height = 25
|
||||
Caption = 'Blue'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 147
|
||||
Width = 62
|
||||
Height = 25
|
||||
Caption = 'Green'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 89
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Yellow'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 34
|
||||
Width = 44
|
||||
Height = 25
|
||||
Caption = 'RED'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 209
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 305
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 209
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 113
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 305
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 209
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 113
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 305
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 209
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 113
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 305
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 209
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 113
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 305
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOn: TButton
|
||||
Left = 113
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 409
|
||||
Top = 65
|
||||
Width = 441
|
||||
Height = 647
|
||||
Align = alClient
|
||||
Caption = '[ Status ]'
|
||||
TabOrder = 2
|
||||
object lbStatus: TListBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 437
|
||||
Height = 629
|
||||
Align = alClient
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 850
|
||||
Height = 65
|
||||
Align = alTop
|
||||
BevelKind = bkFlat
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
DesignSize = (
|
||||
846
|
||||
61)
|
||||
object btnReset: TButton
|
||||
Left = 582
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Status Clear'
|
||||
TabOrder = 0
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 716
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 1
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 431
|
||||
Top = 106
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
end
|
||||
end
|
||||
420
agents/delphi_led_agent/__history/uMain.dfm.~4~
Normal file
420
agents/delphi_led_agent/__history/uMain.dfm.~4~
Normal file
@ -0,0 +1,420 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]'
|
||||
ClientHeight = 456
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Segoe UI'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 15
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 36
|
||||
Height = 15
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 23
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 15
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
420
agents/delphi_led_agent/__history/uMain.dfm.~5~
Normal file
420
agents/delphi_led_agent/__history/uMain.dfm.~5~
Normal file
@ -0,0 +1,420 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]'
|
||||
ClientHeight = 456
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Segoe UI'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 15
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 36
|
||||
Height = 15
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 23
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 15
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
426
agents/delphi_led_agent/__history/uMain.dfm.~6~
Normal file
426
agents/delphi_led_agent/__history/uMain.dfm.~6~
Normal file
@ -0,0 +1,426 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]'
|
||||
ClientHeight = 456
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Segoe UI'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 15
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 36
|
||||
Height = 15
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWhite
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 21
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 23
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 15
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
441
agents/delphi_led_agent/__history/uMain.dfm.~7~
Normal file
441
agents/delphi_led_agent/__history/uMain.dfm.~7~
Normal file
@ -0,0 +1,441 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamptest [Ethernet-type]'
|
||||
ClientHeight = 456
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Segoe UI'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
TextHeight = 15
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 36
|
||||
Height = 15
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 23
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 15
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
443
agents/delphi_led_agent/__history/uMain.dfm.~8~
Normal file
443
agents/delphi_led_agent/__history/uMain.dfm.~8~
Normal file
@ -0,0 +1,443 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 456
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 15
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 36
|
||||
Height = 15
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 23
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 23
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 87
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 50
|
||||
ItemHeight = 15
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
452
agents/delphi_led_agent/__history/uMain.dfm.~9~
Normal file
452
agents/delphi_led_agent/__history/uMain.dfm.~9~
Normal file
@ -0,0 +1,452 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'QLight_Lamp Control [Ethernet-type]'
|
||||
ClientHeight = 605
|
||||
ClientWidth = 689
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
DesignSize = (
|
||||
689
|
||||
605)
|
||||
TextHeight = 14
|
||||
object Label1: TLabel
|
||||
Left = 460
|
||||
Top = 20
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 320
|
||||
Height = 330
|
||||
Caption = 'Lamp Control'
|
||||
TabOrder = 0
|
||||
object btnRedOn: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 112
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 208
|
||||
Top = 24
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 16
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 112
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 208
|
||||
Top = 82
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 16
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 112
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 208
|
||||
Top = 140
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 16
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 112
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 208
|
||||
Top = 198
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 16
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 112
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 208
|
||||
Top = 256
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 352
|
||||
Top = 50
|
||||
Width = 180
|
||||
Height = 296
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 1
|
||||
object btnSoundOff: TButton
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 16
|
||||
Top = 116
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 16
|
||||
Top = 160
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 16
|
||||
Top = 204
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 16
|
||||
Top = 248
|
||||
Width = 150
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 512
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 553
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 594
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 635
|
||||
Top = 17
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 5
|
||||
Text = '114'
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 552
|
||||
Top = 50
|
||||
Width = 120
|
||||
Height = 60
|
||||
Caption = 'TCP/ PORT'
|
||||
TabOrder = 6
|
||||
object edtPort: TEdit
|
||||
Left = 24
|
||||
Top = 24
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '20000'
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 552
|
||||
Top = 120
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 552
|
||||
Top = 304
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 8
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
object btnReset: TButton
|
||||
Left = 552
|
||||
Top = 351
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'Reset'
|
||||
TabOrder = 9
|
||||
OnClick = btnResetClick
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 552
|
||||
Top = 398
|
||||
Width = 120
|
||||
Height = 41
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 10
|
||||
OnClick = btnExitClick
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 352
|
||||
Width = 516
|
||||
Height = 236
|
||||
Anchors = [akLeft, akTop, akBottom]
|
||||
Caption = 'Status'
|
||||
TabOrder = 11
|
||||
ExplicitHeight = 87
|
||||
DesignSize = (
|
||||
516
|
||||
236)
|
||||
object lbStatus: TListBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 480
|
||||
Height = 199
|
||||
Anchors = [akLeft, akTop, akBottom]
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
ExplicitHeight = 50
|
||||
end
|
||||
end
|
||||
end
|
||||
24
agents/delphi_led_agent/__history/uMain.pas.~1~
Normal file
24
agents/delphi_led_agent/__history/uMain.pas.~1~
Normal file
@ -0,0 +1,24 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
end.
|
||||
24
agents/delphi_led_agent/__history/uMain.pas.~2~
Normal file
24
agents/delphi_led_agent/__history/uMain.pas.~2~
Normal file
@ -0,0 +1,24 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
|
||||
|
||||
type
|
||||
TfMain = class(TForm)
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
fMain: TfMain;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
end.
|
||||
213
agents/delphi_led_agent/__history/uMain.pas.~3~
Normal file
213
agents/delphi_led_agent/__history/uMain.pas.~3~
Normal file
@ -0,0 +1,213 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvb_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
219
agents/delphi_led_agent/__history/uMain.pas.~4~
Normal file
219
agents/delphi_led_agent/__history/uMain.pas.~4~
Normal file
@ -0,0 +1,219 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
procedure btnRedOnClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvb_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
pprocedure TfrmMain.btnRedOnClick(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
rocedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
213
agents/delphi_led_agent/__history/uMain.pas.~5~
Normal file
213
agents/delphi_led_agent/__history/uMain.pas.~5~
Normal file
@ -0,0 +1,213 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvb_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
213
agents/delphi_led_agent/__history/uMain.pas.~6~
Normal file
213
agents/delphi_led_agent/__history/uMain.pas.~6~
Normal file
@ -0,0 +1,213 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvb_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
213
agents/delphi_led_agent/__history/uMain.pas.~7~
Normal file
213
agents/delphi_led_agent/__history/uMain.pas.~7~
Normal file
@ -0,0 +1,213 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvc_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
end;
|
||||
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
// Get model select
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer; // 2:Red, 3:Yellow, 4:Green, 5:Blue, 6:White
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
// Reset all to D_not before setting the specific one
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not; // Keep sound unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not; // Keep lamps unchanged
|
||||
|
||||
c_pIdata[0] := 1; // Write mode
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[0] := 0; // 0-read
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
396
agents/delphi_led_agent/__history/uMain.pas.~8~
Normal file
396
agents/delphi_led_agent/__history/uMain.pas.~8~
Normal file
@ -0,0 +1,396 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
|
||||
System.IniFiles, Data.DB, U_DM, uLogManagerThread;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
btnRedOn: TButton;
|
||||
btnRedBlink: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOff: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
Label1: TLabel;
|
||||
edtIP1: TEdit;
|
||||
edtIP2: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP4: TEdit;
|
||||
GroupBox3: TGroupBox;
|
||||
edtPort: TEdit;
|
||||
rgModel: TRadioGroup;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
|
||||
// 환경 설정 변수
|
||||
FDBHost, FDBUser, FDBPass, FDBName: string;
|
||||
FDBPort: Integer;
|
||||
|
||||
// 폴링 타이머
|
||||
FPollingTimer: TTimer;
|
||||
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
procedure LoadSettings;
|
||||
procedure InitDB;
|
||||
procedure OnPollingTimer(Sender: TObject);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvc_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.LoadSettings;
|
||||
var
|
||||
Ini: TIniFile;
|
||||
begin
|
||||
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini');
|
||||
try
|
||||
FDBHost := Ini.ReadString('DB', 'Host', '0.0.0.0');
|
||||
FDBPort := Ini.ReadInteger('DB', 'Port', 33063);
|
||||
FDBUser := Ini.ReadString('DB', 'User', 'mmcl_user');
|
||||
FDBPass := Ini.ReadString('DB', 'Password', '');
|
||||
FDBName := Ini.ReadString('DB', 'Database', 'mmcl_db');
|
||||
finally
|
||||
Ini.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.InitDB;
|
||||
begin
|
||||
DM.fdConnEtc.Close;
|
||||
DM.fdConnEtc.Params.Clear;
|
||||
DM.fdConnEtc.Params.Add('DriverID=MySQL');
|
||||
DM.fdConnEtc.Params.Add('Server=' + FDBHost);
|
||||
DM.fdConnEtc.Params.Add('Port=' + IntToStr(FDBPort));
|
||||
DM.fdConnEtc.Params.Add('Database=' + FDBName);
|
||||
DM.fdConnEtc.Params.Add('User_Name=' + FDBUser);
|
||||
if FDBPass <> '' then
|
||||
DM.fdConnEtc.Params.Add('Password=' + FDBPass);
|
||||
DM.fdConnEtc.Params.Add('CharacterSet=utf8mb4');
|
||||
|
||||
try
|
||||
DM.fdConnEtc.Connected := True;
|
||||
LogMessage('DB 연결 성공 (' + FDBHost + ')');
|
||||
AddLog_Thread('DB 연결 성공 (' + FDBHost + ')');
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
LogMessage('DB 연결 실패: ' + E.Message);
|
||||
AddLog_Thread('DB 연결 실패: ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize LED data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
|
||||
// 1. 로그 시스템 초기화
|
||||
InitLogger(ExtractFilePath(Application.ExeName) + 'Logs', 'LEDAgent', rtDaily);
|
||||
AddLog_Thread('=== LEDAgent 시작 ===');
|
||||
|
||||
// 2. INI 설정 로드
|
||||
LoadSettings;
|
||||
|
||||
// 3. DB 연결
|
||||
InitDB;
|
||||
|
||||
// 4. 폴링 타이머 가동 (1초=1000ms)
|
||||
FPollingTimer := TTimer.Create(Self);
|
||||
FPollingTimer.Interval := 1000;
|
||||
FPollingTimer.OnTimer := OnPollingTimer;
|
||||
FPollingTimer.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
if Assigned(FPollingTimer) then
|
||||
begin
|
||||
FPollingTimer.Enabled := False;
|
||||
FPollingTimer.Free;
|
||||
end;
|
||||
|
||||
if Assigned(DM) and DM.fdConnEtc.Connected then
|
||||
DM.fdConnEtc.Close;
|
||||
|
||||
AddLog_Thread('=== LEDAgent 종료 ===');
|
||||
StopLogger;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.OnPollingTimer(Sender: TObject);
|
||||
var
|
||||
SensorNo, DbLedPort: Integer;
|
||||
DbLedIp: string;
|
||||
T1, T2, T3: Integer;
|
||||
IpParts: TArray<string>;
|
||||
SendSuccess: Boolean;
|
||||
i: Integer;
|
||||
begin
|
||||
FPollingTimer.Enabled := False; // 겹침 방지
|
||||
try
|
||||
if not DM.fdConnEtc.Connected then Exit;
|
||||
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'SELECT sensor_no, target_ch1_statusID, target_ch2_statusID, target_ch3_statusID, led_ip, led_port ' +
|
||||
'FROM sensor_info ' +
|
||||
'WHERE sensor_typeid = 2 ' +
|
||||
' AND (target_ch1_statusID != value_ch1_statusID ' +
|
||||
' OR target_ch2_statusID != value_ch2_statusID ' +
|
||||
' OR target_ch3_statusID != value_ch3_statusID) ' +
|
||||
'LIMIT 1';
|
||||
|
||||
try
|
||||
DM.fdQryEtc.Open;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
AddLog_Thread('DB 폴링 에러: ' + E.Message);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if not DM.fdQryEtc.IsEmpty then
|
||||
begin
|
||||
SensorNo := DM.fdQryEtc.FieldByName('sensor_no').AsInteger;
|
||||
T1 := DM.fdQryEtc.FieldByName('target_ch1_statusID').AsInteger; // Green
|
||||
T2 := DM.fdQryEtc.FieldByName('target_ch2_statusID').AsInteger; // Yellow
|
||||
T3 := DM.fdQryEtc.FieldByName('target_ch3_statusID').AsInteger; // Red
|
||||
DbLedIp := DM.fdQryEtc.FieldByName('led_ip').AsString;
|
||||
DbLedPort := DM.fdQryEtc.FieldByName('led_port').AsInteger;
|
||||
if DbLedPort = 0 then DbLedPort := 20000;
|
||||
|
||||
LogMessage(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
AddLog_Thread(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
|
||||
// 1. LED 전송용 데이터 배열 구성
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // write 모드
|
||||
c_pIdata[1] := 0; // 모델 기본값
|
||||
c_pIdata[7] := 0; // 사운드 끄기 기본
|
||||
|
||||
c_pIdata[4] := T1; // Green (2: Red, 3: Yellow, 4: Green)
|
||||
c_pIdata[3] := T2; // Yellow
|
||||
c_pIdata[2] := T3; // Red
|
||||
|
||||
// 2. IP 및 Port 준비 (DB 기준)
|
||||
IpParts := DbLedIp.Split(['.']);
|
||||
if Length(IpParts) = 4 then
|
||||
begin
|
||||
c_pIpadd[0] := StrToIntDef(IpParts[0], 192);
|
||||
c_pIpadd[1] := StrToIntDef(IpParts[1], 168);
|
||||
c_pIpadd[2] := StrToIntDef(IpParts[2], 200);
|
||||
c_pIpadd[3] := StrToIntDef(IpParts[3], 114);
|
||||
end;
|
||||
|
||||
// 3. DLL 호출하여 하드웨어 제어
|
||||
SendSuccess := Tcp_Qu_RW(DbLedPort, c_pIpadd[0], c_pIdata[0]);
|
||||
|
||||
if SendSuccess then
|
||||
begin
|
||||
AddLog_Thread('하드웨어 제어 성공');
|
||||
LogMessage('하드웨어 제어 성공');
|
||||
|
||||
// 4. DB 상태 갱신 (Handshake 완료)
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'UPDATE sensor_info ' +
|
||||
'SET value_ch1_statusID = :v1, value_ch2_statusID = :v2, value_ch3_statusID = :v3 ' +
|
||||
'WHERE sensor_no = :sno';
|
||||
DM.fdQryEtc.ParamByName('v1').AsInteger := T1;
|
||||
DM.fdQryEtc.ParamByName('v2').AsInteger := T2;
|
||||
DM.fdQryEtc.ParamByName('v3').AsInteger := T3;
|
||||
DM.fdQryEtc.ParamByName('sno').AsInteger := SensorNo;
|
||||
DM.fdQryEtc.ExecSQL;
|
||||
|
||||
AddLog_Thread('DB 완료 갱신 (Handshake 종료)');
|
||||
LogMessage('DB 반영 완료');
|
||||
end
|
||||
else
|
||||
begin
|
||||
AddLog_Thread('TCP/IP 제어 실패 (하드웨어 연결 확인)');
|
||||
LogMessage('LED 통신 실패');
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
FPollingTimer.Enabled := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
//---------------------------------------------------------
|
||||
// 기존 UI 매뉴얼 테스트 로직 (수동 테스트용 유지)
|
||||
//---------------------------------------------------------
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer;
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
c_pIdata[0] := 0;
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
404
agents/delphi_led_agent/__history/uMain.pas.~9~
Normal file
404
agents/delphi_led_agent/__history/uMain.pas.~9~
Normal file
@ -0,0 +1,404 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
|
||||
System.IniFiles, Data.DB, U_DM, uLogManagerThread;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
rgModel: TRadioGroup;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
Panel1: TPanel;
|
||||
btnStatRead: TButton;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
GroupBox3: TGroupBox;
|
||||
edtIP1: TEdit;
|
||||
edtIP4: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP2: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
edtPort: TEdit;
|
||||
GroupBox5: TGroupBox;
|
||||
btnRedBlink: TButton;
|
||||
Label7: TLabel;
|
||||
Label6: TLabel;
|
||||
Label5: TLabel;
|
||||
Label4: TLabel;
|
||||
Label3: TLabel;
|
||||
btnWhiteOff: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnRedOn: TButton;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
|
||||
// 환경 설정 변수
|
||||
FDBHost, FDBUser, FDBPass, FDBName: string;
|
||||
FDBPort: Integer;
|
||||
|
||||
// 폴링 타이머
|
||||
FPollingTimer: TTimer;
|
||||
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
procedure LoadSettings;
|
||||
procedure InitDB;
|
||||
procedure OnPollingTimer(Sender: TObject);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvc_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.LoadSettings;
|
||||
var
|
||||
Ini: TIniFile;
|
||||
begin
|
||||
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini');
|
||||
try
|
||||
FDBHost := Ini.ReadString('DB', 'Host', '0.0.0.0');
|
||||
FDBPort := Ini.ReadInteger('DB', 'Port', 33063);
|
||||
FDBUser := Ini.ReadString('DB', 'User', 'mmcl_user');
|
||||
FDBPass := Ini.ReadString('DB', 'Password', '');
|
||||
FDBName := Ini.ReadString('DB', 'Database', 'mmcl_db');
|
||||
finally
|
||||
Ini.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.InitDB;
|
||||
begin
|
||||
DM.fdConnEtc.Close;
|
||||
DM.fdConnEtc.Params.Clear;
|
||||
DM.fdConnEtc.Params.Add('DriverID=MySQL');
|
||||
DM.fdConnEtc.Params.Add('Server=' + FDBHost);
|
||||
DM.fdConnEtc.Params.Add('Port=' + IntToStr(FDBPort));
|
||||
DM.fdConnEtc.Params.Add('Database=' + FDBName);
|
||||
DM.fdConnEtc.Params.Add('User_Name=' + FDBUser);
|
||||
if FDBPass <> '' then
|
||||
DM.fdConnEtc.Params.Add('Password=' + FDBPass);
|
||||
DM.fdConnEtc.Params.Add('CharacterSet=utf8mb4');
|
||||
|
||||
try
|
||||
DM.fdConnEtc.Connected := True;
|
||||
LogMessage('DB 연결 성공 (' + FDBHost + ')');
|
||||
AddLog_Thread('DB 연결 성공 (' + FDBHost + ')');
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
LogMessage('DB 연결 실패: ' + E.Message);
|
||||
AddLog_Thread('DB 연결 실패: ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize LED data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
|
||||
// 1. 로그 시스템 초기화
|
||||
InitLogger(ExtractFilePath(Application.ExeName) + 'Logs', 'LEDAgent', rtDaily);
|
||||
AddLog_Thread('=== LEDAgent 시작 ===');
|
||||
|
||||
// 2. INI 설정 로드
|
||||
LoadSettings;
|
||||
|
||||
// 3. DB 연결
|
||||
InitDB;
|
||||
|
||||
// 4. 폴링 타이머 가동 (1초=1000ms)
|
||||
FPollingTimer := TTimer.Create(Self);
|
||||
FPollingTimer.Interval := 1000;
|
||||
FPollingTimer.OnTimer := OnPollingTimer;
|
||||
FPollingTimer.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
if Assigned(FPollingTimer) then
|
||||
begin
|
||||
FPollingTimer.Enabled := False;
|
||||
FPollingTimer.Free;
|
||||
end;
|
||||
|
||||
if Assigned(DM) and DM.fdConnEtc.Connected then
|
||||
DM.fdConnEtc.Close;
|
||||
|
||||
AddLog_Thread('=== LEDAgent 종료 ===');
|
||||
StopLogger;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.OnPollingTimer(Sender: TObject);
|
||||
var
|
||||
SensorNo, DbLedPort: Integer;
|
||||
DbLedIp: string;
|
||||
T1, T2, T3: Integer;
|
||||
IpParts: TArray<string>;
|
||||
SendSuccess: Boolean;
|
||||
i: Integer;
|
||||
begin
|
||||
FPollingTimer.Enabled := False; // 겹침 방지
|
||||
try
|
||||
if not DM.fdConnEtc.Connected then Exit;
|
||||
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'SELECT sensor_no, target_ch1_statusID, target_ch2_statusID, target_ch3_statusID, led_ip, led_port ' +
|
||||
'FROM sensor_info ' +
|
||||
'WHERE sensor_typeid = 2 ' +
|
||||
' AND (target_ch1_statusID != value_ch1_statusID ' +
|
||||
' OR target_ch2_statusID != value_ch2_statusID ' +
|
||||
' OR target_ch3_statusID != value_ch3_statusID) ' +
|
||||
'LIMIT 1';
|
||||
|
||||
try
|
||||
DM.fdQryEtc.Open;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
AddLog_Thread('DB 폴링 에러: ' + E.Message);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if not DM.fdQryEtc.IsEmpty then
|
||||
begin
|
||||
SensorNo := DM.fdQryEtc.FieldByName('sensor_no').AsInteger;
|
||||
T1 := DM.fdQryEtc.FieldByName('target_ch1_statusID').AsInteger; // Green
|
||||
T2 := DM.fdQryEtc.FieldByName('target_ch2_statusID').AsInteger; // Yellow
|
||||
T3 := DM.fdQryEtc.FieldByName('target_ch3_statusID').AsInteger; // Red
|
||||
DbLedIp := DM.fdQryEtc.FieldByName('led_ip').AsString;
|
||||
DbLedPort := DM.fdQryEtc.FieldByName('led_port').AsInteger;
|
||||
if DbLedPort = 0 then DbLedPort := 20000;
|
||||
|
||||
LogMessage(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
AddLog_Thread(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
|
||||
// 1. LED 전송용 데이터 배열 구성
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // write 모드
|
||||
c_pIdata[1] := 0; // 모델 기본값
|
||||
c_pIdata[7] := 0; // 사운드 끄기 기본
|
||||
|
||||
c_pIdata[4] := T1; // Green (2: Red, 3: Yellow, 4: Green)
|
||||
c_pIdata[3] := T2; // Yellow
|
||||
c_pIdata[2] := T3; // Red
|
||||
|
||||
// 2. IP 및 Port 준비 (DB 기준)
|
||||
IpParts := DbLedIp.Split(['.']);
|
||||
if Length(IpParts) = 4 then
|
||||
begin
|
||||
c_pIpadd[0] := StrToIntDef(IpParts[0], 192);
|
||||
c_pIpadd[1] := StrToIntDef(IpParts[1], 168);
|
||||
c_pIpadd[2] := StrToIntDef(IpParts[2], 200);
|
||||
c_pIpadd[3] := StrToIntDef(IpParts[3], 114);
|
||||
end;
|
||||
|
||||
// 3. DLL 호출하여 하드웨어 제어
|
||||
SendSuccess := Tcp_Qu_RW(DbLedPort, c_pIpadd[0], c_pIdata[0]);
|
||||
|
||||
if SendSuccess then
|
||||
begin
|
||||
AddLog_Thread('하드웨어 제어 성공');
|
||||
LogMessage('하드웨어 제어 성공');
|
||||
|
||||
// 4. DB 상태 갱신 (Handshake 완료)
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'UPDATE sensor_info ' +
|
||||
'SET value_ch1_statusID = :v1, value_ch2_statusID = :v2, value_ch3_statusID = :v3 ' +
|
||||
'WHERE sensor_no = :sno';
|
||||
DM.fdQryEtc.ParamByName('v1').AsInteger := T1;
|
||||
DM.fdQryEtc.ParamByName('v2').AsInteger := T2;
|
||||
DM.fdQryEtc.ParamByName('v3').AsInteger := T3;
|
||||
DM.fdQryEtc.ParamByName('sno').AsInteger := SensorNo;
|
||||
DM.fdQryEtc.ExecSQL;
|
||||
|
||||
AddLog_Thread('DB 완료 갱신 (Handshake 종료)');
|
||||
LogMessage('DB 반영 완료');
|
||||
end
|
||||
else
|
||||
begin
|
||||
AddLog_Thread('TCP/IP 제어 실패 (하드웨어 연결 확인)');
|
||||
LogMessage('LED 통신 실패');
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
FPollingTimer.Enabled := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
//---------------------------------------------------------
|
||||
// 기존 UI 매뉴얼 테스트 로직 (수동 테스트용 유지)
|
||||
//---------------------------------------------------------
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer;
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
c_pIdata[0] := 0;
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
10
agents/delphi_led_agent/settings.ini
Normal file
10
agents/delphi_led_agent/settings.ini
Normal file
@ -0,0 +1,10 @@
|
||||
[DB]
|
||||
Host=0.0.0.0
|
||||
Port=33063
|
||||
User=mmcl_user
|
||||
Password=*******
|
||||
Database=mmcl_db
|
||||
|
||||
[LED]
|
||||
IP=0.0.0.0
|
||||
PORT=20000
|
||||
163
agents/delphi_led_agent/uLogManagerThread.pas
Normal file
163
agents/delphi_led_agent/uLogManagerThread.pas
Normal file
@ -0,0 +1,163 @@
|
||||
unit uLogManagerThread;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.Classes, System.SysUtils, System.Generics.Collections,
|
||||
System.SyncObjs;
|
||||
|
||||
type
|
||||
TRollingType = (rtDaily, rtHourly);
|
||||
|
||||
procedure InitLogger(const Folder, FilePrefix: string; RollType: TRollingType);
|
||||
procedure AddLog_Thread(const Msg: string);
|
||||
procedure StopLogger;
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
LogQueue: TThreadedQueue<string>;
|
||||
LogThread: TThread;
|
||||
|
||||
LogFolder : string;
|
||||
LogFilePrefix: string;
|
||||
RollingType : TRollingType;
|
||||
|
||||
StopFlag: Boolean = False;
|
||||
|
||||
type
|
||||
TLogThread = class(TThread)
|
||||
private
|
||||
FCurrentFileName: string;
|
||||
function GetLogFileName: string;
|
||||
procedure WriteToFile(const S: string);
|
||||
protected
|
||||
procedure Execute; override;
|
||||
end;
|
||||
|
||||
procedure InitLogger(const Folder, FilePrefix: string; RollType: TRollingType);
|
||||
begin
|
||||
LogFolder := IncludeTrailingPathDelimiter(Folder);
|
||||
if not DirectoryExists(LogFolder) then
|
||||
ForceDirectories(LogFolder);
|
||||
|
||||
LogFilePrefix := FilePrefix;
|
||||
RollingType := RollType;
|
||||
|
||||
LogQueue := TThreadedQueue<string>.Create(1000, 1000, 1000);
|
||||
|
||||
StopFlag := False;
|
||||
LogThread := TLogThread.Create(False);
|
||||
end;
|
||||
|
||||
procedure StopLogger;
|
||||
begin
|
||||
StopFlag := True;
|
||||
|
||||
if Assigned(LogThread) then
|
||||
begin
|
||||
LogThread.WaitFor;
|
||||
LogThread.Free;
|
||||
LogThread := nil;
|
||||
end;
|
||||
|
||||
if Assigned(LogQueue) then
|
||||
begin
|
||||
LogQueue.Free;
|
||||
LogQueue := nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure AddLog_Thread(const Msg: string);
|
||||
begin
|
||||
if Assigned(LogQueue) then
|
||||
LogQueue.PushItem(FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
{ TLogThread }
|
||||
|
||||
function TLogThread.GetLogFileName: string;
|
||||
var
|
||||
S: string;
|
||||
begin
|
||||
case RollingType of
|
||||
rtDaily: S := FormatDateTime('yyyy-mm-dd', Now);
|
||||
rtHourly: S := FormatDateTime('yyyy-mm-dd_hh', Now);
|
||||
end;
|
||||
|
||||
Result := LogFolder + LogFilePrefix + '_' + S + '.txt';
|
||||
end;
|
||||
|
||||
procedure TLogThread.WriteToFile(const S: string);
|
||||
var
|
||||
FS: TFileStream;
|
||||
SW: TStreamWriter;
|
||||
begin
|
||||
if FCurrentFileName <> GetLogFileName then
|
||||
FCurrentFileName := GetLogFileName;
|
||||
|
||||
// Append 모드로 열기
|
||||
if FileExists(FCurrentFileName) then
|
||||
FS := TFileStream.Create(FCurrentFileName, fmOpenWrite or fmShareDenyNone)
|
||||
else
|
||||
FS := TFileStream.Create(FCurrentFileName, fmCreate or fmShareDenyNone);
|
||||
|
||||
try
|
||||
FS.Seek(0, soEnd);
|
||||
|
||||
// UTF-8 + BOM (파일 최초 생성 시 자동)
|
||||
SW := TStreamWriter.Create(FS, TEncoding.UTF8);
|
||||
try
|
||||
SW.WriteLine(S);
|
||||
SW.Flush;
|
||||
finally
|
||||
SW.Free;
|
||||
end;
|
||||
finally
|
||||
FS.Free;
|
||||
end;
|
||||
end;
|
||||
{
|
||||
procedure TLogThread.WriteToFile(const S: string);
|
||||
var
|
||||
F: TextFile;
|
||||
begin
|
||||
if FCurrentFileName <> GetLogFileName then
|
||||
FCurrentFileName := GetLogFileName;
|
||||
|
||||
AssignFile(F, FCurrentFileName);
|
||||
|
||||
if FileExists(FCurrentFileName) then
|
||||
Append(F)
|
||||
else
|
||||
Rewrite(F);
|
||||
|
||||
try
|
||||
Writeln(F, S);
|
||||
finally
|
||||
CloseFile(F);
|
||||
end;
|
||||
end;
|
||||
}
|
||||
procedure TLogThread.Execute;
|
||||
var
|
||||
LogItem: string;
|
||||
WR: TWaitResult;
|
||||
begin
|
||||
FCurrentFileName := GetLogFileName;
|
||||
|
||||
while not StopFlag do
|
||||
begin
|
||||
WR := LogQueue.PopItem(LogItem); // Delphi 10.4에서 유일하게 존재하는 PopItem
|
||||
|
||||
if WR = wrSignaled then
|
||||
begin
|
||||
WriteToFile(LogItem);
|
||||
end
|
||||
else
|
||||
Sleep(10); // 큐가 비었으면 잠시 쉬었다가 다시 확인
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
550
agents/delphi_led_agent/uMain.dfm
Normal file
550
agents/delphi_led_agent/uMain.dfm
Normal file
@ -0,0 +1,550 @@
|
||||
object frmMain: TfrmMain
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'MMCL LEDAgent'
|
||||
ClientHeight = 712
|
||||
ClientWidth = 850
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -12
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
TextHeight = 14
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 0
|
||||
Top = 65
|
||||
Width = 409
|
||||
Height = 647
|
||||
Align = alLeft
|
||||
Caption = '[ TEST ] QLight_Lamp Control - Ethernet-type'
|
||||
TabOrder = 0
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 2
|
||||
Top = 121
|
||||
Width = 405
|
||||
Height = 208
|
||||
Align = alTop
|
||||
Caption = 'Sound Select'
|
||||
TabOrder = 0
|
||||
object btnSoundOff: TButton
|
||||
Left = 18
|
||||
Top = 24
|
||||
Width = 367
|
||||
Height = 35
|
||||
Caption = 'Sound OFF'
|
||||
TabOrder = 0
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound1: TButton
|
||||
Left = 18
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Fire A-WANG'
|
||||
TabOrder = 1
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound2: TButton
|
||||
Left = 18
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Emergency'
|
||||
TabOrder = 2
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound3: TButton
|
||||
Left = 18
|
||||
Top = 160
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'Ambulance'
|
||||
TabOrder = 3
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound4: TButton
|
||||
Left = 216
|
||||
Top = 72
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI-PI-PI'
|
||||
TabOrder = 4
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
object btnSound5: TButton
|
||||
Left = 216
|
||||
Top = 116
|
||||
Width = 169
|
||||
Height = 35
|
||||
Caption = 'PI_contiune'
|
||||
TabOrder = 5
|
||||
OnClick = btnSoundClick
|
||||
end
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 405
|
||||
Height = 105
|
||||
Align = alTop
|
||||
Caption = 'TCP Setting'
|
||||
TabOrder = 1
|
||||
DesignSize = (
|
||||
405
|
||||
105)
|
||||
object Label1: TLabel
|
||||
Left = 20
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 262
|
||||
Top = 28
|
||||
Width = 38
|
||||
Height = 14
|
||||
Caption = 'TCP/IP'
|
||||
end
|
||||
object edtIP1: TEdit
|
||||
Left = 72
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 0
|
||||
Text = '192'
|
||||
end
|
||||
object edtIP4: TEdit
|
||||
Left = 195
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 1
|
||||
Text = '114'
|
||||
end
|
||||
object edtIP3: TEdit
|
||||
Left = 154
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 2
|
||||
Text = '200'
|
||||
end
|
||||
object edtIP2: TEdit
|
||||
Left = 113
|
||||
Top = 25
|
||||
Width = 35
|
||||
Height = 22
|
||||
TabOrder = 3
|
||||
Text = '168'
|
||||
end
|
||||
object edtPort: TEdit
|
||||
Left = 314
|
||||
Top = 25
|
||||
Width = 73
|
||||
Height = 22
|
||||
TabOrder = 4
|
||||
Text = '20000'
|
||||
end
|
||||
object btnStatRead: TButton
|
||||
Left = 18
|
||||
Top = 57
|
||||
Width = 367
|
||||
Height = 36
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Stat_Read'
|
||||
TabOrder = 5
|
||||
OnClick = btnStatReadClick
|
||||
end
|
||||
end
|
||||
object GroupBox5: TGroupBox
|
||||
Left = 2
|
||||
Top = 329
|
||||
Width = 405
|
||||
Height = 316
|
||||
Align = alClient
|
||||
Caption = 'LED Control'
|
||||
TabOrder = 2
|
||||
object Label7: TLabel
|
||||
Left = 24
|
||||
Top = 263
|
||||
Width = 58
|
||||
Height = 25
|
||||
Caption = 'Silver'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
Left = 24
|
||||
Top = 205
|
||||
Width = 45
|
||||
Height = 25
|
||||
Caption = 'Blue'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
Left = 24
|
||||
Top = 147
|
||||
Width = 62
|
||||
Height = 25
|
||||
Caption = 'Green'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 24
|
||||
Top = 89
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Yellow'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 24
|
||||
Top = 34
|
||||
Width = 44
|
||||
Height = 25
|
||||
Caption = 'RED'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -21
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object btnRedBlink: TButton
|
||||
Left = 209
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOff: TButton
|
||||
Left = 305
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 1
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteBlink: TButton
|
||||
Left = 209
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnWhiteOn: TButton
|
||||
Left = 113
|
||||
Top = 254
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clSilver
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 3
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOff: TButton
|
||||
Left = 305
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 4
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueBlink: TButton
|
||||
Left = 209
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 5
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnBlueOn: TButton
|
||||
Left = 113
|
||||
Top = 196
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clBlue
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 6
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOff: TButton
|
||||
Left = 305
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 7
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenBlink: TButton
|
||||
Left = 209
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 8
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnGreenOn: TButton
|
||||
Left = 113
|
||||
Top = 138
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clGreen
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 9
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOff: TButton
|
||||
Left = 305
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 10
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowBlink: TButton
|
||||
Left = 209
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON/OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -16
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 11
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnYellowOn: TButton
|
||||
Left = 113
|
||||
Top = 80
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = 4706810
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 12
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOff: TButton
|
||||
Left = 305
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'OFF'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 13
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
object btnRedOn: TButton
|
||||
Left = 113
|
||||
Top = 22
|
||||
Width = 80
|
||||
Height = 50
|
||||
Caption = 'ON'
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clRed
|
||||
Font.Height = -24
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
TabOrder = 14
|
||||
StyleElements = [seClient, seBorder]
|
||||
OnClick = btnLampClick
|
||||
end
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 409
|
||||
Top = 65
|
||||
Width = 441
|
||||
Height = 647
|
||||
Align = alClient
|
||||
Caption = '[ Status ]'
|
||||
TabOrder = 2
|
||||
object lbStatus: TListBox
|
||||
Left = 2
|
||||
Top = 16
|
||||
Width = 437
|
||||
Height = 629
|
||||
Align = alClient
|
||||
ItemHeight = 14
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 3
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 850
|
||||
Height = 65
|
||||
Align = alTop
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
DesignSize = (
|
||||
850
|
||||
65)
|
||||
object btnReset: TButton
|
||||
Left = 586
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Status Clear'
|
||||
TabOrder = 0
|
||||
OnClick = btnResetClick
|
||||
ExplicitLeft = 582
|
||||
end
|
||||
object btnExit: TButton
|
||||
Left = 720
|
||||
Top = 9
|
||||
Width = 120
|
||||
Height = 41
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'EXIT'
|
||||
TabOrder = 1
|
||||
OnClick = btnExitClick
|
||||
ExplicitLeft = 716
|
||||
end
|
||||
end
|
||||
object rgModel: TRadioGroup
|
||||
Left = 431
|
||||
Top = 106
|
||||
Width = 120
|
||||
Height = 170
|
||||
Caption = 'Model Select'
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'WS'
|
||||
'WP'
|
||||
'WM(1)'
|
||||
'WA(1)'
|
||||
'WB'
|
||||
'Buzz'
|
||||
'WM(8)'
|
||||
'WA(8)')
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
end
|
||||
end
|
||||
483
agents/delphi_led_agent/uMain.pas
Normal file
483
agents/delphi_led_agent/uMain.pas
Normal file
@ -0,0 +1,483 @@
|
||||
unit uMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
|
||||
System.IniFiles, Data.DB, U_DM, uLogManagerThread;
|
||||
|
||||
type
|
||||
TfrmMain = class(TForm)
|
||||
GroupBox1: TGroupBox;
|
||||
rgModel: TRadioGroup;
|
||||
GroupBox4: TGroupBox;
|
||||
lbStatus: TListBox;
|
||||
Panel1: TPanel;
|
||||
btnReset: TButton;
|
||||
btnExit: TButton;
|
||||
GroupBox2: TGroupBox;
|
||||
btnSoundOff: TButton;
|
||||
btnSound1: TButton;
|
||||
btnSound2: TButton;
|
||||
btnSound3: TButton;
|
||||
btnSound4: TButton;
|
||||
btnSound5: TButton;
|
||||
GroupBox3: TGroupBox;
|
||||
edtIP1: TEdit;
|
||||
edtIP4: TEdit;
|
||||
edtIP3: TEdit;
|
||||
edtIP2: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
edtPort: TEdit;
|
||||
GroupBox5: TGroupBox;
|
||||
btnRedBlink: TButton;
|
||||
Label7: TLabel;
|
||||
Label6: TLabel;
|
||||
Label5: TLabel;
|
||||
Label4: TLabel;
|
||||
Label3: TLabel;
|
||||
btnWhiteOff: TButton;
|
||||
btnWhiteBlink: TButton;
|
||||
btnWhiteOn: TButton;
|
||||
btnBlueOff: TButton;
|
||||
btnBlueBlink: TButton;
|
||||
btnBlueOn: TButton;
|
||||
btnGreenOff: TButton;
|
||||
btnGreenBlink: TButton;
|
||||
btnGreenOn: TButton;
|
||||
btnYellowOff: TButton;
|
||||
btnYellowBlink: TButton;
|
||||
btnYellowOn: TButton;
|
||||
btnRedOff: TButton;
|
||||
btnRedOn: TButton;
|
||||
btnStatRead: TButton;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure btnLampClick(Sender: TObject);
|
||||
procedure btnSoundClick(Sender: TObject);
|
||||
procedure btnStatReadClick(Sender: TObject);
|
||||
procedure btnResetClick(Sender: TObject);
|
||||
procedure btnExitClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
c_pIdata: array[0..14] of Byte;
|
||||
c_pIpadd: array[0..3] of Byte;
|
||||
|
||||
// 환경 설정 변수
|
||||
FDBHost, FDBUser, FDBPass, FDBName: string;
|
||||
FDBPort: Integer;
|
||||
|
||||
// 폴링 타이머
|
||||
FPollingTimer: TTimer;
|
||||
FStatusSyncTimer: TTimer;
|
||||
|
||||
function SendCommand: Boolean;
|
||||
procedure LogMessage(const Msg: string);
|
||||
procedure LoadSettings;
|
||||
procedure InitDB;
|
||||
procedure OnPollingTimer(Sender: TObject);
|
||||
procedure OnStatusSyncTimer(Sender: TObject);
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmMain: TfrmMain;
|
||||
|
||||
function Tcp_Qu_RW(iPort: Integer; var pbIp: Byte; var pbData: Byte): Boolean; stdcall; external 'Qtvc_dll.dll';
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
C_lampoff = 0;
|
||||
C_lampon = 1;
|
||||
C_lampblink = 2;
|
||||
D_not = 100;
|
||||
|
||||
procedure TfrmMain.LoadSettings;
|
||||
var
|
||||
Ini: TIniFile;
|
||||
begin
|
||||
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini');
|
||||
try
|
||||
FDBHost := Ini.ReadString('DB', 'Host', '0.0.0.0');
|
||||
FDBPort := Ini.ReadInteger('DB', 'Port', 33063);
|
||||
FDBUser := Ini.ReadString('DB', 'User', 'mmcl_user');
|
||||
FDBPass := Ini.ReadString('DB', 'Password', '');
|
||||
FDBName := Ini.ReadString('DB', 'Database', 'mmcl_db');
|
||||
finally
|
||||
Ini.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.InitDB;
|
||||
begin
|
||||
DM.fdConnEtc.Close;
|
||||
DM.fdConnEtc.Params.Clear;
|
||||
DM.fdConnEtc.Params.Add('DriverID=MySQL');
|
||||
DM.fdConnEtc.Params.Add('Server=' + FDBHost);
|
||||
DM.fdConnEtc.Params.Add('Port=' + IntToStr(FDBPort));
|
||||
DM.fdConnEtc.Params.Add('Database=' + FDBName);
|
||||
DM.fdConnEtc.Params.Add('User_Name=' + FDBUser);
|
||||
if FDBPass <> '' then
|
||||
DM.fdConnEtc.Params.Add('Password=' + FDBPass);
|
||||
DM.fdConnEtc.Params.Add('CharacterSet=utf8mb4');
|
||||
|
||||
try
|
||||
DM.fdConnEtc.Connected := True;
|
||||
LogMessage('DB 연결 성공 (' + FDBHost + ')');
|
||||
AddLog_Thread('DB 연결 성공 (' + FDBHost + ')');
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
LogMessage('DB 연결 실패: ' + E.Message);
|
||||
AddLog_Thread('DB 연결 실패: ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
// Initialize LED data
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // 1-write, 0-read
|
||||
c_pIdata[1] := 0; // type default
|
||||
|
||||
// 1. 로그 시스템 초기화
|
||||
InitLogger(ExtractFilePath(Application.ExeName) + 'Logs', 'LEDAgent', rtDaily);
|
||||
AddLog_Thread('=== LEDAgent 시작 ===');
|
||||
|
||||
// 2. INI 설정 로드
|
||||
LoadSettings;
|
||||
|
||||
// 3. DB 연결
|
||||
InitDB;
|
||||
|
||||
// 4. 폴링 타이머 가동 (1초=1000ms)
|
||||
FPollingTimer := TTimer.Create(Self);
|
||||
FPollingTimer.Interval := 1000;
|
||||
FPollingTimer.OnTimer := OnPollingTimer;
|
||||
FPollingTimer.Enabled := True;
|
||||
|
||||
// 5. 실시간 상태 동기화 타이머 가동 (5초=5000ms)
|
||||
FStatusSyncTimer := TTimer.Create(Self);
|
||||
FStatusSyncTimer.Interval := 5000;
|
||||
FStatusSyncTimer.OnTimer := OnStatusSyncTimer;
|
||||
FStatusSyncTimer.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
if Assigned(FPollingTimer) then
|
||||
begin
|
||||
FPollingTimer.Enabled := False;
|
||||
FPollingTimer.Free;
|
||||
end;
|
||||
|
||||
if Assigned(FStatusSyncTimer) then
|
||||
begin
|
||||
FStatusSyncTimer.Enabled := False;
|
||||
FStatusSyncTimer.Free;
|
||||
end;
|
||||
|
||||
if Assigned(DM) and DM.fdConnEtc.Connected then
|
||||
DM.fdConnEtc.Close;
|
||||
|
||||
AddLog_Thread('=== LEDAgent 종료 ===');
|
||||
StopLogger;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.OnPollingTimer(Sender: TObject);
|
||||
var
|
||||
SensorNo, DbLedPort: Integer;
|
||||
DbLedIp: string;
|
||||
T1, T2, T3: Integer;
|
||||
IpParts: TArray<string>;
|
||||
SendSuccess: Boolean;
|
||||
i: Integer;
|
||||
begin
|
||||
FPollingTimer.Enabled := False; // 겹침 방지
|
||||
try
|
||||
if not DM.fdConnEtc.Connected then Exit;
|
||||
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'SELECT sensor_no, target_ch1_statusID, target_ch2_statusID, target_ch3_statusID, led_ip, led_port ' +
|
||||
'FROM sensor_info ' +
|
||||
'WHERE sensor_typeid = 2 ' +
|
||||
' AND (target_ch1_statusID != value_ch1_statusID ' +
|
||||
' OR target_ch2_statusID != value_ch2_statusID ' +
|
||||
' OR target_ch3_statusID != value_ch3_statusID) ' +
|
||||
'LIMIT 1';
|
||||
|
||||
try
|
||||
DM.fdQryEtc.Open;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
AddLog_Thread('DB 폴링 에러: ' + E.Message);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
if not DM.fdQryEtc.IsEmpty then
|
||||
begin
|
||||
SensorNo := DM.fdQryEtc.FieldByName('sensor_no').AsInteger;
|
||||
T1 := DM.fdQryEtc.FieldByName('target_ch1_statusID').AsInteger; // Green
|
||||
T2 := DM.fdQryEtc.FieldByName('target_ch2_statusID').AsInteger; // Yellow
|
||||
T3 := DM.fdQryEtc.FieldByName('target_ch3_statusID').AsInteger; // Red
|
||||
DbLedIp := DM.fdQryEtc.FieldByName('led_ip').AsString;
|
||||
DbLedPort := DM.fdQryEtc.FieldByName('led_port').AsInteger;
|
||||
if DbLedPort = 0 then DbLedPort := 20000;
|
||||
|
||||
LogMessage(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
AddLog_Thread(Format('DB 명령 감지 - Sensor:%d, IP:%s (Target: G:%d Y:%d R:%d)', [SensorNo, DbLedIp, T1, T2, T3]));
|
||||
|
||||
// 1. LED 전송용 데이터 배열 구성
|
||||
for i := 0 to 14 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1; // write 모드
|
||||
c_pIdata[1] := 0; // 모델 기본값
|
||||
c_pIdata[7] := 0; // 사운드 끄기 기본
|
||||
|
||||
c_pIdata[4] := T1; // Green (2: Red, 3: Yellow, 4: Green)
|
||||
c_pIdata[3] := T2; // Yellow
|
||||
c_pIdata[2] := T3; // Red
|
||||
|
||||
// 2. IP 및 Port 준비 (DB 기준)
|
||||
IpParts := DbLedIp.Split(['.']);
|
||||
if Length(IpParts) = 4 then
|
||||
begin
|
||||
c_pIpadd[0] := StrToIntDef(IpParts[0], 192);
|
||||
c_pIpadd[1] := StrToIntDef(IpParts[1], 168);
|
||||
c_pIpadd[2] := StrToIntDef(IpParts[2], 200);
|
||||
c_pIpadd[3] := StrToIntDef(IpParts[3], 114);
|
||||
end;
|
||||
|
||||
// 3. DLL 호출하여 하드웨어 제어
|
||||
SendSuccess := Tcp_Qu_RW(DbLedPort, c_pIpadd[0], c_pIdata[0]);
|
||||
|
||||
if SendSuccess then
|
||||
begin
|
||||
AddLog_Thread('하드웨어 제어 성공');
|
||||
LogMessage('하드웨어 제어 성공');
|
||||
|
||||
// 4. DB 상태 갱신 (Handshake 완료)
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text :=
|
||||
'UPDATE sensor_info ' +
|
||||
'SET value_ch1_statusID = :v1, value_ch2_statusID = :v2, value_ch3_statusID = :v3 ' +
|
||||
'WHERE sensor_no = :sno';
|
||||
DM.fdQryEtc.ParamByName('v1').AsInteger := T1;
|
||||
DM.fdQryEtc.ParamByName('v2').AsInteger := T2;
|
||||
DM.fdQryEtc.ParamByName('v3').AsInteger := T3;
|
||||
DM.fdQryEtc.ParamByName('sno').AsInteger := SensorNo;
|
||||
DM.fdQryEtc.ExecSQL;
|
||||
|
||||
AddLog_Thread('DB 완료 갱신 (Handshake 종료)');
|
||||
LogMessage('DB 반영 완료');
|
||||
end
|
||||
else
|
||||
begin
|
||||
AddLog_Thread('TCP/IP 제어 실패 (하드웨어 연결 확인)');
|
||||
LogMessage('LED 통신 실패');
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
FPollingTimer.Enabled := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.OnStatusSyncTimer(Sender: TObject);
|
||||
var
|
||||
SensorNo, DbLedPort: Integer;
|
||||
DbLedIp: string;
|
||||
PhysR, PhysY, PhysG: Integer;
|
||||
DbR, DbY, DbG: Integer;
|
||||
IpParts: TArray<string>;
|
||||
Success: Boolean;
|
||||
begin
|
||||
FStatusSyncTimer.Enabled := False;
|
||||
try
|
||||
if not DM.fdConnEtc.Connected then Exit;
|
||||
|
||||
DM.fdQryEtc.Close;
|
||||
DM.fdQryEtc.SQL.Text := 'SELECT sensor_no, value_ch1_statusID, value_ch2_statusID, value_ch3_statusID, led_ip, led_port FROM sensor_info WHERE sensor_typeid = 2';
|
||||
try
|
||||
DM.fdQryEtc.Open;
|
||||
except
|
||||
Exit;
|
||||
end;
|
||||
|
||||
while not DM.fdQryEtc.Eof do
|
||||
begin
|
||||
SensorNo := DM.fdQryEtc.FieldByName('sensor_no').AsInteger;
|
||||
DbG := DM.fdQryEtc.FieldByName('value_ch1_statusID').AsInteger;
|
||||
DbY := DM.fdQryEtc.FieldByName('value_ch2_statusID').AsInteger;
|
||||
DbR := DM.fdQryEtc.FieldByName('value_ch3_statusID').AsInteger;
|
||||
DbLedIp := DM.fdQryEtc.FieldByName('led_ip').AsString;
|
||||
DbLedPort := DM.fdQryEtc.FieldByName('led_port').AsInteger;
|
||||
if DbLedPort = 0 then DbLedPort := 20000;
|
||||
|
||||
IpParts := DbLedIp.Split(['.']);
|
||||
if Length(IpParts) = 4 then
|
||||
begin
|
||||
c_pIpadd[0] := StrToIntDef(IpParts[0], 192);
|
||||
c_pIpadd[1] := StrToIntDef(IpParts[1], 168);
|
||||
c_pIpadd[2] := StrToIntDef(IpParts[2], 200);
|
||||
c_pIpadd[3] := StrToIntDef(IpParts[3], 114);
|
||||
|
||||
c_pIdata[0] := 0; // READ mode
|
||||
Success := Tcp_Qu_RW(DbLedPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
PhysR := c_pIdata[2];
|
||||
PhysY := c_pIdata[3];
|
||||
PhysG := c_pIdata[4];
|
||||
|
||||
// 하드웨어 상태와 DB 상태가 다르면 양쪽(Target, Value) 모두 덮어씌움
|
||||
if (PhysR <> DbR) or (PhysY <> DbY) or (PhysG <> DbG) then
|
||||
begin
|
||||
DM.fdConnEtc.ExecSQL(
|
||||
'UPDATE sensor_info SET value_ch1_statusID=:g, value_ch2_statusID=:y, value_ch3_statusID=:r, target_ch1_statusID=:g2, target_ch2_statusID=:y2, target_ch3_statusID=:r2 WHERE sensor_no=:s',
|
||||
[PhysG, PhysY, PhysR, PhysG, PhysY, PhysR, SensorNo]
|
||||
);
|
||||
AddLog_Thread(Format('하드웨어 동기화 완료 (Sensor:%d, R:%d Y:%d G:%d)', [SensorNo, PhysR, PhysY, PhysG]));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
DM.fdQryEtc.Next;
|
||||
end;
|
||||
finally
|
||||
FStatusSyncTimer.Enabled := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
//---------------------------------------------------------
|
||||
// 기존 UI 매뉴얼 테스트 로직 (수동 테스트용 유지)
|
||||
//---------------------------------------------------------
|
||||
procedure TfrmMain.LogMessage(const Msg: string);
|
||||
begin
|
||||
lbStatus.Items.Insert(0, FormatDateTime('hh:nn:ss', Now) + ' ' + Msg);
|
||||
end;
|
||||
|
||||
function TfrmMain.SendCommand: Boolean;
|
||||
var
|
||||
iPort: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
|
||||
c_pIdata[1] := rgModel.ItemIndex;
|
||||
|
||||
Result := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Result then
|
||||
LogMessage('[Success send]')
|
||||
else
|
||||
LogMessage('[Send Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnLampClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
ColorIdx: Integer;
|
||||
Action: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[7] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
|
||||
if (Btn = btnRedOn) or (Btn = btnRedBlink) or (Btn = btnRedOff) then ColorIdx := 2
|
||||
else if (Btn = btnYellowOn) or (Btn = btnYellowBlink) or (Btn = btnYellowOff) then ColorIdx := 3
|
||||
else if (Btn = btnGreenOn) or (Btn = btnGreenBlink) or (Btn = btnGreenOff) then ColorIdx := 4
|
||||
else if (Btn = btnBlueOn) or (Btn = btnBlueBlink) or (Btn = btnBlueOff) then ColorIdx := 5
|
||||
else if (Btn = btnWhiteOn) or (Btn = btnWhiteBlink) or (Btn = btnWhiteOff) then ColorIdx := 6
|
||||
else Exit;
|
||||
|
||||
if Btn.Caption = 'ON' then Action := C_lampon
|
||||
else if Btn.Caption = 'ON/OFF' then Action := C_lampblink
|
||||
else Action := C_lampoff;
|
||||
|
||||
c_pIdata[ColorIdx] := Action;
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnSoundClick(Sender: TObject);
|
||||
var
|
||||
Btn: TButton;
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 2 to 6 do c_pIdata[i] := D_not;
|
||||
c_pIdata[0] := 1;
|
||||
|
||||
Btn := Sender as TButton;
|
||||
if Btn = btnSoundOff then c_pIdata[7] := 0
|
||||
else if Btn = btnSound1 then c_pIdata[7] := 1
|
||||
else if Btn = btnSound2 then c_pIdata[7] := 2
|
||||
else if Btn = btnSound3 then c_pIdata[7] := 3
|
||||
else if Btn = btnSound4 then c_pIdata[7] := 4
|
||||
else if Btn = btnSound5 then c_pIdata[7] := 5
|
||||
else c_pIdata[7] := D_not;
|
||||
|
||||
SendCommand;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnStatReadClick(Sender: TObject);
|
||||
var
|
||||
iPort: Integer;
|
||||
Success: Boolean;
|
||||
StatusStr: string;
|
||||
begin
|
||||
try
|
||||
c_pIpadd[0] := StrToIntDef(edtIP1.Text, 192);
|
||||
c_pIpadd[1] := StrToIntDef(edtIP2.Text, 168);
|
||||
c_pIpadd[2] := StrToIntDef(edtIP3.Text, 200);
|
||||
c_pIpadd[3] := StrToIntDef(edtIP4.Text, 114);
|
||||
iPort := StrToIntDef(edtPort.Text, 20000);
|
||||
c_pIdata[0] := 0;
|
||||
|
||||
Success := Tcp_Qu_RW(iPort, c_pIpadd[0], c_pIdata[0]);
|
||||
if Success then
|
||||
begin
|
||||
StatusStr := '[Read Success] ';
|
||||
if c_pIdata[2] = 0 then StatusStr := StatusStr + 'R-OFF ' else if c_pIdata[2] = 1 then StatusStr := StatusStr + 'R-ON ' else if c_pIdata[2] = 2 then StatusStr := StatusStr + 'R-BLINK ';
|
||||
if c_pIdata[3] = 0 then StatusStr := StatusStr + 'Y-OFF ' else if c_pIdata[3] = 1 then StatusStr := StatusStr + 'Y-ON ' else if c_pIdata[3] = 2 then StatusStr := StatusStr + 'Y-BLINK ';
|
||||
if c_pIdata[4] = 0 then StatusStr := StatusStr + 'G-OFF ' else if c_pIdata[4] = 1 then StatusStr := StatusStr + 'G-ON ' else if c_pIdata[4] = 2 then StatusStr := StatusStr + 'G-BLINK ';
|
||||
LogMessage(StatusStr);
|
||||
end
|
||||
else
|
||||
LogMessage('[Read Error]');
|
||||
except
|
||||
on E: Exception do
|
||||
LogMessage('[Error] ' + E.Message);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnResetClick(Sender: TObject);
|
||||
begin
|
||||
lbStatus.Clear;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.btnExitClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
||||
20
agents/delphi_nilm_agent/NilmMQTT_Agent.dpr
Normal file
20
agents/delphi_nilm_agent/NilmMQTT_Agent.dpr
Normal file
@ -0,0 +1,20 @@
|
||||
program NilmMQTT_Agent;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
uMain in 'uMain.pas' {fMain},
|
||||
U_DM in 'U_DM.pas' {DM: TDataModule},
|
||||
Vcl.Themes,
|
||||
Vcl.Styles,
|
||||
uLogManagerThread in 'uLogManagerThread.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
TStyleManager.TrySetStyle('Carbon');
|
||||
Application.CreateForm(TDM, DM);
|
||||
Application.CreateForm(TfMain, fMain);
|
||||
Application.Run;
|
||||
end.
|
||||
1176
agents/delphi_nilm_agent/NilmMQTT_Agent.dproj
Normal file
1176
agents/delphi_nilm_agent/NilmMQTT_Agent.dproj
Normal file
File diff suppressed because it is too large
Load Diff
13
agents/delphi_nilm_agent/NilmMQTT_Agent.dproj.local
Normal file
13
agents/delphi_nilm_agent/NilmMQTT_Agent.dproj.local
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<BorlandProject>
|
||||
<Transactions>
|
||||
<Transaction>1899-12-30 00:00:00.000.261,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.271,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.175,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.054,D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_nilm_agent\uMain.pas</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.054,D:\MyDoc\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_nilm_agent\uMain.dfm</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.013,D:\MyDoc\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_nilm_agent\NilmMQTT_Agent.dproj</Transaction>
|
||||
<Transaction>1899-12-30 00:00:00.000.996,=D:\MyDoc\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||
<Transaction>2026-07-22 16:38:15.876,=C:\Users\MyName\Desktop\antigravity\MMCL(Machine Monitoring Control for LLM)\agents\delphi_nilm_agent\uLogManagerThread.pas</Transaction>
|
||||
</Transactions>
|
||||
</BorlandProject>
|
||||
BIN
agents/delphi_nilm_agent/NilmMQTT_Agent.res
Normal file
BIN
agents/delphi_nilm_agent/NilmMQTT_Agent.res
Normal file
Binary file not shown.
753
agents/delphi_nilm_agent/UMQTTClient.pas
Normal file
753
agents/delphi_nilm_agent/UMQTTClient.pas
Normal file
@ -0,0 +1,753 @@
|
||||
unit UMQTTClient;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, System.SyncObjs, System.DateUtils,
|
||||
System.Generics.Collections,
|
||||
IdTCPClient, IdGlobal, IdExceptionCore, IdException, IdIOHandler;
|
||||
|
||||
type
|
||||
TMQTTMessageEvent = procedure(const ATopic, APayload: string) of object;
|
||||
TMQTTStatusEvent = procedure(AConnected: Boolean; const AErrorMsg: string) of object;
|
||||
|
||||
TMQTTRecvThread = class;
|
||||
|
||||
TMQTTClient = class
|
||||
private
|
||||
FHost: string;
|
||||
FPort: Word;
|
||||
FClientID: string;
|
||||
FUserName: string;
|
||||
FPassword: string;
|
||||
FTCPClient: TIdTCPClient;
|
||||
FRecvThread: TMQTTRecvThread;
|
||||
FOnMessage: TMQTTMessageEvent;
|
||||
FOnStatus: TMQTTStatusEvent;
|
||||
FConnected: Boolean;
|
||||
FSubscribeTopics: TStringList;
|
||||
FKeepAlive: Word;
|
||||
FPacketID: Word;
|
||||
FActive: Boolean;
|
||||
|
||||
FSendQueue: TList<TIdBytes>;
|
||||
FSendLock: TCriticalSection;
|
||||
|
||||
function NextPacketID: Word;
|
||||
function BuildConnectPacket: TIdBytes;
|
||||
function BuildSubscribePacket(const ATopic: string): TIdBytes;
|
||||
function BuildPingReqPacket: TIdBytes;
|
||||
function BuildDisconnectPacket: TIdBytes;
|
||||
function BuildPublishPacket(const ATopic, APayload: string): TIdBytes;
|
||||
function EncodeRemainingLength(ALength: Integer): TIdBytes;
|
||||
function BuildUnsubscribePacket(const ATopic: string): TIdBytes;
|
||||
procedure SetConnected(AValue: Boolean; const AErrorMsg: string = '');
|
||||
procedure FireMessage(const ATopic, APayload: string);
|
||||
procedure EnqueuePacket(const AData: TIdBytes);
|
||||
public
|
||||
constructor Create(const AHost: string; APort: Word; const AClientID: string = ''; const AUserName: string = ''; const APassword: string = '');
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure Connect;
|
||||
procedure Disconnect;
|
||||
procedure Subscribe(const ATopic: string);
|
||||
procedure Unsubscribe(const ATopic: string);
|
||||
procedure Publish(const ATopic, APayload: string);
|
||||
|
||||
property Host: string read FHost write FHost;
|
||||
property Port: Word read FPort write FPort;
|
||||
property UserName: string read FUserName write FUserName;
|
||||
property Password: string read FPassword write FPassword;
|
||||
property Connected: Boolean read FConnected;
|
||||
property OnMessage: TMQTTMessageEvent read FOnMessage write FOnMessage;
|
||||
property OnStatus: TMQTTStatusEvent read FOnStatus write FOnStatus;
|
||||
end;
|
||||
|
||||
TMQTTRecvThread = class(TThread)
|
||||
private
|
||||
FOwner: TMQTTClient;
|
||||
function ReadRemainingLength: Integer;
|
||||
procedure ProcessPublish(ARemainingLen: Integer);
|
||||
function FlushSendQueue: Boolean;
|
||||
protected
|
||||
procedure Execute; override;
|
||||
public
|
||||
constructor Create(AOwner: TMQTTClient);
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TMQTTClient }
|
||||
|
||||
constructor TMQTTClient.Create(const AHost: string; APort: Word; const AClientID: string; const AUserName: string; const APassword: string);
|
||||
begin
|
||||
inherited Create;
|
||||
FHost := AHost;
|
||||
FPort := APort;
|
||||
FUserName := AUserName;
|
||||
FPassword := APassword;
|
||||
|
||||
Randomize;
|
||||
if AClientID <> '' then
|
||||
FClientID := AClientID + IntToStr(Random(99999))
|
||||
else
|
||||
FClientID := 'Qsentech' + IntToStr(Random(99999));
|
||||
FKeepAlive := 60;
|
||||
FPacketID := 0;
|
||||
FConnected := False;
|
||||
FActive := False;
|
||||
FSubscribeTopics := TStringList.Create;
|
||||
FSubscribeTopics.Sorted := True;
|
||||
FSubscribeTopics.Duplicates := dupIgnore;
|
||||
|
||||
FSendQueue := TList<TIdBytes>.Create;
|
||||
FSendLock := TCriticalSection.Create;
|
||||
|
||||
FTCPClient := TIdTCPClient.Create(nil);
|
||||
FTCPClient.ConnectTimeout := 5000;
|
||||
// ReadTimeout: 읽기 대기 시간 (500ms 폴링 주기)
|
||||
FTCPClient.ReadTimeout := 500;
|
||||
end;
|
||||
|
||||
destructor TMQTTClient.Destroy;
|
||||
begin
|
||||
Disconnect;
|
||||
FTCPClient.Free;
|
||||
FSendQueue.Free;
|
||||
FSendLock.Free;
|
||||
FSubscribeTopics.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TMQTTClient.NextPacketID: Word;
|
||||
begin
|
||||
Inc(FPacketID);
|
||||
if FPacketID = 0 then
|
||||
FPacketID := 1;
|
||||
Result := FPacketID;
|
||||
end;
|
||||
|
||||
function TMQTTClient.EncodeRemainingLength(ALength: Integer): TIdBytes;
|
||||
var
|
||||
EncodedByte: Byte;
|
||||
Len: Integer;
|
||||
begin
|
||||
SetLength(Result, 0);
|
||||
Len := ALength;
|
||||
repeat
|
||||
EncodedByte := Len mod 128;
|
||||
Len := Len div 128;
|
||||
if Len > 0 then
|
||||
EncodedByte := EncodedByte or $80;
|
||||
SetLength(Result, Length(Result) + 1);
|
||||
Result[High(Result)] := EncodedByte;
|
||||
until Len = 0;
|
||||
end;
|
||||
{
|
||||
function TMQTTClient.BuildConnectPacket: TIdBytes;
|
||||
var
|
||||
VarHeader, Payload, Remaining, Packet: TIdBytes;
|
||||
ClientIDBytes: TIdBytes;
|
||||
RemLen: Integer;
|
||||
begin
|
||||
SetLength(VarHeader, 10);
|
||||
VarHeader[0] := 0;
|
||||
VarHeader[1] := 4;
|
||||
VarHeader[2] := Ord('M');
|
||||
VarHeader[3] := Ord('Q');
|
||||
VarHeader[4] := Ord('T');
|
||||
VarHeader[5] := Ord('T');
|
||||
VarHeader[6] := 4;
|
||||
VarHeader[7] := 2;
|
||||
VarHeader[8] := Hi(FKeepAlive);
|
||||
VarHeader[9] := Lo(FKeepAlive);
|
||||
|
||||
ClientIDBytes := ToBytes(FClientID, IndyTextEncoding_UTF8);
|
||||
SetLength(Payload, 2 + Length(ClientIDBytes));
|
||||
Payload[0] := Hi(Word(Length(ClientIDBytes)));
|
||||
Payload[1] := Lo(Word(Length(ClientIDBytes)));
|
||||
if Length(ClientIDBytes) > 0 then
|
||||
CopyTIdBytes(ClientIDBytes, 0, Payload, 2, Length(ClientIDBytes));
|
||||
|
||||
RemLen := Length(VarHeader) + Length(Payload);
|
||||
Remaining := EncodeRemainingLength(RemLen);
|
||||
|
||||
SetLength(Packet, 1 + Length(Remaining) + RemLen);
|
||||
Packet[0] := $10;
|
||||
CopyTIdBytes(Remaining, 0, Packet, 1, Length(Remaining));
|
||||
CopyTIdBytes(VarHeader, 0, Packet, 1 + Length(Remaining), Length(VarHeader));
|
||||
CopyTIdBytes(Payload, 0, Packet, 1 + Length(Remaining) + Length(VarHeader), Length(Payload));
|
||||
|
||||
Result := Packet;
|
||||
end;
|
||||
}
|
||||
function TMQTTClient.BuildConnectPacket: TIdBytes;
|
||||
var
|
||||
VarHeader, Payload, Remaining, Packet: TIdBytes;
|
||||
|
||||
ClientIDBytes: TIdBytes;
|
||||
UserBytes: TIdBytes;
|
||||
PassBytes: TIdBytes;
|
||||
|
||||
RemLen: Integer;
|
||||
P: Integer;
|
||||
ConnectFlags: Byte;
|
||||
|
||||
procedure AddMQTTString(var Dest: TIdBytes; const Data: TIdBytes);
|
||||
var
|
||||
OldLen: Integer;
|
||||
begin
|
||||
OldLen := Length(Dest);
|
||||
|
||||
SetLength(Dest, OldLen + 2 + Length(Data));
|
||||
|
||||
Dest[OldLen] := Hi(Word(Length(Data)));
|
||||
Dest[OldLen + 1] := Lo(Word(Length(Data)));
|
||||
|
||||
if Length(Data) > 0 then
|
||||
CopyTIdBytes(Data, 0, Dest, OldLen + 2, Length(Data));
|
||||
end;
|
||||
|
||||
begin
|
||||
// =========================
|
||||
// CONNECT FLAGS 생성
|
||||
// =========================
|
||||
|
||||
ConnectFlags := $02; // Clean Session
|
||||
|
||||
if FUserName <> '' then
|
||||
ConnectFlags := ConnectFlags or $80;
|
||||
|
||||
if FPassword <> '' then
|
||||
ConnectFlags := ConnectFlags or $40;
|
||||
|
||||
// =========================
|
||||
// Variable Header
|
||||
// =========================
|
||||
|
||||
SetLength(VarHeader, 10);
|
||||
|
||||
VarHeader[0] := 0;
|
||||
VarHeader[1] := 4;
|
||||
|
||||
VarHeader[2] := Ord('M');
|
||||
VarHeader[3] := Ord('Q');
|
||||
VarHeader[4] := Ord('T');
|
||||
VarHeader[5] := Ord('T');
|
||||
|
||||
VarHeader[6] := 4; // MQTT 3.1.1
|
||||
|
||||
VarHeader[7] := ConnectFlags;
|
||||
|
||||
VarHeader[8] := Hi(FKeepAlive);
|
||||
VarHeader[9] := Lo(FKeepAlive);
|
||||
|
||||
// =========================
|
||||
// Payload
|
||||
// =========================
|
||||
|
||||
SetLength(Payload, 0);
|
||||
|
||||
// Client ID
|
||||
ClientIDBytes := ToBytes(FClientID, IndyTextEncoding_UTF8);
|
||||
AddMQTTString(Payload, ClientIDBytes);
|
||||
|
||||
// Username
|
||||
if FUserName <> '' then
|
||||
begin
|
||||
UserBytes := ToBytes(FUserName, IndyTextEncoding_UTF8);
|
||||
AddMQTTString(Payload, UserBytes);
|
||||
end;
|
||||
|
||||
// Password
|
||||
if FPassword <> '' then
|
||||
begin
|
||||
PassBytes := ToBytes(FPassword, IndyTextEncoding_UTF8);
|
||||
AddMQTTString(Payload, PassBytes);
|
||||
end;
|
||||
|
||||
// =========================
|
||||
// Remaining Length
|
||||
// =========================
|
||||
|
||||
RemLen := Length(VarHeader) + Length(Payload);
|
||||
|
||||
Remaining := EncodeRemainingLength(RemLen);
|
||||
|
||||
// =========================
|
||||
// Fixed Header
|
||||
// =========================
|
||||
|
||||
SetLength(Packet, 1 + Length(Remaining) + RemLen);
|
||||
|
||||
Packet[0] := $10;
|
||||
|
||||
P := 1;
|
||||
|
||||
CopyTIdBytes(Remaining, 0, Packet, P, Length(Remaining));
|
||||
Inc(P, Length(Remaining));
|
||||
|
||||
CopyTIdBytes(VarHeader, 0, Packet, P, Length(VarHeader));
|
||||
Inc(P, Length(VarHeader));
|
||||
|
||||
CopyTIdBytes(Payload, 0, Packet, P, Length(Payload));
|
||||
|
||||
Result := Packet;
|
||||
end;
|
||||
|
||||
function TMQTTClient.BuildSubscribePacket(const ATopic: string): TIdBytes;
|
||||
var
|
||||
TopicBytes, VarHeader, Payload, Remaining, Packet: TIdBytes;
|
||||
PID: Word;
|
||||
RemLen: Integer;
|
||||
begin
|
||||
PID := NextPacketID;
|
||||
|
||||
SetLength(VarHeader, 2);
|
||||
VarHeader[0] := Hi(PID);
|
||||
VarHeader[1] := Lo(PID);
|
||||
|
||||
TopicBytes := ToBytes(ATopic, IndyTextEncoding_UTF8);
|
||||
SetLength(Payload, 2 + Length(TopicBytes) + 1);
|
||||
Payload[0] := Hi(Word(Length(TopicBytes)));
|
||||
Payload[1] := Lo(Word(Length(TopicBytes)));
|
||||
CopyTIdBytes(TopicBytes, 0, Payload, 2, Length(TopicBytes));
|
||||
Payload[2 + Length(TopicBytes)] := 0;
|
||||
|
||||
RemLen := Length(VarHeader) + Length(Payload);
|
||||
Remaining := EncodeRemainingLength(RemLen);
|
||||
|
||||
SetLength(Packet, 1 + Length(Remaining) + RemLen);
|
||||
Packet[0] := $82;
|
||||
CopyTIdBytes(Remaining, 0, Packet, 1, Length(Remaining));
|
||||
CopyTIdBytes(VarHeader, 0, Packet, 1 + Length(Remaining), Length(VarHeader));
|
||||
CopyTIdBytes(Payload, 0, Packet, 1 + Length(Remaining) + Length(VarHeader), Length(Payload));
|
||||
|
||||
Result := Packet;
|
||||
end;
|
||||
|
||||
function TMQTTClient.BuildUnsubscribePacket(const ATopic: string): TIdBytes;
|
||||
var
|
||||
TopicBytes, VarHeader, Payload, Remaining, Packet: TIdBytes;
|
||||
PID: Word;
|
||||
RemLen: Integer;
|
||||
begin
|
||||
PID := NextPacketID;
|
||||
|
||||
SetLength(VarHeader, 2);
|
||||
VarHeader[0] := Hi(PID);
|
||||
VarHeader[1] := Lo(PID);
|
||||
|
||||
TopicBytes := ToBytes(ATopic, IndyTextEncoding_UTF8);
|
||||
SetLength(Payload, 2 + Length(TopicBytes));
|
||||
Payload[0] := Hi(Word(Length(TopicBytes)));
|
||||
Payload[1] := Lo(Word(Length(TopicBytes)));
|
||||
CopyTIdBytes(TopicBytes, 0, Payload, 2, Length(TopicBytes));
|
||||
|
||||
RemLen := Length(VarHeader) + Length(Payload);
|
||||
Remaining := EncodeRemainingLength(RemLen);
|
||||
|
||||
SetLength(Packet, 1 + Length(Remaining) + RemLen);
|
||||
Packet[0] := $A2;
|
||||
CopyTIdBytes(Remaining, 0, Packet, 1, Length(Remaining));
|
||||
CopyTIdBytes(VarHeader, 0, Packet, 1 + Length(Remaining), Length(VarHeader));
|
||||
CopyTIdBytes(Payload, 0, Packet, 1 + Length(Remaining) + Length(VarHeader), Length(Payload));
|
||||
|
||||
Result := Packet;
|
||||
end;
|
||||
|
||||
function TMQTTClient.BuildPingReqPacket: TIdBytes;
|
||||
begin
|
||||
SetLength(Result, 2);
|
||||
Result[0] := $C0;
|
||||
Result[1] := $00;
|
||||
end;
|
||||
|
||||
function TMQTTClient.BuildDisconnectPacket: TIdBytes;
|
||||
begin
|
||||
SetLength(Result, 2);
|
||||
Result[0] := $E0;
|
||||
Result[1] := $00;
|
||||
end;
|
||||
|
||||
function TMQTTClient.BuildPublishPacket(const ATopic, APayload: string): TIdBytes;
|
||||
var
|
||||
TopicBytes, PayloadBytes, Remaining, Packet: TIdBytes;
|
||||
RemLen, Offset: Integer;
|
||||
begin
|
||||
TopicBytes := ToBytes(ATopic, IndyTextEncoding_UTF8);
|
||||
PayloadBytes := ToBytes(APayload, IndyTextEncoding_UTF8);
|
||||
|
||||
RemLen := 2 + Length(TopicBytes) + Length(PayloadBytes);
|
||||
Remaining := EncodeRemainingLength(RemLen);
|
||||
|
||||
SetLength(Packet, 1 + Length(Remaining) + RemLen);
|
||||
Packet[0] := $30;
|
||||
Offset := 1;
|
||||
CopyTIdBytes(Remaining, 0, Packet, Offset, Length(Remaining));
|
||||
Inc(Offset, Length(Remaining));
|
||||
Packet[Offset] := Hi(Word(Length(TopicBytes)));
|
||||
Packet[Offset + 1] := Lo(Word(Length(TopicBytes)));
|
||||
Inc(Offset, 2);
|
||||
CopyTIdBytes(TopicBytes, 0, Packet, Offset, Length(TopicBytes));
|
||||
Inc(Offset, Length(TopicBytes));
|
||||
if Length(PayloadBytes) > 0 then
|
||||
CopyTIdBytes(PayloadBytes, 0, Packet, Offset, Length(PayloadBytes));
|
||||
|
||||
Result := Packet;
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.EnqueuePacket(const AData: TIdBytes);
|
||||
begin
|
||||
FSendLock.Enter;
|
||||
try
|
||||
FSendQueue.Add(AData);
|
||||
finally
|
||||
FSendLock.Leave;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.SetConnected(AValue: Boolean; const AErrorMsg: string = '');
|
||||
var
|
||||
LStatusEvent: TMQTTStatusEvent;
|
||||
begin
|
||||
// 상태가 실제로 변경될 때만 이벤트 발생 (UI 플리커 방지)
|
||||
// if FConnected = AValue then Exit; // 에러 로깅을 위해 매번 발생시키도록 수정
|
||||
|
||||
FConnected := AValue;
|
||||
LStatusEvent := FOnStatus;
|
||||
if Assigned(LStatusEvent) then
|
||||
begin
|
||||
TThread.Queue(nil,
|
||||
procedure
|
||||
begin
|
||||
if Assigned(LStatusEvent) then
|
||||
LStatusEvent(AValue, AErrorMsg);
|
||||
end);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.FireMessage(const ATopic, APayload: string);
|
||||
var
|
||||
LTopic, LPayload: string;
|
||||
LMessageEvent: TMQTTMessageEvent;
|
||||
begin
|
||||
LTopic := ATopic;
|
||||
LPayload := APayload;
|
||||
LMessageEvent := FOnMessage;
|
||||
if Assigned(LMessageEvent) then
|
||||
begin
|
||||
TThread.Queue(nil,
|
||||
procedure
|
||||
begin
|
||||
if Assigned(LMessageEvent) then
|
||||
LMessageEvent(LTopic, LPayload);
|
||||
end);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.Connect;
|
||||
begin
|
||||
if FActive then
|
||||
Exit;
|
||||
FActive := True;
|
||||
FRecvThread := TMQTTRecvThread.Create(Self);
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.Disconnect;
|
||||
begin
|
||||
FActive := False;
|
||||
|
||||
if FRecvThread <> nil then
|
||||
begin
|
||||
FRecvThread.Terminate;
|
||||
FRecvThread.WaitFor;
|
||||
FreeAndNil(FRecvThread);
|
||||
end;
|
||||
|
||||
FConnected := False;
|
||||
if Assigned(FOnStatus) then
|
||||
FOnStatus(False, 'User Disconnected');
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.Subscribe(const ATopic: string);
|
||||
begin
|
||||
if FSubscribeTopics.IndexOf(ATopic) < 0 then
|
||||
FSubscribeTopics.Add(ATopic);
|
||||
|
||||
if FConnected then
|
||||
EnqueuePacket(BuildSubscribePacket(ATopic));
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.Unsubscribe(const ATopic: string);
|
||||
var
|
||||
Idx: Integer;
|
||||
begin
|
||||
Idx := FSubscribeTopics.IndexOf(ATopic);
|
||||
if Idx >= 0 then
|
||||
FSubscribeTopics.Delete(Idx);
|
||||
|
||||
if FConnected then
|
||||
EnqueuePacket(BuildUnsubscribePacket(ATopic));
|
||||
end;
|
||||
|
||||
procedure TMQTTClient.Publish(const ATopic, APayload: string);
|
||||
begin
|
||||
if FConnected then
|
||||
EnqueuePacket(BuildPublishPacket(ATopic, APayload));
|
||||
end;
|
||||
|
||||
{ TMQTTRecvThread }
|
||||
|
||||
constructor TMQTTRecvThread.Create(AOwner: TMQTTClient);
|
||||
begin
|
||||
inherited Create(False);
|
||||
FreeOnTerminate := False;
|
||||
FOwner := AOwner;
|
||||
end;
|
||||
|
||||
function TMQTTRecvThread.ReadRemainingLength: Integer;
|
||||
var
|
||||
Multiplier: Integer;
|
||||
EncodedByte: Byte;
|
||||
begin
|
||||
Result := 0;
|
||||
Multiplier := 1;
|
||||
repeat
|
||||
EncodedByte := FOwner.FTCPClient.IOHandler.ReadByte;
|
||||
Result := Result + (EncodedByte and $7F) * Multiplier;
|
||||
Multiplier := Multiplier * 128;
|
||||
until (EncodedByte and $80) = 0;
|
||||
end;
|
||||
|
||||
procedure TMQTTRecvThread.ProcessPublish(ARemainingLen: Integer);
|
||||
var
|
||||
TopicLen: Word;
|
||||
TopicBytes, PayloadBytes: TIdBytes;
|
||||
Topic, Payload: string;
|
||||
PayloadLen: Integer;
|
||||
begin
|
||||
TopicLen := FOwner.FTCPClient.IOHandler.ReadByte shl 8;
|
||||
TopicLen := TopicLen or FOwner.FTCPClient.IOHandler.ReadByte;
|
||||
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(TopicBytes, TopicLen);
|
||||
Topic := BytesToString(TopicBytes, IndyTextEncoding_UTF8);
|
||||
|
||||
PayloadLen := ARemainingLen - 2 - TopicLen;
|
||||
if PayloadLen > 0 then
|
||||
begin
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(PayloadBytes, PayloadLen);
|
||||
Payload := BytesToString(PayloadBytes, IndyTextEncoding_UTF8);
|
||||
end
|
||||
else
|
||||
Payload := '';
|
||||
|
||||
FOwner.FireMessage(Topic, Payload);
|
||||
end;
|
||||
|
||||
function TMQTTRecvThread.FlushSendQueue: Boolean;
|
||||
var
|
||||
Packets: TList<TIdBytes>;
|
||||
Pkt: TIdBytes;
|
||||
begin
|
||||
Result := True;
|
||||
Packets := nil;
|
||||
|
||||
FOwner.FSendLock.Enter;
|
||||
try
|
||||
if FOwner.FSendQueue.Count > 0 then
|
||||
begin
|
||||
Packets := TList<TIdBytes>.Create;
|
||||
Packets.AddRange(FOwner.FSendQueue);
|
||||
FOwner.FSendQueue.Clear;
|
||||
end;
|
||||
finally
|
||||
FOwner.FSendLock.Leave;
|
||||
end;
|
||||
|
||||
if Packets <> nil then
|
||||
begin
|
||||
try
|
||||
for Pkt in Packets do
|
||||
begin
|
||||
try
|
||||
FOwner.FTCPClient.IOHandler.Write(Pkt);
|
||||
except
|
||||
Result := False;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
Packets.Free;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMQTTRecvThread.Execute;
|
||||
var
|
||||
ConnAckBuf: TIdBytes;
|
||||
PacketType: Byte;
|
||||
RemainingLen: Integer;
|
||||
DiscardBuf: TIdBytes;
|
||||
LastPingTime: TDateTime;
|
||||
PingIntervalSec: Integer;
|
||||
begin
|
||||
PingIntervalSec := FOwner.FKeepAlive div 2;
|
||||
if PingIntervalSec < 10 then
|
||||
PingIntervalSec := 10;
|
||||
|
||||
while not Terminated do
|
||||
begin
|
||||
// === Connection Phase ===
|
||||
try
|
||||
FOwner.FTCPClient.Host := FOwner.FHost;
|
||||
FOwner.FTCPClient.Port := FOwner.FPort;
|
||||
FOwner.FTCPClient.Connect;
|
||||
|
||||
FOwner.FTCPClient.IOHandler.ReadTimeout := 500; // 읽기 타임아웃 재설정
|
||||
|
||||
// CONNECT 패킷 전송
|
||||
FOwner.FTCPClient.IOHandler.Write(FOwner.BuildConnectPacket);
|
||||
|
||||
// 무한대기 읽기로 CONNACK 수신 (접속시에만)
|
||||
FOwner.FTCPClient.IOHandler.ReadTimeout := 500;
|
||||
var WaitCount := 0;
|
||||
while (WaitCount < 20) and not Terminated do
|
||||
begin
|
||||
FOwner.FTCPClient.IOHandler.CheckForDataOnSource(500);
|
||||
if not FOwner.FTCPClient.IOHandler.InputBufferIsEmpty then
|
||||
Break;
|
||||
Inc(WaitCount);
|
||||
end;
|
||||
|
||||
if Terminated then Break;
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(ConnAckBuf, 4, False);
|
||||
|
||||
if (Length(ConnAckBuf) >= 4) and (ConnAckBuf[0] = $20) and (ConnAckBuf[3] = $00) then
|
||||
begin
|
||||
FOwner.SetConnected(True, '');
|
||||
LastPingTime := Now;
|
||||
|
||||
// Subscribe all registered topics
|
||||
for var I := 0 to FOwner.FSubscribeTopics.Count - 1 do
|
||||
begin
|
||||
FOwner.FTCPClient.IOHandler.Write(FOwner.BuildSubscribePacket(FOwner.FSubscribeTopics[I]));
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
try FOwner.FTCPClient.Disconnect; except end;
|
||||
if Length(ConnAckBuf) >= 4 then
|
||||
FOwner.SetConnected(False, '서버 접속 거부됨 (Return Code: ' + IntToStr(ConnAckBuf[3]) + ')')
|
||||
else
|
||||
FOwner.SetConnected(False, '서버 응답 없음 (CONNACK 타임아웃)');
|
||||
if not Terminated then Sleep(5000);
|
||||
Continue;
|
||||
end;
|
||||
except
|
||||
on E: Exception do
|
||||
begin
|
||||
FOwner.SetConnected(False, '소켓 통신 에러: ' + E.Message);
|
||||
try FOwner.FTCPClient.Disconnect; except end;
|
||||
if not Terminated then Sleep(5000);
|
||||
Continue;
|
||||
end;
|
||||
end;
|
||||
|
||||
// === Receive Loop ===
|
||||
while not Terminated do
|
||||
begin
|
||||
// 1) 송신 큐 flush
|
||||
if not FlushSendQueue then
|
||||
Break; // 전송 실패 = 연결 끊김
|
||||
|
||||
// 2) PINGREQ 주기적 전송
|
||||
if SecondsBetween(Now, LastPingTime) >= PingIntervalSec then
|
||||
begin
|
||||
LastPingTime := Now;
|
||||
try
|
||||
FOwner.FTCPClient.IOHandler.Write(FOwner.BuildPingReqPacket);
|
||||
except
|
||||
Break; // 전송 실패 = 연결 끊김
|
||||
end;
|
||||
end;
|
||||
|
||||
// 3) 소켓에서 데이터 읽기 시도
|
||||
if FOwner.FTCPClient.IOHandler.InputBufferIsEmpty then
|
||||
begin
|
||||
FOwner.FTCPClient.IOHandler.CheckForDataOnSource(500);
|
||||
if FOwner.FTCPClient.IOHandler.InputBufferIsEmpty then
|
||||
Continue;
|
||||
end;
|
||||
|
||||
try
|
||||
PacketType := FOwner.FTCPClient.IOHandler.ReadByte;
|
||||
except
|
||||
on E: EIdConnClosedGracefully do
|
||||
begin
|
||||
Break;
|
||||
end;
|
||||
on E: EIdException do
|
||||
begin
|
||||
Break;
|
||||
end;
|
||||
on E: Exception do
|
||||
begin
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
|
||||
// 4) 패킷 나머지 읽기 (데이터가 있으므로 타임아웃 가능성 낮음)
|
||||
try
|
||||
RemainingLen := ReadRemainingLength;
|
||||
|
||||
case (PacketType and $F0) of
|
||||
$30: // PUBLISH
|
||||
ProcessPublish(RemainingLen);
|
||||
|
||||
$90: // SUBACK
|
||||
begin
|
||||
if RemainingLen > 0 then
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(DiscardBuf, RemainingLen);
|
||||
end;
|
||||
|
||||
$D0: // PINGRESP
|
||||
begin
|
||||
// Keep-Alive 확인 완료
|
||||
if RemainingLen > 0 then
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(DiscardBuf, RemainingLen);
|
||||
end;
|
||||
|
||||
else
|
||||
// 알 수 없는 패킷 — 남은 바이트 소비
|
||||
if RemainingLen > 0 then
|
||||
FOwner.FTCPClient.IOHandler.ReadBytes(DiscardBuf, RemainingLen);
|
||||
end;
|
||||
except
|
||||
// 패킷 파싱 중 오류 = 연결 끊김
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
|
||||
// === 연결 끊김 처리 ===
|
||||
FOwner.SetConnected(False, '네트워크 단절');
|
||||
if not Terminated then
|
||||
begin
|
||||
try FOwner.FTCPClient.Disconnect; except end;
|
||||
for var I := 1 to 50 do
|
||||
begin
|
||||
if Terminated then Break;
|
||||
Sleep(100);
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
try
|
||||
if FOwner.FTCPClient.Connected and (FOwner.FTCPClient.IOHandler <> nil) then
|
||||
FOwner.FTCPClient.IOHandler.Write(FOwner.BuildDisconnectPacket);
|
||||
except end;
|
||||
try FOwner.FTCPClient.Disconnect; except end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
36
agents/delphi_nilm_agent/U_DM.dfm
Normal file
36
agents/delphi_nilm_agent/U_DM.dfm
Normal file
@ -0,0 +1,36 @@
|
||||
object DM: TDM
|
||||
Height = 274
|
||||
Width = 693
|
||||
object fdConnNilm: TFDConnection
|
||||
Left = 100
|
||||
Top = 56
|
||||
end
|
||||
object fdQryNilm: TFDQuery
|
||||
Connection = fdConnNilm
|
||||
Left = 100
|
||||
Top = 132
|
||||
end
|
||||
object FDPhysPgDriverLink: TFDPhysPgDriverLink
|
||||
Left = 520
|
||||
Top = 56
|
||||
end
|
||||
object FDGUIxWaitCursor: TFDGUIxWaitCursor
|
||||
Provider = 'Forms'
|
||||
ScreenCursor = gcrNone
|
||||
Left = 520
|
||||
Top = 132
|
||||
end
|
||||
object fdConnEtc: TFDConnection
|
||||
Left = 300
|
||||
Top = 56
|
||||
end
|
||||
object fdQryEtc: TFDQuery
|
||||
Connection = fdConnEtc
|
||||
Left = 300
|
||||
Top = 132
|
||||
end
|
||||
object FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink
|
||||
Left = 520
|
||||
Top = 208
|
||||
end
|
||||
end
|
||||
38
agents/delphi_nilm_agent/U_DM.pas
Normal file
38
agents/delphi_nilm_agent/U_DM.pas
Normal file
@ -0,0 +1,38 @@
|
||||
unit U_DM;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option,
|
||||
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
|
||||
FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param,
|
||||
FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.PGDef,
|
||||
FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG, Data.DB,
|
||||
FireDAC.Comp.DataSet, FireDAC.Comp.Client, FireDAC.Phys.MySQLDef,
|
||||
FireDAC.Phys.MySQL;
|
||||
|
||||
type
|
||||
TDM = class(TDataModule)
|
||||
fdConnNilm: TFDConnection;
|
||||
fdQryNilm: TFDQuery;
|
||||
FDPhysPgDriverLink: TFDPhysPgDriverLink;
|
||||
FDGUIxWaitCursor: TFDGUIxWaitCursor;
|
||||
fdConnEtc: TFDConnection;
|
||||
fdQryEtc: TFDQuery;
|
||||
FDPhysMySQLDriverLink1: TFDPhysMySQLDriverLink;
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
DM: TDM;
|
||||
|
||||
implementation
|
||||
|
||||
{%CLASSGROUP 'Vcl.Controls.TControl'}
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
end.
|
||||
@ -0,0 +1,45 @@
|
||||
# NILM Agent MQTT 구독 및 데이터 적재 자동화 계획
|
||||
|
||||
NILM Agent가 시작될 때 데이터베이스에서 NILM 센서들의 MQTT 토픽 정보를 읽어와 자동으로 구독(Subscribe)하고, 메시지 수신 시 매칭되는 센서 번호로 DB에 저장하도록 구현하는 계획입니다.
|
||||
|
||||
## User Review Required
|
||||
|
||||
> [!WARNING]
|
||||
> 현재 MariaDB의 `sensor_info` 테이블에는 MQTT 토픽을 저장하는 컬럼이 없습니다. (과거 설계인 `schema.sql`에도 없음)
|
||||
> 따라서 `sensor_info` 테이블에 `mqtt_topic` 이라는 컬럼을 추가하는 DB 마이그레이션이 먼저 필요합니다. 이 컬럼을 추가해도 괜찮으신지 확인 부탁드립니다.
|
||||
|
||||
## Proposed Changes
|
||||
|
||||
### 1. Database (MariaDB)
|
||||
`sensor_info` 테이블에 MQTT 토픽을 저장할 수 있는 컬럼을 추가합니다.
|
||||
```sql
|
||||
ALTER TABLE sensor_info ADD COLUMN mqtt_topic VARCHAR(100) NULL AFTER _desc;
|
||||
```
|
||||
*테스트를 위해 기존 센서(101번)에 임시 토픽(예: `nilm/sensor1`)을 부여할 예정입니다.*
|
||||
|
||||
### 2. Delphi Agent (`agents/delphi_nilm_agent/uMain.pas`)
|
||||
|
||||
#### [MODIFY] uMain.pas
|
||||
* **멤버 변수 추가**:
|
||||
* `FClient: TMQTTClient;` 추가 및 `UMQTTClient` uses 절 포함.
|
||||
* 토픽과 센서 번호를 매핑하기 위한 `FTopicSensorMap: TDictionary<string, Integer>;` 추가.
|
||||
* **`btnStartClick` 로직 변경**:
|
||||
1. DB 연동 (`SetupDatabase`)
|
||||
2. `sensor_info` 테이블에서 `sensor_typeid = 1` 이고 `mqtt_topic`이 있는 센서 번호(sensor_no)와 토픽 조회.
|
||||
3. 조회된 정보를 `FTopicSensorMap`에 저장.
|
||||
4. `TMQTTClient` 객체를 생성하고 MQTT 브로커(host, port)에 연결.
|
||||
5. 맵에 저장된 모든 토픽들에 대해 `Subscribe` 명령 수행.
|
||||
* **`OnMqttMessageReceived` 로직 변경**:
|
||||
* 기존에 하드코딩된 `101` 대신, 수신된 `Topic`을 `FTopicSensorMap`에서 찾아 해당하는 실제 `sensor_no`로 `InsertNilmData` 호출.
|
||||
* **`btnStopClick` 및 Form 닫기 처리**:
|
||||
* `FClient.Disconnect;`, 맵 객체(`FTopicSensorMap`) 및 클라이언트 해제 로직 추가로 메모리 누수 방지.
|
||||
|
||||
## Verification Plan
|
||||
|
||||
### Automated/Manual Verification
|
||||
1. 파이썬 스크립트 등을 통해 MySQL에 접속하여 `sensor_info` 테이블에 `mqtt_topic` 컬럼이 추가되었는지 확인.
|
||||
2. 101번 센서에 테스트용 토픽 업데이트 (`UPDATE sensor_info SET mqtt_topic = 'test/nilm/101' WHERE sensor_no = 101;`).
|
||||
3. 델파이 IDE에서 `NilmMQTT_Agent` 프로젝트를 열고 컴파일 후 실행.
|
||||
4. "Start Agent" 버튼 클릭 시, 콘솔(Memo) 창에 MQTT 접속 및 해당 토픽 구독 성공 메시지가 뜨는지 확인.
|
||||
5. 임시 MQTT 클라이언트(MQTT.fx 등)로 `test/nilm/101` 토픽에 JSON 데이터를 Publish.
|
||||
6. DB(`sensor_history_log` 및 `sensor_info`)에 값이 정상적으로 INSERT/UPDATE 되는지 확인.
|
||||
@ -0,0 +1,28 @@
|
||||
# NILM Agent 다중 토픽 DB 연동 지원
|
||||
|
||||
델파이 NILM Agent(전력 모니터링 에이전트)가 이제 데이터베이스와 완벽하게 연동되어, 하드코딩 없이 동적으로 여러 대의 센서 데이터를 동시에 수집할 수 있게 되었습니다!
|
||||
|
||||
## 주요 변경 사항 요약
|
||||
|
||||
1. **DB 기반 동적 구독 (`uMain.pas` / `btnStartClick`)**:
|
||||
과거처럼 에이전트 소스코드에 `101번` 센서라고 못을 박아두지 않습니다.
|
||||
에이전트 시작(Start) 시점에 DB(`sensor_info`)를 스캔하여 NILM 장비(`sensor_typeid=1`)들의 `mqtt_topic`을 모조리 가져온 다음, **존재하는 모든 토픽을 자동으로 일괄 구독(Subscribe)** 하도록 수정했습니다.
|
||||
|
||||
2. **메시지 매핑 및 자동 분류 (`OnMqttMessageReceived`)**:
|
||||
메시지가 쏟아져 들어와도 델파이 내부에 구축된 맵핑 사전(`TDictionary`)을 통해 **"이 토픽은 101번 장비꺼, 저 토픽은 102번 장비꺼"** 라고 0.001초만에 찾아내어 각각 알맞은 `sensor_no`로 DB에 저장(INSERT/UPDATE)합니다.
|
||||
|
||||
3. **안전한 메모리 관리 (`btnStopClick`)**:
|
||||
에이전트를 중지(Stop)할 때 단순히 소켓만 끊는 것이 아니라, MQTT 객체를 완전히 메모리에서 제거하여 프로그램이 오래 켜져 있어도 버그나 램 누수가 없도록 클린업 로직을 추가했습니다.
|
||||
|
||||
## 확인 및 테스트 방법
|
||||
|
||||
> [!TIP]
|
||||
> 델파이 소스코드가 변경되었으므로, **반드시 델파이 IDE에서 `NilmMQTT_Agent.dpr` 프로젝트를 재빌드(Compile) 후 다시 실행**해 주셔야 합니다.
|
||||
|
||||
1. **DB 사전 작업**:
|
||||
사용하시는 DB 툴(HeidiSQL 등)에서 `sensor_info` 테이블을 열어 `mqtt_topic` 컬럼에 `test/nilm/101` 같은 토픽을 입력해 줍니다.
|
||||
2. **에이전트 실행**: 델파이에서 새 코드로 에이전트를 실행하고 **[Start Agent]** 버튼을 누릅니다.
|
||||
- 로그창에 "DB에서 X개의 토픽 매핑 정보를 로드했습니다."와 "구독 토픽 추가: test/nilm/101" 메시지가 뜨는지 확인합니다.
|
||||
3. **데이터 수신 테스트**:
|
||||
- 외부 MQTT 테스트 툴(MQTT.fx 또는 mqtt-spy)을 이용해 해당 토픽으로 JSON 데이터를 발송해 봅니다.
|
||||
- 에이전트가 정상적으로 수신하여 MariaDB에 값을 채워넣는지 확인합니다!
|
||||
@ -0,0 +1,55 @@
|
||||
# AI 기반 실시간 설비 상태 모니터링 및 LED 제어 기획안
|
||||
|
||||
이 기획안은 NILM(전력 계측) 에이전트가 수집하는 실시간 전기 데이터를 LLM으로 분석하여 설비의 가동/미가동/에러 상태를 판별하고, 그 결과에 따라 경광등(LED)을 자동 제어하는 기능에 대한 설계입니다.
|
||||
|
||||
## 🚨 User Review Required (중요 고려사항)
|
||||
LLM(Mistral)은 텍스트 분석 및 추론에 특화되어 있으나, 응답을 생성하는 데 시간(수 초~수십 초)이 소요되며 시스템 리소스를 많이 차지합니다.
|
||||
NILM 데이터가 1초 단위로 들어오는데 **매초 LLM에 질의하는 것은 성능상 불가능**합니다. 따라서 데이터를 어떻게 모아서 LLM에 전달할 것인지에 대한 설계가 가장 중요합니다.
|
||||
|
||||
## ❓ Open Questions (결정 필요 사항)
|
||||
1. **LLM 질의 주기 및 조건**:
|
||||
- 일정 시간마다 질의? (예: 1분마다 평균값을 계산하여 질의)
|
||||
- 변화량 기반 질의? (예: 전력량이 이전 대비 20% 이상 급변했을 때만 질의)
|
||||
- *(추천)* 전력량의 유의미한 변동(예: 1kW 이상 변동)이 발생했을 때만 백엔드로 전송하여 LLM 분석을 요청하는 것이 효율적입니다.
|
||||
2. **기준값(Threshold) 제공 방식**:
|
||||
- LLM이 에러나 가동 상태를 판단하려면 기준점이 필요합니다. (예: 대기전력 100W, 정상가동 2000W)
|
||||
- DB에 저장된 `nilm_init_value`(초기 기준값)를 LLM 프롬프트에 같이 제공하여 스스로 비교 판단하게 할까요?
|
||||
3. **LED 제어 주체**:
|
||||
- 기존에 설계된 방식처럼, LLM 분석 완료 후 백엔드가 DB의 **`target_status`** 만 변경해두면, 기존 경광등 에어전트(또는 현재 에이전트)가 이를 감지하여 LED 색상을 바꾸는(Handshake) 방식을 유지하는 것이 좋겠습니다. 동의하시나요?
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Proposed Changes (제안하는 시스템 흐름)
|
||||
|
||||
### 1. 흐름도 (Architecture Flow)
|
||||
1. **NILM 데이터 수집**: 델파이 NILM Agent가 센서로부터 데이터를 수신.
|
||||
2. **상태 변경 감지 (델파이)**: 수신된 전력값이 기존 상태(이전 판단 시점)와 비교하여 큰 폭의 변동이 있을 경우, 백엔드 API로 데이터 전송.
|
||||
3. **상태 분석 (Python FastAPI + Mistral)**: // Ollama+LLm 으로 변경
|
||||
- 백엔드는 "현재 전력: 150W, 정상 가동 기준: 2000W. 현재 상태를 '가동(GREEN)', '미가동(YELLOW)', '에러(RED)' 중 하나로 판별하라"는 프롬프트를 생성하여 LLM에 질의.
|
||||
4. **목표 상태 갱신 (DB)**: LLM이 "YELLOW"라고 답변하면, 백엔드가 `sensor_info`의 해당 설비 `target_ch*_statusID`를 YELLOW 상태로 업데이트.
|
||||
5. **LED 제어 적용**: LED 제어 에이전트가 목표 상태를 감지하고 실제 하드웨어 경광등 색상을 변경.
|
||||
|
||||
### 2. 컴포넌트별 상세 수정 계획
|
||||
|
||||
#### [MODIFY] 백엔드 API (`backend/main.py`)
|
||||
- **신규 API 추가**: `POST /api/analyze_power`
|
||||
- **Request**: `{ "machine_id": "dev1", "voltage": 220, "current": 0.6, "power": 132 }`
|
||||
- **로직**:
|
||||
1. DB에서 해당 설비의 `nilm_init_value` (정상 가동 기준 전력) 조회.
|
||||
2. Mistral LLM 프롬프트 구성 및 추론 요청.
|
||||
3. LLM 결과(RED/YELLOW/GREEN) 파싱 후 `sensor_info`의 `target_status` 업데이트 및 `event_log` 에 로그 기록.
|
||||
4. Response 반환 (`{"reply": "[AI 판단] 미가동 상태로 전환되었습니다. (YELLOW)"}`)
|
||||
|
||||
#### [MODIFY] NILM 에이전트 (`agents/delphi_nilm_agent/uMain.pas`)
|
||||
- **HTTP 클라이언트 모듈 추가**: `TNetHTTPClient` 또는 `TIdHTTP` 컴포넌트를 사용하여 REST API 호출 기능 추가.
|
||||
- **분석 요청 로직 (Threshold Logic)**:
|
||||
- 매번 들어오는 데이터를 전부 백엔드에 쏘지 않도록 필터링 로직 구현.
|
||||
- 예: 최근 5초 평균값을 구한 뒤, 이전 상태의 전력값과 비교하여 오차범위(예: ±10%)를 벗어나는 급격한 변화가 감지될 때만 `/api/analyze_power` API를 비동기(Thread)로 호출.
|
||||
- UI에 `[AI 상태 분석 중...]` 로그 출력 추가.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Verification Plan (검증 계획)
|
||||
1. **임계값 테스트**: NILM 센서에서 임의로 전류 값을 0으로 떨어뜨리거나, 비정상적으로 높은 값을 보냈을 때 델파이 에이전트가 이를 감지하고 API를 호출하는지 확인.
|
||||
2. **LLM 추론 테스트**: FastAPI 백엔드 단독으로 전력 데이터를 넣었을 때 Mistral 모델이 RED, YELLOW, GREEN 중 하나를 정확히 내뱉는지 프롬프트 튜닝 및 확인.
|
||||
3. **End-to-End 동작**: NILM 데이터 수신 -> LLM 추론 -> DB 갱신 -> 로그 기록의 전체 사이클 확인.
|
||||
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libcrypto-1_1.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libcrypto-1_1.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libiconv-2.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libiconv-2.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libintl-8.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libintl-8.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libpq-10.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libpq-10.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libssl-1_1.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_PG/libssl-1_1.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libeay32.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libeay32.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libiconv-2.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libiconv-2.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libintl-8.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libintl-8.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libmysql.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libmysql.dll
Normal file
Binary file not shown.
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libpq.dll
Normal file
BIN
agents/delphi_nilm_agent/Win32/Debug/DLL_mysql/libpq.dll
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user