#include "main.h"
#include "tableedit.h"
static int regler_millis(int idx) {
switch (idx) {
case 0: return regler.reportk.T_mK; break;
case 1: return MulDiv(regler.reportk.P_mW,1000,regler.reportk.T_mK); break;
case 2: return MulDiv(regler.reportk.P_mW,1000000,regler.reportk.T_mK*regler.reportk.tr_ms); break;
case 3: return MulDiv(regler.reportk.P_mW,regler.reportk.tr_ms,regler.reportk.T_mK); break;
case 4: return regler.reportk.P_mW; break;
case 5:
case 6: return 100000/256; break; // 256 = 100 %
}
return 0x80000000; // NaN
}
BOOL CALLBACK PidDlgProc(HWND Wnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
case WM_INITDIALOG: {
HWND hte=GetDlgItem(Wnd,12); // tableedit
SendMessage(hte,TE_INITHEADERFOOTER,7,LPARAM("T\0Kp\0W/K\0Ki\0W/Ks\0Kd\0Ws/K\0P0\0W\0boost+\0%\0boost-\0%")); // Header (linksbündig)
TE_METRICS*m=(TE_METRICS*)SendMessage(hte,TE_GETMETRICS,0,0);
m->yMin=4; // mindestens 2 Datenzeilen
m->yMax=6; // höchstens 4 Datenzeilen
if (regler.getfeature(2)) { // Reglerparameter
REGLER::TPID*tpid=(REGLER::TPID*)(regler.report+2);
for (int j=1;j<=regler.report[1];j++,tpid++) {
SendMessage(hte,TE_INSERT,MAKELONG(j,1),0); // Zeile einfügen
for (int i=0; i<7; i++) {
char s[32];
dec2s(s,(&tpid->T)[i],regler_millis(i));
SendMessage(hte,TE_SETTEXT,MAKELONG(i,j),(LPARAM)s); // Elemente setzen
}
}
}
}return TRUE;
case WM_COMMAND: switch (wParam) {
case 1:
case 2: EndDialog(Wnd,wParam); break;
}
}
return FALSE;
}
Detected encoding: ANSI (CP1252) | 4
|
|