Test

Dependencies:   mbed-dev-OS5_10_4

Committer:
kevman
Date:
Fri Aug 07 07:24:21 2020 +0000
Revision:
0:014fad4dfb9d
Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 0:014fad4dfb9d 1 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 2 Programm Name: SendTelToHost.cpp
kevman 0:014fad4dfb9d 3 Version: 1.0
kevman 0:014fad4dfb9d 4 Sprache: C
kevman 0:014fad4dfb9d 5 Compiler: mbed Ver. 5.0
kevman 0:014fad4dfb9d 6 Autor: PS
kevman 0:014fad4dfb9d 7 Copyright: PS
kevman 0:014fad4dfb9d 8
kevman 0:014fad4dfb9d 9 Funktion: Sendet die Telegramme an den EcmWin Rechner
kevman 0:014fad4dfb9d 10 28.10.2012:
kevman 0:014fad4dfb9d 11 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 12 #include "Headers.h"
kevman 0:014fad4dfb9d 13
kevman 0:014fad4dfb9d 14 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 15 SendAnalogValues: Schickt was fertig ist
kevman 0:014fad4dfb9d 16 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 17 int SendAnalogValues()
kevman 0:014fad4dfb9d 18 {
kevman 0:014fad4dfb9d 19 #ifdef PGU_EDUCATION
kevman 0:014fad4dfb9d 20 SendAnalogFromEdu();
kevman 0:014fad4dfb9d 21 #endif
kevman 0:014fad4dfb9d 22 #ifdef PGU_RPA
kevman 0:014fad4dfb9d 23 SendRpaAnalogValues();
kevman 0:014fad4dfb9d 24 #else
kevman 0:014fad4dfb9d 25 SendAnalogFromTouch();
kevman 0:014fad4dfb9d 26 #endif
kevman 0:014fad4dfb9d 27 return(true);
kevman 0:014fad4dfb9d 28 }
kevman 0:014fad4dfb9d 29
kevman 0:014fad4dfb9d 30 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 31 SendAnalogValues: Schickt was fertig ist
kevman 0:014fad4dfb9d 32 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 33 int SendAnalogFromEdu()
kevman 0:014fad4dfb9d 34 {
kevman 0:014fad4dfb9d 35 int j, Ret;
kevman 0:014fad4dfb9d 36
kevman 0:014fad4dfb9d 37 Ret = false;
kevman 0:014fad4dfb9d 38 if(MVars.m_fStartTel == 0x01) // STX schicken
kevman 0:014fad4dfb9d 39 {
kevman 0:014fad4dfb9d 40 if(MVars.m_fFinishMeasurement == true)
kevman 0:014fad4dfb9d 41 {
kevman 0:014fad4dfb9d 42 MVars.nMessZustand[0] = 0;
kevman 0:014fad4dfb9d 43 MVars.m_fSendStatus = true;
kevman 0:014fad4dfb9d 44 MVars.m_fFinishMeasurement = false;
kevman 0:014fad4dfb9d 45 MVars.m_fMeasurementFinished = true;
kevman 0:014fad4dfb9d 46 }
kevman 0:014fad4dfb9d 47
kevman 0:014fad4dfb9d 48 if(MVars.m_fSendStatus == true) // Status senden
kevman 0:014fad4dfb9d 49 SendStatus();
kevman 0:014fad4dfb9d 50 if(HostIf.fSendMessage == true) // Status senden
kevman 0:014fad4dfb9d 51 {
kevman 0:014fad4dfb9d 52 HostIf.fSendMessage = false;
kevman 0:014fad4dfb9d 53 RpaDev.puts(HostIf.strMessageBuf);
kevman 0:014fad4dfb9d 54 }
kevman 0:014fad4dfb9d 55 if(HostIf.fSendError == true) // Status senden
kevman 0:014fad4dfb9d 56 {
kevman 0:014fad4dfb9d 57 HostIf.fSendError = false;
kevman 0:014fad4dfb9d 58 RpaDev.puts(HostIf.strErrorBuf);
kevman 0:014fad4dfb9d 59 }
kevman 0:014fad4dfb9d 60
kevman 0:014fad4dfb9d 61 MVars.nTelLen = sprintf(STemp,"%c#MW#%d#",STX,MVars.m_nAnzValue);
kevman 0:014fad4dfb9d 62 strcpy(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 63 MVars.m_fStartTel = 0x00;
kevman 0:014fad4dfb9d 64 }
kevman 0:014fad4dfb9d 65
kevman 0:014fad4dfb9d 66 for(j=0;j<2;j++)
kevman 0:014fad4dfb9d 67 {
kevman 0:014fad4dfb9d 68 if(MVars.m_fChnValid[j] == true)
kevman 0:014fad4dfb9d 69 {
kevman 0:014fad4dfb9d 70 MVars.nTelLen += sprintf(STemp,"%06lu#",(UINT32)MVars.dbAdResult[j]);
kevman 0:014fad4dfb9d 71 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 72 }
kevman 0:014fad4dfb9d 73 }
kevman 0:014fad4dfb9d 74 MVars.m_nSendAnz++;
kevman 0:014fad4dfb9d 75 if(MVars.m_nSendAnz >= MVars.m_nAnzValue)
kevman 0:014fad4dfb9d 76 {
kevman 0:014fad4dfb9d 77 MVars.nTelLen += sprintf(STemp,"%c",ETX);
kevman 0:014fad4dfb9d 78 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 79 MVars.m_fStartTel = 0x01;
kevman 0:014fad4dfb9d 80 MVars.m_nSendAnz = 0;
kevman 0:014fad4dfb9d 81 if(MVars.m_fMeasurementFinished == true)
kevman 0:014fad4dfb9d 82 {
kevman 0:014fad4dfb9d 83 SetMessungEnde();
kevman 0:014fad4dfb9d 84 }
kevman 0:014fad4dfb9d 85 #ifndef PGU_RPA
kevman 0:014fad4dfb9d 86 if(g_fDoCheckIRange == true)
kevman 0:014fad4dfb9d 87 {
kevman 0:014fad4dfb9d 88 CheckIRange();
kevman 0:014fad4dfb9d 89 g_fDoCheckIRange = false;
kevman 0:014fad4dfb9d 90 }
kevman 0:014fad4dfb9d 91 #endif
kevman 0:014fad4dfb9d 92 Ret = true;
kevman 0:014fad4dfb9d 93 }
kevman 0:014fad4dfb9d 94 if(MVars.m_nSendValues == 2) // senden während Messung
kevman 0:014fad4dfb9d 95 {
kevman 0:014fad4dfb9d 96 // if(g_fDisableSendMw == false)
kevman 0:014fad4dfb9d 97 RpaDev.puts((const char *)HostIf.strTempBuf);
kevman 0:014fad4dfb9d 98 MVars.nTelLen = 0;
kevman 0:014fad4dfb9d 99 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 100 }
kevman 0:014fad4dfb9d 101 else
kevman 0:014fad4dfb9d 102 {
kevman 0:014fad4dfb9d 103 // if(g_fDisableSendMw == false)
kevman 0:014fad4dfb9d 104 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 105 MVars.nDestCount = 0;
kevman 0:014fad4dfb9d 106 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 107 }
kevman 0:014fad4dfb9d 108
kevman 0:014fad4dfb9d 109 return(Ret);
kevman 0:014fad4dfb9d 110 }
kevman 0:014fad4dfb9d 111
kevman 0:014fad4dfb9d 112
kevman 0:014fad4dfb9d 113 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 114 SendAnalogValues: Schickt was fertig ist
kevman 0:014fad4dfb9d 115 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 116 int SendAnalogFromTouch()
kevman 0:014fad4dfb9d 117 {
kevman 0:014fad4dfb9d 118 int j, Ret;
kevman 0:014fad4dfb9d 119
kevman 0:014fad4dfb9d 120 #ifndef PGU_RPA
kevman 0:014fad4dfb9d 121 if(MVars.m_fMessDlgOpened == false)
kevman 0:014fad4dfb9d 122 return(true); // wenn im Config Mode, keine Messtelegramme schicken
kevman 0:014fad4dfb9d 123
kevman 0:014fad4dfb9d 124 Ret = false;
kevman 0:014fad4dfb9d 125 if(MVars.m_fStartTel == 0x01) // STX schicken
kevman 0:014fad4dfb9d 126 {
kevman 0:014fad4dfb9d 127 if(MVars.m_fFinishMeasurement == true)
kevman 0:014fad4dfb9d 128 {
kevman 0:014fad4dfb9d 129 // MVars.nMessZustand[0] = 0;
kevman 0:014fad4dfb9d 130 MVars.m_fSendStatus = true;
kevman 0:014fad4dfb9d 131 MVars.m_fFinishMeasurement = false;
kevman 0:014fad4dfb9d 132 MVars.m_fMeasurementFinished = true;
kevman 0:014fad4dfb9d 133 }
kevman 0:014fad4dfb9d 134 if(HostIf.fIsConnected == false) // hat keine Verbindung hergestellt
kevman 0:014fad4dfb9d 135 return(true);
kevman 0:014fad4dfb9d 136 if(g_nSendDisableTimer > 0)
kevman 0:014fad4dfb9d 137 return(true);
kevman 0:014fad4dfb9d 138
kevman 0:014fad4dfb9d 139 // CheckIRange(); // wenn er hier umschaltet, dann ist der SendDisableTimer > 0 und ein Status wird gesendet
kevman 0:014fad4dfb9d 140 if(MVars.m_fSendStatus == true) // Status senden
kevman 0:014fad4dfb9d 141 {
kevman 0:014fad4dfb9d 142 SendStatus();
kevman 0:014fad4dfb9d 143 if(g_nSendDisableTimer > 0)
kevman 0:014fad4dfb9d 144 return(true);
kevman 0:014fad4dfb9d 145 }
kevman 0:014fad4dfb9d 146 if(IrComp.fSendInfo == true)
kevman 0:014fad4dfb9d 147 {
kevman 0:014fad4dfb9d 148 SendInfo();
kevman 0:014fad4dfb9d 149 IrComp.fSendInfo = false;
kevman 0:014fad4dfb9d 150 }
kevman 0:014fad4dfb9d 151 if(HostIf.fSendMessage == true) // Status senden
kevman 0:014fad4dfb9d 152 {
kevman 0:014fad4dfb9d 153 HostIf.fSendMessage = false;
kevman 0:014fad4dfb9d 154 RpaDev.puts(HostIf.strMessageBuf);
kevman 0:014fad4dfb9d 155 }
kevman 0:014fad4dfb9d 156 if(HostIf.fSendError == true) // Status senden
kevman 0:014fad4dfb9d 157 {
kevman 0:014fad4dfb9d 158 HostIf.fSendError = false;
kevman 0:014fad4dfb9d 159 RpaDev.puts(HostIf.strErrorBuf);
kevman 0:014fad4dfb9d 160 }
kevman 0:014fad4dfb9d 161
kevman 0:014fad4dfb9d 162 MVars.nTelLen = sprintf(STemp,"%c#MW#%d#",STX,MVars.m_nAnzValue);
kevman 0:014fad4dfb9d 163 strcpy(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 164 MVars.m_fStartTel = 0x00;
kevman 0:014fad4dfb9d 165 }
kevman 0:014fad4dfb9d 166
kevman 0:014fad4dfb9d 167 for(j=0;j<2;j++)
kevman 0:014fad4dfb9d 168 {
kevman 0:014fad4dfb9d 169 if(MVars.m_fChnValid[j] == true)
kevman 0:014fad4dfb9d 170 {
kevman 0:014fad4dfb9d 171 MVars.nTelLen += sprintf(STemp,"%08lu#",(UINT32)AdVal->AdResult[j][g_nAdCount]);
kevman 0:014fad4dfb9d 172 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 173 #ifdef TFT_DEBUG
kevman 0:014fad4dfb9d 174 // printf ("Buf:%s Val:%f j:%d Pos:%d \n",STemp, AdVal->AdResult[j][g_nAdCount], j, g_nAdCount );
kevman 0:014fad4dfb9d 175 #endif
kevman 0:014fad4dfb9d 176 }
kevman 0:014fad4dfb9d 177 }
kevman 0:014fad4dfb9d 178 if(MVars.m_fChnValid[2] == true)
kevman 0:014fad4dfb9d 179 {
kevman 0:014fad4dfb9d 180 MVars.nTelLen += sprintf(STemp,"%08lu#",(UINT32)AdVal->dbUFkResult);
kevman 0:014fad4dfb9d 181 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 182 }
kevman 0:014fad4dfb9d 183 if(MVars.m_fChnValid[3] == true)
kevman 0:014fad4dfb9d 184 {
kevman 0:014fad4dfb9d 185 MVars.nTelLen += sprintf(STemp,"%08lu#",(UINT32)AdVal->dbIFkResult);
kevman 0:014fad4dfb9d 186 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 187 }
kevman 0:014fad4dfb9d 188
kevman 0:014fad4dfb9d 189 MVars.m_nSendAnz++;
kevman 0:014fad4dfb9d 190 if(MVars.m_nSendAnz >= MVars.m_nAnzValue)
kevman 0:014fad4dfb9d 191 {
kevman 0:014fad4dfb9d 192 // sprintf(STemp,"%d#%d#%c\r\n",g_fAd0State, g_fAd1State,ETX);
kevman 0:014fad4dfb9d 193 MVars.nTelLen += sprintf(STemp,"%c\r\n",ETX);
kevman 0:014fad4dfb9d 194 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 195 MVars.m_fStartTel = 0x01;
kevman 0:014fad4dfb9d 196 MVars.m_nSendAnz = 0;
kevman 0:014fad4dfb9d 197 if(MVars.m_fMeasurementFinished == true)
kevman 0:014fad4dfb9d 198 {
kevman 0:014fad4dfb9d 199 SetMessungEnde();
kevman 0:014fad4dfb9d 200 }
kevman 0:014fad4dfb9d 201 Ret = true;
kevman 0:014fad4dfb9d 202 }
kevman 0:014fad4dfb9d 203 if(MVars.m_nSendValues == 2) // senden während Messung
kevman 0:014fad4dfb9d 204 {
kevman 0:014fad4dfb9d 205 if(g_fDisableSendMw == false)
kevman 0:014fad4dfb9d 206 RpaDev.puts((const char *)HostIf.strTempBuf);
kevman 0:014fad4dfb9d 207 MVars.nTelLen = 0;
kevman 0:014fad4dfb9d 208 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 209 }
kevman 0:014fad4dfb9d 210 else
kevman 0:014fad4dfb9d 211 {
kevman 0:014fad4dfb9d 212 if(g_fDisableSendMw == false)
kevman 0:014fad4dfb9d 213 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 214 MVars.nDestCount = 0;
kevman 0:014fad4dfb9d 215 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 216 }
kevman 0:014fad4dfb9d 217 #endif
kevman 0:014fad4dfb9d 218 return(Ret);
kevman 0:014fad4dfb9d 219 }
kevman 0:014fad4dfb9d 220
kevman 0:014fad4dfb9d 221 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 222 // SendStatus: Senden des Status, da sich etwas geändert hat
kevman 0:014fad4dfb9d 223 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 224 void SendStatus(void)
kevman 0:014fad4dfb9d 225 {
kevman 0:014fad4dfb9d 226 #ifdef PGU_RPA
kevman 0:014fad4dfb9d 227 SendRpaStatus();
kevman 0:014fad4dfb9d 228 #else
kevman 0:014fad4dfb9d 229 sprintf(HostIf.strTempBuf,"%c#ST#%d#%d#%d#%d#%d#%c\r\n",STX,MVars.nMessZustand[0], IRange.AktRange[0], GenW[0].nAktZyklus,IRange.m_fCheckRange,MVars.m_fPotGal,ETX);
kevman 0:014fad4dfb9d 230 MVars.m_fSendStatus = false;
kevman 0:014fad4dfb9d 231 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 232 #endif
kevman 0:014fad4dfb9d 233 }
kevman 0:014fad4dfb9d 234 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 235 // SendInfo: Senden des Infotelegramms
kevman 0:014fad4dfb9d 236 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 237 void SendInfo(void)
kevman 0:014fad4dfb9d 238 {
kevman 0:014fad4dfb9d 239 IrComp.fSendInfo = false;
kevman 0:014fad4dfb9d 240 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 241 }/*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 242 SendAnalogValues: Schickt was fertig ist
kevman 0:014fad4dfb9d 243 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 244 int SendRpaAnalogValues()
kevman 0:014fad4dfb9d 245 {
kevman 0:014fad4dfb9d 246 int j, Ret;
kevman 0:014fad4dfb9d 247
kevman 0:014fad4dfb9d 248 Ret = false;
kevman 0:014fad4dfb9d 249 if(MVars.m_fStartTel == 0x01) // STX schicken
kevman 0:014fad4dfb9d 250 {
kevman 0:014fad4dfb9d 251 if(MVars.m_fFinishMeasurement == true)
kevman 0:014fad4dfb9d 252 {
kevman 0:014fad4dfb9d 253 MVars.nMessZustand[0] = 0;
kevman 0:014fad4dfb9d 254 MVars.m_fSendStatus = true;
kevman 0:014fad4dfb9d 255 MVars.m_fFinishMeasurement = false;
kevman 0:014fad4dfb9d 256 MVars.m_fMeasurementFinished = true;
kevman 0:014fad4dfb9d 257 }
kevman 0:014fad4dfb9d 258
kevman 0:014fad4dfb9d 259 if(MVars.m_fSendStatus == true) // Status senden
kevman 0:014fad4dfb9d 260 {
kevman 0:014fad4dfb9d 261 SendStatus();
kevman 0:014fad4dfb9d 262 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 263 }
kevman 0:014fad4dfb9d 264 if(HostIf.fSendMessage == true) // Status senden
kevman 0:014fad4dfb9d 265 {
kevman 0:014fad4dfb9d 266 HostIf.fSendMessage = false;
kevman 0:014fad4dfb9d 267 RpaDev.puts(HostIf.strMessageBuf);
kevman 0:014fad4dfb9d 268 }
kevman 0:014fad4dfb9d 269 if(HostIf.fSendError == true) // Status senden
kevman 0:014fad4dfb9d 270 {
kevman 0:014fad4dfb9d 271 HostIf.fSendError = false;
kevman 0:014fad4dfb9d 272 RpaDev.puts(HostIf.strErrorBuf);
kevman 0:014fad4dfb9d 273 }
kevman 0:014fad4dfb9d 274
kevman 0:014fad4dfb9d 275 MVars.nTelLen = sprintf(STemp,"%c#MW#%d#",STX,MVars.m_nAnzValue);
kevman 0:014fad4dfb9d 276 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 277 MVars.m_fStartTel = 0x00;
kevman 0:014fad4dfb9d 278 }
kevman 0:014fad4dfb9d 279
kevman 0:014fad4dfb9d 280 for(j=0;j<3;j++)
kevman 0:014fad4dfb9d 281 {
kevman 0:014fad4dfb9d 282 if(MVars.m_fChnValid[j] == true)
kevman 0:014fad4dfb9d 283 {
kevman 0:014fad4dfb9d 284 MVars.nTelLen += sprintf(STemp,"%08u#",(UINT32)MVars.dbAdResult[j]);
kevman 0:014fad4dfb9d 285 #ifdef TFT_DEBUG
kevman 0:014fad4dfb9d 286 // printf("AdResult_x: %f STemp: %s \n",MVars.dbAdResult[j], STemp);
kevman 0:014fad4dfb9d 287 #endif
kevman 0:014fad4dfb9d 288 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 289 }
kevman 0:014fad4dfb9d 290 }
kevman 0:014fad4dfb9d 291 MVars.m_nSendAnz++;
kevman 0:014fad4dfb9d 292 if(MVars.m_nSendAnz >= MVars.m_nAnzValue)
kevman 0:014fad4dfb9d 293 {
kevman 0:014fad4dfb9d 294 // sprintf(STemp,"%d#%d#%c\r\n",g_fAd0State, g_fAd1State,ETX);
kevman 0:014fad4dfb9d 295 MVars.nTelLen += sprintf(STemp,"%c",ETX);
kevman 0:014fad4dfb9d 296 strcat(HostIf.strTempBuf, STemp);
kevman 0:014fad4dfb9d 297 MVars.m_fStartTel = 0x01;
kevman 0:014fad4dfb9d 298 MVars.m_nSendAnz = 0;
kevman 0:014fad4dfb9d 299 if(MVars.m_fMeasurementFinished == true)
kevman 0:014fad4dfb9d 300 {
kevman 0:014fad4dfb9d 301 SetMessungEnde();
kevman 0:014fad4dfb9d 302 }
kevman 0:014fad4dfb9d 303 Ret = true;
kevman 0:014fad4dfb9d 304 }
kevman 0:014fad4dfb9d 305 if(MVars.m_nSendValues == 2) // senden während Messung
kevman 0:014fad4dfb9d 306 {
kevman 0:014fad4dfb9d 307 RpaDev.puts((const char *)HostIf.strTempBuf);
kevman 0:014fad4dfb9d 308 MVars.nTelLen = 0;
kevman 0:014fad4dfb9d 309 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 310 }
kevman 0:014fad4dfb9d 311 else
kevman 0:014fad4dfb9d 312 {
kevman 0:014fad4dfb9d 313 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 314 MVars.nDestCount = 0;
kevman 0:014fad4dfb9d 315 HostIf.strTempBuf[0] = 0x00;
kevman 0:014fad4dfb9d 316 }
kevman 0:014fad4dfb9d 317 return(Ret);
kevman 0:014fad4dfb9d 318 }
kevman 0:014fad4dfb9d 319 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 320 // SendStatus: Senden des Status, da sich etwas geändert hat
kevman 0:014fad4dfb9d 321 //-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 322 void SendRpaStatus(void)
kevman 0:014fad4dfb9d 323 {
kevman 0:014fad4dfb9d 324
kevman 0:014fad4dfb9d 325 sprintf(HostIf.strTempBuf,"%c#ST#%d#%c",STX,MVars.nMessZustand[0], ETX);
kevman 0:014fad4dfb9d 326 MVars.m_fSendStatus = false;
kevman 0:014fad4dfb9d 327 RpaDev.puts(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 328 }
kevman 0:014fad4dfb9d 329
kevman 0:014fad4dfb9d 330 /*-----------------------------------------------------------------------
kevman 0:014fad4dfb9d 331 // SendTelToHost: Sendemethode fuer alle Telegramme. Die rufende Methode
kevman 0:014fad4dfb9d 332 uebergibt des zu sendenden String.
kevman 0:014fad4dfb9d 333 Findet sich in dem String ein CR, dann wird das uebersprungen. Findet sich ein
kevman 0:014fad4dfb9d 334 LF, dann wird dies durch ein $ ersetzt. Folgen weitere Telegramme zu einem
kevman 0:014fad4dfb9d 335 Funktionsblock, dann wird kein ETX gesendet.
kevman 0:014fad4dfb9d 336 Handelt es sich um laengere Telegramme wie z.B. um Messdateien, dann werden
kevman 0:014fad4dfb9d 337 groessere Bloecke mit Kennung, STX und ETX gesendet. Das letzte Telegramm bekommt
kevman 0:014fad4dfb9d 338 dann eine EOF vor das ETX, damit kann das Zielsystem erkennen, das die Datei
kevman 0:014fad4dfb9d 339 fertig ist.
kevman 0:014fad4dfb9d 340 -----------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 341 void SendTelToHost(bool fMoreThanOne, bool fEof, int fReplace)
kevman 0:014fad4dfb9d 342 {
kevman 0:014fad4dfb9d 343 int Len, i, j, k;
kevman 0:014fad4dfb9d 344
kevman 0:014fad4dfb9d 345 Len = strlen(HostIf.strTempBuf);
kevman 0:014fad4dfb9d 346 j = 0; // zur Sicherheit
kevman 0:014fad4dfb9d 347 for(i=0, j=0, k=0;i<Len;i++, j++)
kevman 0:014fad4dfb9d 348 {
kevman 0:014fad4dfb9d 349 if(HostIf.strTempBuf[i] == 0x0D) j--; // das naechste j++ wird ausgeglichen
kevman 0:014fad4dfb9d 350 else if(HostIf.strTempBuf[i] == 0x0A)
kevman 0:014fad4dfb9d 351 {
kevman 0:014fad4dfb9d 352 if(fReplace == 0)
kevman 0:014fad4dfb9d 353 HostIf.strFinalSendBuf[j] = REPLACE_LATTEN_ZAUN; // Zeilenende wird mit # gekennzeichnet
kevman 0:014fad4dfb9d 354 else if(fReplace == 1)
kevman 0:014fad4dfb9d 355 HostIf.strFinalSendBuf[j] = REPLACE_LF; // Zeilenende wird mit $ gekennzeichnet
kevman 0:014fad4dfb9d 356 else
kevman 0:014fad4dfb9d 357 HostIf.strFinalSendBuf[j] = HostIf.strTempBuf[i];
kevman 0:014fad4dfb9d 358 }
kevman 0:014fad4dfb9d 359 else
kevman 0:014fad4dfb9d 360 HostIf.strFinalSendBuf[j] = HostIf.strTempBuf[i];
kevman 0:014fad4dfb9d 361
kevman 0:014fad4dfb9d 362 }
kevman 0:014fad4dfb9d 363 if(fMoreThanOne == true)
kevman 0:014fad4dfb9d 364 {
kevman 0:014fad4dfb9d 365 HostIf.strFinalSendBuf[j] = 0x00; // kein ETX, es geht weiter
kevman 0:014fad4dfb9d 366 }
kevman 0:014fad4dfb9d 367 else
kevman 0:014fad4dfb9d 368 {
kevman 0:014fad4dfb9d 369 if(fEof == true) // war eine grosse Datei, muss mit EOF gesendet werden
kevman 0:014fad4dfb9d 370 {
kevman 0:014fad4dfb9d 371 HostIf.strFinalSendBuf[j] = MCU_EOF; j++;
kevman 0:014fad4dfb9d 372 }
kevman 0:014fad4dfb9d 373 if(Len == 0) j = 0;
kevman 0:014fad4dfb9d 374 HostIf.strFinalSendBuf[j] = ETX;
kevman 0:014fad4dfb9d 375 HostIf.strFinalSendBuf[j+1] = 0x00;
kevman 0:014fad4dfb9d 376 }
kevman 0:014fad4dfb9d 377 RpaDev.puts((const char *)HostIf.strFinalSendBuf);
kevman 0:014fad4dfb9d 378 #ifdef TFT_DEBUG
kevman 0:014fad4dfb9d 379 // printf("WriteFile is: %s\n",TcpSendBuf);
kevman 0:014fad4dfb9d 380 #endif
kevman 0:014fad4dfb9d 381 }