Files
HC900-Crawler/scripts/analysis/C-8111_tempref.json
windpacer 7409fabc58 컬럼명칭 통일 C-xxxxx + SIGPIPE 대응 + SteamAdvisor/FF 개선
=== 컬럼명칭 통일 (c{prefix} → C-{prefix}11) ===
Python 분석스크립트: data pkl 경로  →
gen_temp_profiles: tempref 파일명  →
SteamAdvisorController: TagsFor() 숫자서픽스 → 풀컬럼키(C-6111), ToSuffix() 변환
steam.js: ST_TEMP_COLS ['61',...] → ['C-6111',...], selectbox defaultColumn
appsettings.json: Columns 키 c61/c62/... → C-6111/C-6211/..., DefaultColumn c6111→C-6111
run_column.py: 추출/분석시 col_key = f"C-{{prefix}}11"
C-{x}11_{model,tempref}.json: 신규 명칭 기준 기준프로파일/모델 7컬럼분

=== SteamAdvisor 수정 ===
SteamModel: [JsonPropertyName] 매핑(snake_case → PascalCase 역직렬화)
예외처리: LinearCoeffs.Count < 3 방어코드
steam.js: catch(_) {} → 에러메시지 표시, missing_tags 응답처리

=== Feedforward Controller 개선 ===
ff.js: 상승/하강 양방향 램프 confirm, 방향뱃지(↑↓), Normal 모드 표시
FeedforwardController: 업램프 단독제한 제거(양방향), tcReturnTcTarget/Band 노출

=== DB ===
Hc900DbContext: realtime_table_tagname_key 레거시 UNIQUE 제약/인덱스 DROP 로직
Hc900Controllers: ToDictionaryAsync → GroupBy 변환 (중복 tagname 대응)

=== SIGPIPE 대응 ===
gateway.cpp: signal(SIGPIPE, SIG_IGN) 메인스레드 설치
modbus_tcp.cpp: send() flags 0 → MSG_NOSIGNAL (EPIPE 복구)
sigpipe_ignore.c: LD_PRELOAD 우회 공유라이브러리
Hc900GatewayProcessService: LD_PRELOAD 환경변수 설정
2026-06-07 00:29:47 +09:00

67 lines
1.1 KiB
JSON

{
"column": "C-8111",
"stages_order": [
"reb_temp",
"T_B",
"T_C",
"T_D"
],
"n_products": 2,
"period": "2026-03-27~2026-06-05",
"products": [
{
"label": "P0",
"n_rows": 28459,
"span_AD": 15.16,
"vacuum": {
"median": 49.97,
"std": 0.14
},
"stages": {
"reb_temp": {
"median": 93.38,
"std": 1.02
},
"T_B": {
"median": 91.57,
"std": 0.91
},
"T_C": {
"median": 83.97,
"std": 0.54
},
"T_D": {
"median": 78.22,
"std": 0.13
}
}
},
{
"label": "P1",
"n_rows": 171490,
"span_AD": 16.36,
"vacuum": {
"median": 49.97,
"std": 0.18
},
"stages": {
"reb_temp": {
"median": 94.92,
"std": 0.66
},
"T_B": {
"median": 93.05,
"std": 0.62
},
"T_C": {
"median": 85.18,
"std": 0.51
},
"T_D": {
"median": 78.56,
"std": 0.12
}
}
}
]
}