Test
Dependencies: mbed-dev-OS5_10_4
RawSerial/SendTelToHost.cpp@0:014fad4dfb9d, 2020-08-07 (annotated)
- Committer:
- kevman
- Date:
- Fri Aug 07 07:24:21 2020 +0000
- Revision:
- 0:014fad4dfb9d
Test
Who changed what in which revision?
User | Revision | Line number | New 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 | } |