00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifdef _FEDM_XML_SUPPORT
00039
00040
00041 #include "FEDM_XmlReaderCfgDataModul.h"
00042 #include "FEDM_DataBase.h"
00043 #include "i_scan/FEDM_ISC.h"
00044 #include <time.h>
00045
00046 #if _MSC_VER >= 1400
00047 #pragma warning(disable : 4996)
00048 #endif
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 FEDM_XMLReaderCfgDataModul::FEDM_XMLReaderCfgDataModul()
00069 {
00070 m_pReaderInfo = NULL;
00071
00072 m_wsDocType = L"";
00073 m_wsDocVer = L"";
00074 m_wsComment = L"";
00075 m_wsPrgName = L"";
00076 m_wsPrgVer = L"";
00077 m_wsFedmVer = L"";
00078 m_wsHost = L"";
00079 m_wsPort = L"";
00080 m_wsDate = L"";
00081 m_wsTime = L"";
00082 m_wsCommMode = L"";
00083 }
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 FEDM_XMLReaderCfgDataModul::~FEDM_XMLReaderCfgDataModul()
00097 {
00098 }
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117 int FEDM_XMLReaderCfgDataModul::SerializeIn(FEDM_DataBase* pReader, char* sFileName)
00118 {
00119 FEDM_CHK5(pReader);
00120 FEDM_CHK5(sFileName);
00121
00122 char cValue[32];
00123 char* cFamCode = NULL;
00124 wchar_t wcFamCode[5];
00125 unsigned int uiTmp;
00126 int iBack = 0;
00127 wstring wsFamCode;
00128 FEDM_XML_TREEITEM* root = NULL;
00129 FEDM_XML_TREEITEM* parent = NULL;
00130 FEDM_XML_TREEITEM* child = NULL;
00131
00132
00133 iBack = OpenDoc(sFileName, "r");
00134 if(iBack)
00135 return iBack;
00136
00137
00138 if(IsXmlDoc())
00139 {
00140 CloseDoc();
00141 return m_iLastError;
00142 }
00143
00144
00145 if(HasOBIDTag())
00146 {
00147 CloseDoc();
00148 return m_iLastError;
00149 }
00150
00151
00152 if(ReadDoc())
00153 {
00154 CloseDoc();
00155 return m_iLastError;
00156 }
00157
00158 CloseDoc();
00159
00160
00161
00162 root = FindTag(FEDM_XML_TAG_OBID_UC);
00163 if(root == NULL)
00164 return m_iLastError;
00165 AddTagItem(NULL, root);
00166
00167
00168 child = FindTag(FEDM_XML_TAG_FILE_HDR_UC);
00169 if(child == NULL)
00170 {
00171 DeleteXmlTree();
00172 return m_iLastError;
00173 }
00174 AddTagItem(root, child);
00175 parent = child;
00176
00177
00178 child = FindTag(FEDM_XML_TAG_DOC_TYPE_UC);
00179 if(child == NULL)
00180 {
00181 DeleteXmlTree();
00182 return m_iLastError;
00183 }
00184 if(child->sValue != FEDM_XML_STRING_DOC_TYPE_1_UC)
00185 {
00186 delete child;
00187 DeleteXmlTree();
00188 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_TYPE);
00189 }
00190 m_wsDocType = child->sValue;
00191 AddTagItem(parent, child);
00192
00193
00194 child = FindTag(FEDM_XML_TAG_DOC_VERSION_UC);
00195 if(child == NULL)
00196 {
00197 DeleteXmlTree();
00198 return m_iLastError;
00199 }
00200 if(child->sValue != FEDM_XML_STRING_DOC_VERSION_UC)
00201 {
00202 delete child;
00203 DeleteXmlTree();
00204 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_VERSION);
00205 }
00206 m_wsDocVer = child->sValue;
00207 AddTagItem(parent, child);
00208
00209
00210 child = FindTag(FEDM_XML_TAG_READER_FAM_UC);
00211 if(child == NULL)
00212 {
00213 DeleteXmlTree();
00214 return m_iLastError;
00215 }
00216
00217
00218 if(child->sValue.size() > 4)
00219 {
00220 delete child;
00221 DeleteXmlTree();
00222 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_FAMILY);
00223 }
00224 cFamCode = pReader->GetFamilyCode();
00225 #if defined(__BORLANDC__) || defined(_MSC_VER)
00226 swprintf(wcFamCode, L"%S", cFamCode);
00227 #else
00228 swprintf(wcFamCode, 5, L"%s", cFamCode);
00229 #endif
00230 wsFamCode = wcFamCode;
00231 if(child->sValue != wsFamCode)
00232 {
00233 delete child;
00234 DeleteXmlTree();
00235 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_FAMILY);
00236 }
00237 AddTagItem(parent, child);
00238
00239
00240 child = FindTag(FEDM_XML_TAG_READER_TYPE_UC);
00241 if(child != NULL)
00242 {
00243 AddTagItem(parent, child);
00244 #if defined(__BORLANDC__) || defined(_MSC_VER)
00245 swscanf(child->sValue.c_str(), L"%S", cValue);
00246 #elif defined(_FEDM_SUPPORT_UCLINUX)
00247 FEDM_SWSCANF(child->sValue.c_str(), cValue);
00248 #else
00249 swscanf(child->sValue.c_str(), L"%s", cValue);
00250 #endif
00251 sscanf(cValue, "%u", &uiTmp);
00252 pReader->SetReaderType(uiTmp);
00253 }
00254 else
00255 {
00256 pReader->SetReaderType(0);
00257 }
00258
00259
00260 child = FindTag(FEDM_XML_TAG_BUSADR_UC);
00261 if(child != NULL)
00262 {
00263 AddTagItem(parent, child);
00264 #if defined(__BORLANDC__) || defined(_MSC_VER)
00265 swscanf(child->sValue.c_str(), L"%S", cValue);
00266 #elif defined(_FEDM_SUPPORT_UCLINUX)
00267 FEDM_SWSCANF(child->sValue.c_str(), cValue);
00268 #else
00269 swscanf(child->sValue.c_str(), L"%s", cValue);
00270 #endif
00271 sscanf(cValue, "%d", &uiTmp);
00272 pReader->SetBusAddress((unsigned char)uiTmp);
00273 }
00274
00275
00276 child = FindTag(FEDM_XML_TAG_HOSTADR_UC);
00277 if(child != NULL)
00278 {
00279 AddTagItem(parent, child);
00280 m_wsHost = child->sValue;
00281 }
00282
00283
00284 child = FindTag(FEDM_XML_TAG_PORTNR_UC);
00285 if(child != NULL)
00286 {
00287 AddTagItem(parent, child);
00288 m_wsPort = child->sValue;
00289 }
00290
00291
00292 child = FindTag(FEDM_XML_TAG_COMM_MODE_UC);
00293 if(child != NULL)
00294 {
00295 AddTagItem(parent, child);
00296 m_wsCommMode = child->sValue;
00297 }
00298
00299
00300 child = FindTag(FEDM_XML_TAG_FRAME_SUPPORT);
00301 if(child != NULL)
00302 {
00303 AddTagItem(parent, child);
00304 if(wcscmp(child->sValue.c_str(), L"advanced") == 0)
00305 {
00306 pReader->SetProtocolFrameSupport(FEDM_PRT_FRAME_ADVANCED);
00307 }
00308 else
00309 {
00310 pReader->SetProtocolFrameSupport(FEDM_PRT_FRAME_STANDARD);
00311 }
00312 }
00313
00314
00315 child = FindTag(FEDM_XML_TAG_COMMENT_UC);
00316 if(child != NULL)
00317 {
00318 AddTagItem(parent, child);
00319 m_wsComment = child->sValue;
00320 }
00321
00322
00323
00324
00325
00326
00327 iBack = pReader->SerializeIn(this, root);
00328 if(iBack)
00329 {
00330 DeleteXmlTree();
00331 return iBack;
00332 }
00333
00334
00335 DeleteXmlTree();
00336
00337 FEDM_RETURN(FEDM_OK);
00338 }
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353 int FEDM_XMLReaderCfgDataModul::SerializeOut(FEDM_DataBase* pReader, char* sFileName)
00354 {
00355 FEDM_CHK5(pReader);
00356 FEDM_CHK5(sFileName);
00357
00358 int iBack = 0;
00359 char cValue[32];
00360 wchar_t wcTmp[128];
00361 #if !defined(_FEDM_SUPPORT_UCLINUX) && !defined(_WIN32_WCE)
00362 time_t ltime;
00363 struct tm *tmtime;
00364 #endif
00365 FEDM_XML_TREEITEM* root = NULL;
00366 FEDM_XML_TREEITEM* parent = NULL;
00367 FEDM_XML_TREEITEM* child = NULL;
00368
00369 int iPortHnd = pReader->GetPortHnd();
00370
00371
00372
00373 root = BuildTag(FEDM_XML_TAG_OBID_UC);
00374 if(root == NULL)
00375 {
00376 return m_iLastError;
00377 }
00378 AddTagItem(NULL, root);
00379
00380
00381 child = BuildTag(FEDM_XML_TAG_FILE_HDR_UC);
00382 if(child == NULL)
00383 {
00384 DeleteXmlTree();
00385 return m_iLastError;
00386 }
00387 AddTagItem(root, child);
00388 parent = child;
00389
00390
00391 child = BuildTag(FEDM_XML_TAG_DOC_TYPE_UC, false);
00392 if(child == NULL)
00393 {
00394 DeleteXmlTree();
00395 return m_iLastError;
00396 }
00397 AddTagValue(child, FEDM_XML_STRING_DOC_TYPE_1_UC);
00398 AddTagItem(parent, child);
00399
00400
00401 child = BuildTag(FEDM_XML_TAG_DOC_VERSION_UC, false);
00402 if(child == NULL)
00403 {
00404 DeleteXmlTree();
00405 return m_iLastError;
00406 }
00407 AddTagValue(child, FEDM_XML_STRING_DOC_VERSION_UC);
00408 AddTagItem(parent, child);
00409
00410
00411 child = BuildTag(FEDM_XML_TAG_READER_FAM_UC, false);
00412 if(child == NULL)
00413 {
00414 DeleteXmlTree();
00415 return m_iLastError;
00416 }
00417 #if defined(__BORLANDC__) || defined(_MSC_VER)
00418 swprintf(wcTmp, L"%S", pReader->GetFamilyCode());
00419 #else
00420 swprintf(wcTmp, 128, L"%s", pReader->GetFamilyCode());
00421 #endif
00422 AddTagValue(child, wcTmp);
00423 AddTagItem(parent, child);
00424
00425
00426 child = BuildTag(FEDM_XML_TAG_READER_NAME_UC, false);
00427 if(child == NULL)
00428 {
00429 DeleteXmlTree();
00430 return m_iLastError;
00431 }
00432 #if defined(__BORLANDC__) || defined(_MSC_VER)
00433 swprintf(wcTmp, L"%S", pReader->GetReaderName());
00434 #else
00435 swprintf(wcTmp, 128, L"%s", pReader->GetReaderName());
00436 #endif
00437 AddTagValue(child, wcTmp);
00438 AddTagItem(parent, child);
00439
00440
00441 child = BuildTag(FEDM_XML_TAG_READER_TYPE_UC, false);
00442 if(child == NULL)
00443 {
00444 DeleteXmlTree();
00445 return m_iLastError;
00446 }
00447 #if defined(__BORLANDC__) || defined(_MSC_VER)
00448 swprintf(wcTmp, L"%u", pReader->GetReaderType());
00449 #else
00450 swprintf(wcTmp, 128, L"%u", pReader->GetReaderType());
00451 #endif
00452 AddTagValue(child, wcTmp);
00453 AddTagItem(parent, child);
00454
00455
00456 if(FEDM_IS_USBPORT(iPortHnd))
00457 {
00458 #ifdef _FEDM_USB_SUPPORT
00459
00460 child = BuildTag(FEDM_XML_TAG_DEVICE_ID_UC, false);
00461 if(child == NULL)
00462 {
00463 DeleteXmlTree();
00464 return m_iLastError;
00465 }
00466 #if !defined(_FEDM_SUPPORT_SLINK)
00467 LPFN_FEUSB_GET_DEVICE_PARA lpfn = (LPFN_FEUSB_GET_DEVICE_PARA)pReader->GetFeUsbFunction(FEUSB_GET_DEVICE_PARA);
00468 if(lpfn == NULL)
00469 return FEDM_ERROR_NULL_POINTER;
00470
00471 if(0 == lpfn(iPortHnd, "Device-ID", cValue))
00472 #else
00473 if(0 == FEUSB_GetDevicePara(iPortHnd, "Device-ID", cValue))
00474 #endif
00475 {
00476 #if defined(__BORLANDC__) || defined(_MSC_VER)
00477 swprintf(wcTmp, L"%S", cValue);
00478 #else
00479 swprintf(wcTmp, 128, L"%s", cValue);
00480 #endif
00481 AddTagValue(child, wcTmp);
00482 AddTagItem(parent, child);
00483
00484
00485 child = BuildTag(FEDM_XML_TAG_COMM_MODE_UC, false);
00486 if(child == NULL)
00487 {
00488 DeleteXmlTree();
00489 return m_iLastError;
00490 }
00491 AddTagValue(child, FEDM_XML_STRING_COMM_MODE_USB_UC);
00492 AddTagItem(parent, child);
00493 }
00494 else
00495 {
00496 delete child;
00497 }
00498 #endif
00499 }
00500 else if(FEDM_IS_TCPPORT(iPortHnd))
00501 {
00502 #ifdef _FEDM_TCP_SUPPORT
00503 LPFN_FETCP_GET_SOCKET_PARA lpfn = (LPFN_FETCP_GET_SOCKET_PARA)pReader->GetFeTcpFunction(FETCP_GET_SOCKET_PARA);
00504 if(lpfn != NULL)
00505 {
00506
00507 child = BuildTag(FEDM_XML_TAG_HOSTADR_UC, false);
00508 if(child == NULL)
00509 {
00510 DeleteXmlTree();
00511 return m_iLastError;
00512 }
00513 if(0 == lpfn(iPortHnd, "HostAdr", cValue))
00514 {
00515 #if defined(__BORLANDC__) || defined(_MSC_VER)
00516 swprintf(wcTmp, L"%S", cValue);
00517 #else
00518 swprintf(wcTmp, 128, L"%s", cValue);
00519 #endif
00520 AddTagValue(child, wcTmp);
00521 AddTagItem(parent, child);
00522 }
00523 else
00524 {
00525 delete child;
00526 }
00527
00528
00529 child = BuildTag(FEDM_XML_TAG_PORTNR_UC, false);
00530 if(child == NULL)
00531 {
00532 DeleteXmlTree();
00533 return m_iLastError;
00534 }
00535
00536 if(0 == lpfn(iPortHnd, "PortNr", cValue))
00537 {
00538 #if defined(__BORLANDC__) || defined(_MSC_VER)
00539 swprintf(wcTmp, L"%S", cValue);
00540 #else
00541 swprintf(wcTmp, 128, L"%s", cValue);
00542 #endif
00543 AddTagValue(child, wcTmp);
00544 AddTagItem(parent, child);
00545 }
00546 else
00547 {
00548 delete child;
00549 }
00550
00551
00552 child = BuildTag(FEDM_XML_TAG_COMM_MODE_UC, false);
00553 if(child == NULL)
00554 {
00555 DeleteXmlTree();
00556 return m_iLastError;
00557 }
00558 AddTagValue(child, FEDM_XML_STRING_COMM_MODE_TCP_UC);
00559 AddTagItem(parent, child);
00560 }
00561 #endif
00562 }
00563 else
00564 {
00565 #ifdef _FEDM_COM_SUPPORT
00566 #if !defined(_FEDM_SUPPORT_SLINK)
00567 LPFN_FECOM_GET_PORT_PARA lpfn = (LPFN_FECOM_GET_PORT_PARA)pReader->GetFeComFunction(FECOM_GET_PORT_PARA);
00568 if(lpfn == NULL)
00569 return FEDM_ERROR_NULL_POINTER;
00570 #endif
00571
00572 child = BuildTag(FEDM_XML_TAG_BUSADR_UC, false);
00573 if(child == NULL)
00574 {
00575 DeleteXmlTree();
00576 return m_iLastError;
00577 }
00578 #if defined(__BORLANDC__) || defined(_MSC_VER)
00579 swprintf(wcTmp, L"%d", pReader->GetBusAddress());
00580 #else
00581 swprintf(wcTmp, 128, L"%d", pReader->GetBusAddress());
00582 #endif
00583 AddTagValue(child, wcTmp);
00584 AddTagItem(parent, child);
00585
00586
00587 child = BuildTag(FEDM_XML_TAG_COMPORT_UC, false);
00588 if(child == NULL)
00589 {
00590 DeleteXmlTree();
00591 return m_iLastError;
00592 }
00593
00594 #if !defined(_FEDM_SUPPORT_SLINK)
00595 if(0 == lpfn(iPortHnd, "PortNr", cValue))
00596 #else
00597 if(0 == FECOM_GetPortPara(iPortHnd, "PortNr", cValue))
00598 #endif
00599 {
00600 #if defined(__BORLANDC__) || defined(_MSC_VER)
00601 swprintf(wcTmp, L"%S", cValue);
00602 #else
00603 swprintf(wcTmp, 128, L"%s", cValue);
00604 #endif
00605 AddTagValue(child, wcTmp);
00606 AddTagItem(parent, child);
00607
00608
00609 child = BuildTag(FEDM_XML_TAG_COMM_MODE_UC, false);
00610 if(child == NULL)
00611 {
00612 DeleteXmlTree();
00613 return m_iLastError;
00614 }
00615 AddTagValue(child, FEDM_XML_STRING_COMM_MODE_SERIAL_UC);
00616 AddTagItem(parent, child);
00617 }
00618 else
00619 {
00620 delete child;
00621 }
00622 #endif
00623 }
00624
00625
00626 if(! FEDM_IS_USBPORT(iPortHnd))
00627 {
00628 child = BuildTag(FEDM_XML_TAG_FRAME_SUPPORT, false);
00629 if(child == NULL)
00630 {
00631 DeleteXmlTree();
00632 return m_iLastError;
00633 }
00634 if(pReader->GetProtocolFrameSupport() == FEDM_PRT_FRAME_ADVANCED)
00635 {
00636 #if defined(__BORLANDC__) || defined(_MSC_VER)
00637 swprintf(wcTmp, L"%S", "advanced");
00638 #else
00639 swprintf(wcTmp, 128, L"%s", "advanced");
00640 #endif
00641 }
00642 else
00643 {
00644 #if defined(__BORLANDC__) || defined(_MSC_VER)
00645 swprintf(wcTmp, L"%S", "standard");
00646 #else
00647 swprintf(wcTmp, 128, L"%s", "standard");
00648 #endif
00649 }
00650 AddTagValue(child, wcTmp);
00651 AddTagItem(parent, child);
00652 }
00653
00654
00655
00656 if(m_wsComment.size() > 0)
00657 {
00658 child = BuildTag(FEDM_XML_TAG_COMMENT_UC, false);
00659 if(child == NULL)
00660 {
00661 DeleteXmlTree();
00662 return m_iLastError;
00663 }
00664 AddTagValue(child, m_wsComment);
00665 AddTagItem(parent, child);
00666 }
00667
00668
00669 child = BuildTag(FEDM_XML_TAG_PRG_NAME_UC, false);
00670 if(child == NULL)
00671 {
00672 DeleteXmlTree();
00673 return m_iLastError;
00674 }
00675 AddTagValue(child, m_wsPrgName);
00676 AddTagItem(parent, child);
00677
00678
00679 child = BuildTag(FEDM_XML_TAG_PRG_VERSION_UC, false);
00680 if(child == NULL)
00681 {
00682 DeleteXmlTree();
00683 return m_iLastError;
00684 }
00685 AddTagValue(child, m_wsPrgVer);
00686 AddTagItem(parent, child);
00687
00688
00689 child = BuildTag(FEDM_XML_TAG_FEDM_VERSION_UC, false);
00690 if(child == NULL)
00691 {
00692 DeleteXmlTree();
00693 return m_iLastError;
00694 }
00695 AddTagValue(child, FEDM_VERSION_UC);
00696 AddTagItem(parent, child);
00697
00698
00699 #if !defined(_FEDM_SUPPORT_UCLINUX) && !defined(_WIN32_WCE)
00700 child = BuildTag(FEDM_XML_TAG_DATE_UC, false);
00701 if(child == NULL)
00702 {
00703 DeleteXmlTree();
00704 return m_iLastError;
00705 }
00706 time(<ime);
00707 tmtime = localtime(<ime);
00708 wcsftime(wcTmp, 128, L"%x", tmtime);
00709 AddTagValue(child, wcTmp);
00710 AddTagItem(parent, child);
00711 #endif
00712
00713
00714 #if !defined(_FEDM_SUPPORT_UCLINUX) && !defined(_WIN32_WCE)
00715 child = BuildTag(FEDM_XML_TAG_TIME_UC, false);
00716 if(child == NULL)
00717 {
00718 DeleteXmlTree();
00719 return m_iLastError;
00720 }
00721 wcsftime(wcTmp, 128, L"%X", tmtime);
00722 AddTagValue(child, wcTmp);
00723 AddTagItem(parent, child);
00724 #endif
00725
00726
00727 if(m_pReaderInfo)
00728 {
00729 iBack = AddReaderInfo(pReader, root);
00730 if(iBack)
00731 {
00732 DeleteXmlTree();
00733 return iBack;
00734 }
00735 }
00736
00737
00738 iBack = pReader->SerializeOut(this, root);
00739 if(iBack)
00740 {
00741 DeleteXmlTree();
00742 return iBack;
00743 }
00744
00745 iBack = OpenDoc(sFileName, "w");
00746 if(iBack)
00747 {
00748 DeleteXmlTree();
00749 return iBack;
00750 }
00751 else
00752 {
00753 WriteDoc();
00754 }
00755
00756
00757 CloseDoc();
00758
00759 FEDM_RETURN(FEDM_OK);
00760 }
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775 int FEDM_XMLReaderCfgDataModul::GetReaderInfo(FEDM_DataBase* pReader, FEDM_XML_TREEITEM* root)
00776 {
00777 char cValue[128];
00778 int iTmp = 0;
00779 unsigned int uiReaderType = 0;
00780 FEDM_XML_TREEITEM* reader = NULL;
00781 FEDM_XML_TREEITEM* child = NULL;
00782 FEDM_XML_TREEITEM* sub = NULL;
00783 FEDM_XML_ATTRIBUTE_LIST_ITOR AttrItor;
00784
00785
00786 child = FindTag(FEDM_XML_TAG_READER_INFO_UC, false, true);
00787 if(child == NULL)
00788 return FEDM_OK;
00789
00790 AddTagItem(root, child);
00791 reader = child;
00792
00793
00794 child = FindTag(FEDM_XML_TAG_CONTROLLER_UC, true);
00795 while(child)
00796 {
00797 AddTagItem(reader, child);
00798 sub = child;
00799 for(AttrItor = sub->aAttribList.begin(); AttrItor != sub->aAttribList.end(); AttrItor++)
00800 {
00801 if((*AttrItor)->sAttribute != FEDM_XML_ATTRIB_TYPE_UC)
00802 continue;
00803
00804 if((*AttrItor)->sValue == L"RFC")
00805 {
00806
00807 child = FindTag(FEDM_XML_TAG_READER_TYPE_UC, true);
00808 if(child == NULL)
00809 return FEDM_OK;
00810 AddTagItem(sub, child);
00811 FEDM_SWSCANF(child->sValue, cValue);
00812 sscanf( cValue,
00813 "%u",
00814 (unsigned int*)&uiReaderType );
00815
00816 if(uiReaderType & 0x00000080)
00817 {
00818 m_pReaderInfo->ucReaderClass = (unsigned char)( uiReaderType & 0x000000FF);
00819 m_pReaderInfo->ucReaderClassGen = (unsigned char)((uiReaderType & 0x0000FF00) >> 8);
00820 m_pReaderInfo->ucReaderTypeOfClass = (unsigned char)((uiReaderType & 0x00FF0000) >> 16);
00821 m_pReaderInfo->ucReserved3 = (unsigned char)((uiReaderType & 0xFF000000) >> 24);
00822 }
00823 else
00824 {
00825 m_pReaderInfo->ucReaderType = (unsigned char)(uiReaderType & 0x000000FF);
00826 }
00827
00828
00829 child = FindTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
00830 if(child == NULL)
00831 return FEDM_OK;
00832 AddTagItem(sub, child);
00833 FEDM_SWSCANF(child->sValue, cValue);
00834 sscanf( cValue,
00835 "%d.%d.%d",
00836 (unsigned int*)&m_pReaderInfo->ucRfcSwVer[0],
00837 (unsigned int*)&m_pReaderInfo->ucRfcSwVer[1],
00838 (unsigned int*)&m_pReaderInfo->ucRfcDevVer );
00839
00840
00841
00842 child = FindTag(FEDM_XML_TAG_HARDWARE_TYPE_UC);
00843 if(child == NULL)
00844 return FEDM_OK;
00845 AddTagItem(sub, child);
00846 FEDM_SWSCANF(child->sValue, cValue);
00847 sscanf(cValue, "0x%02X", &iTmp);
00848 m_pReaderInfo->ucRfcHwType = (unsigned char)iTmp;
00849
00850 m_pReaderInfo->bIsMode0x00Read = true;
00851 }
00852 else if((*AttrItor)->sValue == L"ACC")
00853 {
00854 m_pReaderInfo->bIsMode0x01Read = true;
00855 }
00856 else if((*AttrItor)->sValue == L"USBC")
00857 {
00858 m_pReaderInfo->bIsMode0x02Read = true;
00859 }
00860 else if((*AttrItor)->sValue == L"RFD")
00861 {
00862 m_pReaderInfo->bIsMode0x03Read = true;
00863 }
00864 else if((*AttrItor)->sValue == L"FPGA")
00865 {
00866 m_pReaderInfo->bIsMode0x03Read = true;
00867 }
00868 else if((*AttrItor)->sValue == L"BOOT")
00869 {
00870 m_pReaderInfo->bIsMode0x05Read = true;
00871 }
00872 }
00873
00874 child = FindTag(FEDM_XML_TAG_CONTROLLER_UC, false, true, true);
00875 }
00876
00877 m_pReaderInfo->bIsInfoRead = true;
00878 return FEDM_OK;
00879 }
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896 int FEDM_XMLReaderCfgDataModul::AddReaderInfo(FEDM_DataBase* pReader, FEDM_XML_TREEITEM* root)
00897 {
00898 unsigned int uiTmp = 0;
00899 wchar_t wcTmp[128];
00900 FEDM_XML_TREEITEM* reader = NULL;
00901 FEDM_XML_TREEITEM* child = NULL;
00902 FEDM_XML_TREEITEM* sub = NULL;
00903
00904 child = BuildTag(FEDM_XML_TAG_READER_INFO_UC);
00905 if(child == NULL)
00906 {
00907 DeleteXmlTree();
00908 return m_iLastError;
00909 }
00910
00911 AddTagItem(root, child);
00912 reader = child;
00913
00914
00915 child = BuildTag(FEDM_XML_TAG_READER_NAME_UC, false);
00916 if(child == NULL)
00917 {
00918 return m_iLastError;
00919 }
00920 #if defined(__BORLANDC__) || defined(_MSC_VER)
00921 swprintf(wcTmp, L"%S", pReader->GetReaderName());
00922 #else
00923 swprintf(wcTmp, 128, L"%s", pReader->GetReaderName());
00924 #endif
00925 AddTagValue(child, wcTmp);
00926 AddTagItem(reader, child);
00927
00928
00929 child = BuildTag(FEDM_XML_TAG_READER_TYPE_UC, false);
00930 if(child == NULL)
00931 {
00932 return m_iLastError;
00933 }
00934 #if defined(__BORLANDC__) || defined(_MSC_VER)
00935 swprintf(wcTmp, L"%u", pReader->GetReaderType());
00936 #else
00937 swprintf(wcTmp, 128, L"%u", pReader->GetReaderType());
00938 #endif
00939 AddTagValue(child, wcTmp);
00940 AddTagItem(reader, child);
00941
00942
00943
00944
00945
00946 if(m_pReaderInfo->bIsMode0x00Read)
00947 {
00948
00949 child = BuildTag(FEDM_XML_TAG_CONTROLLER_UC);
00950 if(child == NULL)
00951 {
00952 return m_iLastError;
00953 }
00954 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"RFC");
00955 AddTagItem(reader, child);
00956 sub = child;
00957
00958
00959 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
00960 if(child == NULL)
00961 {
00962 return m_iLastError;
00963 }
00964 #if defined(__BORLANDC__) || defined(_MSC_VER)
00965 swprintf(wcTmp, L"%d.%d.%d", m_pReaderInfo->ucRfcSwVer[0], m_pReaderInfo->ucRfcSwVer[1], m_pReaderInfo->ucRfcDevVer);
00966 #else
00967 swprintf(wcTmp, 128, L"%d.%d.%d", m_pReaderInfo->ucRfcSwVer[0], m_pReaderInfo->ucRfcSwVer[1], m_pReaderInfo->ucRfcDevVer);
00968 #endif
00969 AddTagValue(child, wcTmp);
00970 AddTagItem(sub, child);
00971
00972
00973 child = BuildTag(FEDM_XML_TAG_HARDWARE_TYPE_UC);
00974 if(child == NULL)
00975 {
00976 return m_iLastError;
00977 }
00978 #if defined(__BORLANDC__) || defined(_MSC_VER)
00979 swprintf(wcTmp, L"0x%02X", m_pReaderInfo->ucRfcHwType);
00980 #else
00981 swprintf(wcTmp, 128, L"0x%02X", m_pReaderInfo->ucRfcHwType);
00982 #endif
00983 AddTagValue(child, wcTmp);
00984 AddTagItem(sub, child);
00985
00986 if(pReader->GetReaderType() == FEDM_ISC_TYPE_ISCPRHD102)
00987 {
00988
00989 child = BuildTag(FEDM_XML_TAG_HF_TRANSPONDER_DRIVER_UC);
00990 if(child == NULL)
00991 {
00992 return m_iLastError;
00993 }
00994 #if defined(__BORLANDC__) || defined(_MSC_VER)
00995 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcTrType[0], m_pReaderInfo->ucRfcTrType[1]);
00996 #else
00997 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcTrType[0], m_pReaderInfo->ucRfcTrType[1]);
00998 #endif
00999 AddTagValue(child, wcTmp);
01000 AddTagItem(sub, child);
01001
01002
01003 child = BuildTag(FEDM_XML_TAG_UHF_TRANSPONDER_DRIVER_UC);
01004 if(child == NULL)
01005 {
01006 return m_iLastError;
01007 }
01008 #if defined(__BORLANDC__) || defined(_MSC_VER)
01009 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcUhfTrType[0], m_pReaderInfo->ucRfcUhfTrType[1]);
01010 #else
01011 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcUhfTrType[0], m_pReaderInfo->ucRfcUhfTrType[1]);
01012 #endif
01013 AddTagValue(child, wcTmp);
01014 AddTagItem(sub, child);
01015 }
01016 else
01017 {
01018
01019 child = BuildTag(FEDM_XML_TAG_TRANSPONDER_DRIVER_UC);
01020 if(child == NULL)
01021 {
01022 return m_iLastError;
01023 }
01024 #if defined(__BORLANDC__) || defined(_MSC_VER)
01025 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcTrType[0], m_pReaderInfo->ucRfcTrType[1]);
01026 #else
01027 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcTrType[0], m_pReaderInfo->ucRfcTrType[1]);
01028 #endif
01029 AddTagValue(child, wcTmp);
01030 AddTagItem(sub, child);
01031 }
01032
01033
01034 child = BuildTag(FEDM_XML_TAG_RX_BUFFER_SIZE_UC);
01035 if(child == NULL)
01036 {
01037 return m_iLastError;
01038 }
01039 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcRxBufferSize[0]<<8);
01040 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcRxBufferSize[1]);
01041 #if defined(__BORLANDC__) || defined(_MSC_VER)
01042 swprintf(wcTmp, L"%d", uiTmp);
01043 #else
01044 swprintf(wcTmp, 128, L"%d", uiTmp);
01045 #endif
01046 AddTagValue(child, wcTmp);
01047 AddTagItem(sub, child);
01048
01049
01050 child = BuildTag(FEDM_XML_TAG_TX_BUFFER_SIZE_UC);
01051 if(child == NULL)
01052 {
01053 return m_iLastError;
01054 }
01055 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcTxBufferSize[0]<<8);
01056 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcTxBufferSize[1]);
01057 #if defined(__BORLANDC__) || defined(_MSC_VER)
01058 swprintf(wcTmp, L"%d", uiTmp);
01059 #else
01060 swprintf(wcTmp, 128, L"%d", uiTmp);
01061 #endif
01062 AddTagValue(child, wcTmp);
01063 AddTagItem(sub, child);
01064
01065 }
01066
01067
01068
01069
01070 if(m_pReaderInfo->bIsMode0x01Read)
01071 {
01072
01073 child = BuildTag(FEDM_XML_TAG_CONTROLLER_UC);
01074 if(child == NULL)
01075 {
01076 return m_iLastError;
01077 }
01078 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"ACC");
01079 AddTagItem(reader, child);
01080 sub = child;
01081
01082
01083 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
01084 if(child == NULL)
01085 {
01086 return m_iLastError;
01087 }
01088 #if defined(__BORLANDC__) || defined(_MSC_VER)
01089 swprintf(wcTmp, L"%d.%d.%d", m_pReaderInfo->ucAccSwVer[0], m_pReaderInfo->ucAccSwVer[1], m_pReaderInfo->ucAccDevVer);
01090 #else
01091 swprintf(wcTmp, 128, L"%d.%d.%d", m_pReaderInfo->ucAccSwVer[0], m_pReaderInfo->ucAccSwVer[1], m_pReaderInfo->ucAccDevVer);
01092 #endif
01093 AddTagValue(child, wcTmp);
01094 AddTagItem(sub, child);
01095
01096 }
01097
01098
01099
01100
01101 if(m_pReaderInfo->bIsMode0x02Read)
01102 {
01103
01104 child = BuildTag(FEDM_XML_TAG_CONTROLLER_UC);
01105 if(child == NULL)
01106 {
01107 return m_iLastError;
01108 }
01109 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"USBC");
01110 AddTagItem(reader, child);
01111 sub = child;
01112
01113
01114 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
01115 if(child == NULL)
01116 {
01117 return m_iLastError;
01118 }
01119 #if defined(__BORLANDC__) || defined(_MSC_VER)
01120 swprintf(wcTmp, L"%d.%d.%d", m_pReaderInfo->ucUsbSwVer[0], m_pReaderInfo->ucUsbSwVer[1], m_pReaderInfo->ucUsbDevVer);
01121 #else
01122 swprintf(wcTmp, 128, L"%d.%d.%d", m_pReaderInfo->ucUsbSwVer[0], m_pReaderInfo->ucUsbSwVer[1], m_pReaderInfo->ucUsbDevVer);
01123 #endif
01124 AddTagValue(child, wcTmp);
01125 AddTagItem(sub, child);
01126
01127 }
01128
01129
01130
01131
01132
01133 if(m_pReaderInfo->bIsMode0x03Read)
01134 {
01135
01136 child = BuildTag(FEDM_XML_TAG_CONTROLLER_UC);
01137 if(child == NULL)
01138 {
01139 return m_iLastError;
01140 }
01141
01142 switch(m_pReaderInfo->ucReaderType)
01143 {
01144
01145 case FEDM_ISC_TYPE_CPR40_XX_U:
01146 case FEDM_ISC_TYPE_CPR40_XX:
01147 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"RFD");
01148 AddTagItem(reader, child);
01149 sub = child;
01150
01151 child = BuildTag(FEDM_XML_TAG_DECODER_INFO_UC);
01152 if(child == NULL)
01153 {
01154 return m_iLastError;
01155 }
01156 #if defined(__BORLANDC__) || defined(_MSC_VER)
01157 swprintf( wcTmp,
01158 L"0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
01159 m_pReaderInfo->ucDecoderType[0],
01160 m_pReaderInfo->ucDecoderType[1],
01161 m_pReaderInfo->ucDecoderType[2],
01162 m_pReaderInfo->ucDecoderType[3],
01163 m_pReaderInfo->ucDecoderType[4] );
01164 #else
01165 swprintf( wcTmp,
01166 128,
01167 L"0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
01168 m_pReaderInfo->ucDecoderType[0],
01169 m_pReaderInfo->ucDecoderType[1],
01170 m_pReaderInfo->ucDecoderType[2],
01171 m_pReaderInfo->ucDecoderType[3],
01172 m_pReaderInfo->ucDecoderType[4] );
01173 #endif
01174 AddTagValue(child, wcTmp);
01175 AddTagItem(sub, child);
01176
01177
01178 child = BuildTag(FEDM_XML_TAG_SELF_TEST_UC);
01179 if(child == NULL)
01180 {
01181 return m_iLastError;
01182 }
01183 #if defined(__BORLANDC__) || defined(_MSC_VER)
01184 swprintf(wcTmp, L"0x%02X", m_pReaderInfo->ucSelfTest);
01185 #else
01186 swprintf(wcTmp, 128, L"0x%02X", m_pReaderInfo->ucSelfTest);
01187 #endif
01188 AddTagValue(child, wcTmp);
01189 AddTagItem(sub, child);
01190 break;
01191
01192
01193 case FEDM_ISC_TYPE_ISCLR2000:
01194 case FEDM_ISC_TYPE_ISCLR2500_A:
01195 case FEDM_ISC_TYPE_ISCLR2500_B:
01196
01197 case FEDM_ISC_TYPE_ISCMRU200:
01198 case FEDM_ISC_TYPE_ISCLRU2000:
01199 case FEDM_ISC_TYPE_ISCLRU3000:
01200 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"FPGA");
01201 AddTagItem(reader, child);
01202 sub = child;
01203
01204
01205 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
01206 if(child == NULL)
01207 {
01208 return m_iLastError;
01209 }
01210 #if defined(__BORLANDC__) || defined(_MSC_VER)
01211 swprintf(wcTmp, L"%d.%d.%d", m_pReaderInfo->ucFpgaSwVer[0], m_pReaderInfo->ucFpgaSwVer[1], m_pReaderInfo->ucFpgaDevVer);
01212 #else
01213 swprintf(wcTmp, 128, L"%d.%d.%d", m_pReaderInfo->ucFpgaSwVer[0], m_pReaderInfo->ucFpgaSwVer[1], m_pReaderInfo->ucFpgaDevVer);
01214 #endif
01215 AddTagValue(child, wcTmp);
01216 AddTagItem(sub, child);
01217 break;
01218 }
01219
01220 }
01221
01222
01223
01224
01225 if(m_pReaderInfo->bIsMode0x05Read)
01226 {
01227
01228 child = BuildTag(FEDM_XML_TAG_CONTROLLER_UC);
01229 if(child == NULL)
01230 {
01231 return m_iLastError;
01232 }
01233 AddTagAttrib(child, FEDM_XML_ATTRIB_TYPE_UC, L"BOOT");
01234 AddTagItem(reader, child);
01235 sub = child;
01236
01237
01238 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
01239 if(child == NULL)
01240 {
01241 return m_iLastError;
01242 }
01243 #if defined(__BORLANDC__) || defined(_MSC_VER)
01244 swprintf(wcTmp, L"%d.%d", m_pReaderInfo->ucBootSwVer[0], m_pReaderInfo->ucBootSwVer[1]);
01245 #else
01246 swprintf(wcTmp, 128, L"%d.%d", m_pReaderInfo->ucBootSwVer[0], m_pReaderInfo->ucBootSwVer[1]);
01247 #endif
01248 AddTagValue(child, wcTmp);
01249 AddTagItem(sub, child);
01250
01251 }
01252
01253
01254
01255
01256 if(m_pReaderInfo->bIsMode0x04Read)
01257 {
01258
01259 child = BuildTag(FEDM_XML_TAG_ADD_FIRMWARE_INFO_UC);
01260 if(child == NULL)
01261 {
01262 return m_iLastError;
01263 }
01264 AddTagItem(reader, child);
01265 sub = child;
01266
01267 switch(m_pReaderInfo->ucReaderType)
01268 {
01269
01270 case FEDM_ISC_TYPE_CPRM02:
01271 case FEDM_ISC_TYPE_CPR02:
01272 case FEDM_ISC_TYPE_CPR04_U:
01273
01274 child = BuildTag(FEDM_XML_TAG_TEMPLATE_UC);
01275 if(child == NULL)
01276 {
01277 return m_iLastError;
01278 }
01279 #if defined(__BORLANDC__) || defined(_MSC_VER)
01280 swprintf(wcTmp, L"0x%02X", m_pReaderInfo->ucCprFctTemplate);
01281 #else
01282 swprintf(wcTmp, 128, L"0x%02X", m_pReaderInfo->ucCprFctTemplate);
01283 #endif
01284 AddTagValue(child, wcTmp);
01285 AddTagItem(sub, child);
01286
01287
01288 child = BuildTag(FEDM_XML_TAG_FUNCTION_LIST_UC);
01289 if(child == NULL)
01290 {
01291 return m_iLastError;
01292 }
01293 #if defined(__BORLANDC__) || defined(_MSC_VER)
01294 swprintf(wcTmp, L"0x%02X", m_pReaderInfo->ucCprFctList);
01295 #else
01296 swprintf(wcTmp, 128, L"0x%02X", m_pReaderInfo->ucCprFctList);
01297 #endif
01298 AddTagValue(child, wcTmp);
01299 AddTagItem(sub, child);
01300 break;
01301
01302 case FEDM_ISC_TYPE_CPR20_XX:
01303 case FEDM_ISC_TYPE_CPR30_XX:
01304 case FEDM_ISC_TYPE_CPR40_XX_U:
01305 case FEDM_ISC_TYPE_CPR40_XX:
01306 case FEDM_ISC_TYPE_CPR44_XX:
01307 case FEDM_ISC_TYPE_CPR46_XX:
01308 case FEDM_ISC_TYPE_CPR47_XX:
01309 case FEDM_ISC_TYPE_CPR50_XX:
01310 case FEDM_ISC_TYPE_CPR52_XX:
01311 case FEDM_ISC_TYPE_CPR60_XX:
01312 case FEDM_ISC_TYPE_MAX50_XX:
01313
01314 case FEDM_ISC_TYPE_MAX_STANDARD:
01315 case FEDM_ISC_TYPE_MAX_COMFORT:
01316 case FEDM_ISC_TYPE_MAX_ONTOP:
01317
01318 child = BuildTag(FEDM_XML_TAG_TEMPLATE_UC);
01319 if(child == NULL)
01320 {
01321 return m_iLastError;
01322 }
01323 #if defined(__BORLANDC__) || defined(_MSC_VER)
01324 swprintf(wcTmp, L"0x%02X", m_pReaderInfo->ucCprFctTemplate);
01325 #else
01326 swprintf(wcTmp, 128, L"0x%02X", m_pReaderInfo->ucCprFctTemplate);
01327 #endif
01328 AddTagValue(child, wcTmp);
01329 AddTagItem(sub, child);
01330
01331
01332 child = BuildTag(FEDM_XML_TAG_FUNCTION_LIST_UC);
01333 if(child == NULL)
01334 {
01335 return m_iLastError;
01336 }
01337 #if defined(__BORLANDC__) || defined(_MSC_VER)
01338 swprintf(wcTmp, L"0x%02X 0x%02X 0x%02X", m_pReaderInfo->ucCprFctList0, m_pReaderInfo->ucCprFctList1, m_pReaderInfo->ucCprFctList2);
01339 #else
01340 swprintf(wcTmp, 128, L"0x%02X 0x%02X 0x%02X", m_pReaderInfo->ucCprFctList0, m_pReaderInfo->ucCprFctList1, m_pReaderInfo->ucCprFctList2);
01341 #endif
01342 AddTagValue(child, wcTmp);
01343 AddTagItem(sub, child);
01344
01345
01346 child = BuildTag(FEDM_XML_TAG_IDENTIFIER_UC);
01347 if(child == NULL)
01348 {
01349 return m_iLastError;
01350 }
01351 #if defined(__BORLANDC__) || defined(_MSC_VER)
01352 swprintf( wcTmp,
01353 L"0x%02X 0x%02X",
01354 m_pReaderInfo->ucFwIdentifierC[0],
01355 m_pReaderInfo->ucFwIdentifierC[1] );
01356 #else
01357 swprintf( wcTmp,
01358 128,
01359 L"0x%02X 0x%02X",
01360 m_pReaderInfo->ucFwIdentifierC[0],
01361 m_pReaderInfo->ucFwIdentifierC[1] );
01362 #endif
01363 AddTagValue(child, wcTmp);
01364 AddTagItem(sub, child);
01365
01366 case FEDM_ISC_TYPE_ISCMU02:
01367 case FEDM_ISC_TYPE_ISCLR2000:
01368 case FEDM_ISC_TYPE_ISCLR2500_A:
01369 case FEDM_ISC_TYPE_ISCLR2500_B:
01370 case FEDM_ISC_TYPE_ISCLRU2000:
01371 case FEDM_ISC_TYPE_ISCLRU3000:
01372
01373 child = BuildTag(FEDM_XML_TAG_IDENTIFIER_UC);
01374 if(child == NULL)
01375 {
01376 return m_iLastError;
01377 }
01378 #if defined(__BORLANDC__) || defined(_MSC_VER)
01379 swprintf( wcTmp,
01380 L"0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
01381 m_pReaderInfo->ucFwIdentifierB[0],
01382 m_pReaderInfo->ucFwIdentifierB[1],
01383 m_pReaderInfo->ucFwIdentifierB[2],
01384 m_pReaderInfo->ucFwIdentifierB[3],
01385 m_pReaderInfo->ucFwIdentifierB[4],
01386 m_pReaderInfo->ucFwIdentifierB[5],
01387 m_pReaderInfo->ucFwIdentifierB[6],
01388 m_pReaderInfo->ucFwIdentifierB[7],
01389 m_pReaderInfo->ucFwIdentifierB[8],
01390 m_pReaderInfo->ucFwIdentifierB[9],
01391 m_pReaderInfo->ucFwIdentifierB[10] );
01392 #else
01393 swprintf( wcTmp,
01394 128,
01395 L"0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X",
01396 m_pReaderInfo->ucFwIdentifierB[0],
01397 m_pReaderInfo->ucFwIdentifierB[1],
01398 m_pReaderInfo->ucFwIdentifierB[2],
01399 m_pReaderInfo->ucFwIdentifierB[3],
01400 m_pReaderInfo->ucFwIdentifierB[4],
01401 m_pReaderInfo->ucFwIdentifierB[5],
01402 m_pReaderInfo->ucFwIdentifierB[6],
01403 m_pReaderInfo->ucFwIdentifierB[7],
01404 m_pReaderInfo->ucFwIdentifierB[8],
01405 m_pReaderInfo->ucFwIdentifierB[9],
01406 m_pReaderInfo->ucFwIdentifierB[10] );
01407 #endif
01408 AddTagValue(child, wcTmp);
01409 AddTagItem(sub, child);
01410 break;
01411 }
01412
01413 }
01414
01415
01416
01417
01418 if(m_pReaderInfo->bIsMode0x10Read)
01419 {
01420
01421 child = BuildTag(FEDM_XML_TAG_ADD_HARDWARE_INFO_UC);
01422 if(child == NULL)
01423 {
01424 return m_iLastError;
01425 }
01426 AddTagItem(reader, child);
01427 sub = child;
01428
01429 switch(m_pReaderInfo->ucReaderType)
01430 {
01431
01432 case FEDM_ISC_TYPE_ISCPRHD102:
01433 case FEDM_ISC_TYPE_ISCLR2000:
01434 case FEDM_ISC_TYPE_ISCLR2500_A:
01435 case FEDM_ISC_TYPE_ISCLR2500_B:
01436
01437 case FEDM_ISC_TYPE_ISCMRU102:
01438 case FEDM_ISC_TYPE_ISCMRU200:
01439 case FEDM_ISC_TYPE_ISCLRU1000:
01440 case FEDM_ISC_TYPE_ISCLRU2000:
01441 case FEDM_ISC_TYPE_ISCLRU3000:
01442
01443 child = BuildTag(FEDM_XML_TAG_HW_INFO_UC);
01444 if(child == NULL)
01445 {
01446 return m_iLastError;
01447 }
01448 #if defined(__BORLANDC__) || defined(_MSC_VER)
01449 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcHwInfo[0], m_pReaderInfo->ucRfcHwInfo[0]);
01450 #else
01451 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcHwInfo[0], m_pReaderInfo->ucRfcHwInfo[0]);
01452 #endif
01453 AddTagValue(child, wcTmp);
01454 AddTagItem(sub, child);
01455
01456
01457 child = BuildTag(FEDM_XML_TAG_AHW_INFO_UC);
01458 if(child == NULL)
01459 {
01460 return m_iLastError;
01461 }
01462 #if defined(__BORLANDC__) || defined(_MSC_VER)
01463 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcAHw[0], m_pReaderInfo->ucRfcAHw[0]);
01464 #else
01465 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcAHw[0], m_pReaderInfo->ucRfcAHw[0]);
01466 #endif
01467 AddTagValue(child, wcTmp);
01468 AddTagItem(sub, child);
01469
01470
01471 child = BuildTag(FEDM_XML_TAG_DHW_INFO_UC);
01472 if(child == NULL)
01473 {
01474 return m_iLastError;
01475 }
01476 #if defined(__BORLANDC__) || defined(_MSC_VER)
01477 swprintf(wcTmp, L"0x%02X%02X", m_pReaderInfo->ucRfcDHw[0], m_pReaderInfo->ucRfcDHw[0]);
01478 #else
01479 swprintf(wcTmp, 128, L"0x%02X%02X", m_pReaderInfo->ucRfcDHw[0], m_pReaderInfo->ucRfcDHw[0]);
01480 #endif
01481 AddTagValue(child, wcTmp);
01482 AddTagItem(sub, child);
01483
01484 if(m_pReaderInfo->ucRfcFrequency)
01485 {
01486
01487 child = BuildTag(FEDM_XML_TAG_FREQUENCY_UC);
01488 if(child == NULL)
01489 {
01490 return m_iLastError;
01491 }
01492 switch(m_pReaderInfo->ucRfcFrequency&0x03)
01493 {
01494 case 1:
01495 AddTagValue(child, L"EU");
01496 break;
01497 case 2:
01498 AddTagValue(child, L"FCC");
01499 break;
01500 }
01501 AddTagItem(sub, child);
01502 }
01503
01504 break;
01505 }
01506
01507 }
01508
01509
01510
01511
01512 if(m_pReaderInfo->bIsMode0x80Read)
01513 {
01514
01515 child = BuildTag(FEDM_XML_TAG_DEVICE_INFO_UC);
01516 if(child == NULL)
01517 {
01518 return m_iLastError;
01519 }
01520 AddTagItem(reader, child);
01521 sub = child;
01522
01523
01524 child = BuildTag(FEDM_XML_TAG_DEVICE_ID_UC);
01525 if(child == NULL)
01526 {
01527 return m_iLastError;
01528 }
01529 #if defined(__BORLANDC__) || defined(_MSC_VER)
01530 swprintf(wcTmp, L"%u", m_pReaderInfo->GetDeviceID());
01531 #else
01532 swprintf(wcTmp, 128, L"%u", m_pReaderInfo->GetDeviceID());
01533 #endif
01534 AddTagValue(child, wcTmp);
01535 AddTagItem(sub, child);
01536
01537
01538 child = BuildTag(FEDM_XML_TAG_CUSTOMER_ID_UC);
01539 if(child == NULL)
01540 {
01541 return m_iLastError;
01542 }
01543 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseCustom[0]<<24);
01544 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseCustom[1]<<16);
01545 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseCustom[2]<<8);
01546 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseCustom[3]);
01547 #if defined(__BORLANDC__) || defined(_MSC_VER)
01548 swprintf(wcTmp, L"0x%08X", uiTmp);
01549 #else
01550 swprintf(wcTmp, 128, L"0x%08X", uiTmp);
01551 #endif
01552 AddTagValue(child, wcTmp);
01553 AddTagItem(sub, child);
01554
01555
01556 child = BuildTag(FEDM_XML_TAG_FIRMWARE_VERSION_UC);
01557 if(child == NULL)
01558 {
01559 return m_iLastError;
01560 }
01561 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseFw[0]<<8);
01562 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseFw[1]);
01563 #if defined(__BORLANDC__) || defined(_MSC_VER)
01564 swprintf(wcTmp, L"0x%04X", uiTmp);
01565 #else
01566 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01567 #endif
01568 AddTagValue(child, wcTmp);
01569 AddTagItem(sub, child);
01570
01571 if(pReader->GetReaderType() == FEDM_ISC_TYPE_ISCPRHD102)
01572 {
01573
01574 child = BuildTag(FEDM_XML_TAG_HF_TRANSPONDER_DRIVER_UC);
01575 if(child == NULL)
01576 {
01577 return m_iLastError;
01578 }
01579 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseTrType[0]<<8);
01580 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseTrType[1]);
01581 #if defined(__BORLANDC__) || defined(_MSC_VER)
01582 swprintf(wcTmp, L"0x%04X", uiTmp);
01583 #else
01584 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01585 #endif
01586 AddTagValue(child, wcTmp);
01587 AddTagItem(sub, child);
01588
01589
01590 child = BuildTag(FEDM_XML_TAG_HF_READER_FUNCTIONS_UC);
01591 if(child == NULL)
01592 {
01593 return m_iLastError;
01594 }
01595 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseFct[0]<<8);
01596 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseFct[1]);
01597 #if defined(__BORLANDC__) || defined(_MSC_VER)
01598 swprintf(wcTmp, L"0x%04X", uiTmp);
01599 #else
01600 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01601 #endif
01602 AddTagValue(child, wcTmp);
01603 AddTagItem(sub, child);
01604
01605
01606 child = BuildTag(FEDM_XML_TAG_UHF_TRANSPONDER_DRIVER_UC);
01607 if(child == NULL)
01608 {
01609 return m_iLastError;
01610 }
01611 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseUhfTrType[0]<<8);
01612 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseUhfTrType[1]);
01613 #if defined(__BORLANDC__) || defined(_MSC_VER)
01614 swprintf(wcTmp, L"0x%04X", uiTmp);
01615 #else
01616 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01617 #endif
01618 AddTagValue(child, wcTmp);
01619 AddTagItem(sub, child);
01620
01621
01622 child = BuildTag(FEDM_XML_TAG_UHF_READER_FUNCTIONS_UC);
01623 if(child == NULL)
01624 {
01625 return m_iLastError;
01626 }
01627 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseUhfFct[0]<<8);
01628 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseUhfFct[1]);
01629 #if defined(__BORLANDC__) || defined(_MSC_VER)
01630 swprintf(wcTmp, L"0x%04X", uiTmp);
01631 #else
01632 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01633 #endif
01634 AddTagValue(child, wcTmp);
01635 AddTagItem(sub, child);
01636 }
01637 else
01638 {
01639
01640 child = BuildTag(FEDM_XML_TAG_TRANSPONDER_DRIVER_UC);
01641 if(child == NULL)
01642 {
01643 return m_iLastError;
01644 }
01645 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseTrType[0]<<8);
01646 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseTrType[1]);
01647 #if defined(__BORLANDC__) || defined(_MSC_VER)
01648 swprintf(wcTmp, L"0x%04X", uiTmp);
01649 #else
01650 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01651 #endif
01652 AddTagValue(child, wcTmp);
01653 AddTagItem(sub, child);
01654
01655
01656 child = BuildTag(FEDM_XML_TAG_READER_FUNCTIONS_UC);
01657 if(child == NULL)
01658 {
01659 return m_iLastError;
01660 }
01661 uiTmp = ((unsigned int)m_pReaderInfo->ucRfcLicenseFct[0]<<8);
01662 uiTmp += ((unsigned int)m_pReaderInfo->ucRfcLicenseFct[1]);
01663 #if defined(__BORLANDC__) || defined(_MSC_VER)
01664 swprintf(wcTmp, L"0x%04X", uiTmp);
01665 #else
01666 swprintf(wcTmp, 128, L"0x%04X", uiTmp);
01667 #endif
01668 AddTagValue(child, wcTmp);
01669 AddTagItem(sub, child);
01670 }
01671
01672 }
01673
01674 FEDM_RETURN(FEDM_OK);
01675 }
01676
01677
01678
01679
01680
01681
01682
01683
01684
01685
01686
01687
01688
01689
01690
01691
01692
01693
01694 int FEDM_XMLReaderCfgDataModul::QueryDocType(char* sFileName, char* sDocType)
01695 {
01696 int iBack = 0;
01697 FEDM_XML_TREEITEM* root = NULL;
01698 FEDM_XML_TREEITEM* parent = NULL;
01699 FEDM_XML_TREEITEM* child = NULL;
01700
01701
01702 iBack = OpenDoc(sFileName, "r");
01703 if(iBack)
01704 return iBack;
01705
01706
01707 if(IsXmlDoc())
01708 {
01709 CloseDoc();
01710 return m_iLastError;
01711 }
01712
01713
01714 if(HasOBIDTag())
01715 {
01716 CloseDoc();
01717 return m_iLastError;
01718 }
01719
01720
01721 if(ReadDoc())
01722 {
01723 CloseDoc();
01724 return m_iLastError;
01725 }
01726
01727 CloseDoc();
01728
01729
01730 root = FindTag(FEDM_XML_TAG_OBID_UC);
01731 if(root == NULL)
01732 return m_iLastError;
01733 AddTagItem(NULL, root);
01734
01735
01736 child = FindTag(FEDM_XML_TAG_FILE_HDR_UC);
01737 if(child == NULL)
01738 {
01739 DeleteXmlTree();
01740 return m_iLastError;
01741 }
01742 AddTagItem(root, child);
01743 parent = child;
01744
01745
01746 child = FindTag(FEDM_XML_TAG_DOC_TYPE_UC);
01747 if(child == NULL)
01748 {
01749 DeleteXmlTree();
01750 return m_iLastError;
01751 }
01752
01753 #if defined(__BORLANDC__) || defined(_MSC_VER)
01754 swscanf(child->sValue.c_str(), L"%S", sDocType);
01755 #elif defined(_FEDM_SUPPORT_UCLINUX)
01756 FEDM_SWSCANF(child->sValue.c_str(), sDocType);
01757 #else
01758 swscanf(child->sValue.c_str(), L"%s", sDocType);
01759 #endif
01760
01761 delete child;
01762 DeleteXmlTree();
01763
01764 FEDM_RETURN(FEDM_OK);
01765 }
01766
01767
01768
01769
01770
01771
01772
01773
01774
01775
01776
01777
01778
01779 int FEDM_XMLReaderCfgDataModul::QueryDocVersion(char* sFileName, char* sDocVersion)
01780 {
01781 int iBack = 0;
01782 FEDM_XML_TREEITEM* root = NULL;
01783 FEDM_XML_TREEITEM* parent = NULL;
01784 FEDM_XML_TREEITEM* child = NULL;
01785
01786
01787 iBack = OpenDoc(sFileName, "r");
01788 if(iBack)
01789 return iBack;
01790
01791
01792 if(IsXmlDoc())
01793 {
01794 CloseDoc();
01795 return m_iLastError;
01796 }
01797
01798
01799 if(HasOBIDTag())
01800 {
01801 CloseDoc();
01802 return m_iLastError;
01803 }
01804
01805
01806 if(ReadDoc())
01807 {
01808 CloseDoc();
01809 return m_iLastError;
01810 }
01811
01812 CloseDoc();
01813
01814
01815 root = FindTag(FEDM_XML_TAG_OBID_UC);
01816 if(root == NULL)
01817 return m_iLastError;
01818 AddTagItem(NULL, root);
01819
01820
01821 child = FindTag(FEDM_XML_TAG_FILE_HDR_UC);
01822 if(child == NULL)
01823 {
01824 DeleteXmlTree();
01825 return m_iLastError;
01826 }
01827 AddTagItem(root, child);
01828 parent = child;
01829
01830
01831 child = FindTag(FEDM_XML_TAG_DOC_TYPE_UC);
01832 if(child == NULL)
01833 {
01834 DeleteXmlTree();
01835 return m_iLastError;
01836 }
01837 m_wsDocType = child->sValue;
01838 AddTagItem(parent, child);
01839
01840
01841 child = FindTag(FEDM_XML_TAG_DOC_VERSION_UC);
01842 if(child == NULL)
01843 {
01844 DeleteXmlTree();
01845 return m_iLastError;
01846 }
01847
01848 #if defined(__BORLANDC__) || defined(_MSC_VER)
01849 swscanf(child->sValue.c_str(), L"%S", sDocVersion);
01850 #elif defined(_FEDM_SUPPORT_UCLINUX)
01851 FEDM_SWSCANF(child->sValue.c_str(), sDocVersion);
01852 #else
01853 swscanf(child->sValue.c_str(), L"%s", sDocVersion);
01854 #endif
01855
01856 delete child;
01857 DeleteXmlTree();
01858
01859 FEDM_RETURN(FEDM_OK);
01860 }
01861
01862
01863
01864
01865
01866
01867
01868
01869
01870
01871
01872
01873
01874 int FEDM_XMLReaderCfgDataModul::QueryReaderFamily(char* sFileName, char* sFamCode)
01875 {
01876 int iBack = 0;
01877 FEDM_XML_TREEITEM* root = NULL;
01878 FEDM_XML_TREEITEM* parent = NULL;
01879 FEDM_XML_TREEITEM* child = NULL;
01880
01881
01882 iBack = OpenDoc(sFileName, "r");
01883 if(iBack)
01884 return iBack;
01885
01886
01887 if(IsXmlDoc())
01888 {
01889 CloseDoc();
01890 return m_iLastError;
01891 }
01892
01893
01894 if(HasOBIDTag())
01895 {
01896 CloseDoc();
01897 return m_iLastError;
01898 }
01899
01900
01901 if(ReadDoc())
01902 {
01903 CloseDoc();
01904 return m_iLastError;
01905 }
01906
01907 CloseDoc();
01908
01909
01910 root = FindTag(FEDM_XML_TAG_OBID_UC);
01911 if(root == NULL)
01912 return m_iLastError;
01913 AddTagItem(NULL, root);
01914
01915
01916 child = FindTag(FEDM_XML_TAG_FILE_HDR_UC);
01917 if(child == NULL)
01918 {
01919 DeleteXmlTree();
01920 return m_iLastError;
01921 }
01922 AddTagItem(root, child);
01923 parent = child;
01924
01925
01926 child = FindTag(FEDM_XML_TAG_DOC_TYPE_UC);
01927 if(child == NULL)
01928 {
01929 DeleteXmlTree();
01930 return m_iLastError;
01931 }
01932 m_wsDocType = child->sValue;
01933 AddTagItem(parent, child);
01934
01935
01936 child = FindTag(FEDM_XML_TAG_DOC_VERSION_UC);
01937 if(child == NULL)
01938 {
01939 DeleteXmlTree();
01940 return m_iLastError;
01941 }
01942 if(child->sValue != FEDM_XML_STRING_DOC_VERSION_UC)
01943 {
01944 m_wsDocVer = child->sValue;
01945 delete child;
01946 DeleteXmlTree();
01947 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_VERSION);
01948 }
01949 AddTagItem(parent, child);
01950
01951
01952 child = FindTag(FEDM_XML_TAG_READER_FAM_UC);
01953 if(child == NULL)
01954 {
01955 DeleteXmlTree();
01956 return m_iLastError;
01957 }
01958
01959
01960 if(child->sValue.size() > 4)
01961 {
01962 delete child;
01963 DeleteXmlTree();
01964 FEDM_RETURN(FEDM_XML_ERROR_DOC_FILE_FAMILY);
01965 }
01966
01967 #if defined(__BORLANDC__) || defined(_MSC_VER)
01968 swscanf(child->sValue.c_str(), L"%S", sFamCode);
01969 #elif defined(_FEDM_SUPPORT_UCLINUX)
01970 FEDM_SWSCANF(child->sValue.c_str(), sFamCode);
01971 #else
01972 swscanf(child->sValue.c_str(), L"%s", sFamCode);
01973 #endif
01974
01975 delete child;
01976 DeleteXmlTree();
01977
01978 FEDM_RETURN(FEDM_OK);
01979 }
01980
01981
01982
01983
01984
01985
01986
01987
01988
01989
01990
01991
01992 int FEDM_XMLReaderCfgDataModul::QueryReaderType(char* sFileName)
01993 {
01994 char cValue[5];
01995 int iType = 0;
01996 int iBack = 0;
01997 FEDM_XML_TREEITEM* root = NULL;
01998 FEDM_XML_TREEITEM* parent = NULL;
01999 FEDM_XML_TREEITEM* child = NULL;
02000
02001
02002 iBack = OpenDoc(sFileName, "r");
02003 if(iBack)
02004 return iBack;
02005
02006
02007 if(IsXmlDoc())
02008 {
02009 CloseDoc();
02010 return m_iLastError;
02011 }
02012
02013
02014 if(HasOBIDTag())
02015 {
02016 CloseDoc();
02017 return m_iLastError;
02018 }
02019
02020
02021 if(ReadDoc())
02022 {
02023 CloseDoc();
02024 return m_iLastError;
02025 }
02026
02027 CloseDoc();
02028
02029
02030 root = FindTag(FEDM_XML_TAG_OBID_UC);
02031 if(root == NULL)
02032 return m_iLastError;
02033 AddTagItem(NULL, root);
02034
02035
02036 child = FindTag(FEDM_XML_TAG_FILE_HDR_UC);
02037 if(child == NULL)
02038 {
02039 DeleteXmlTree();
02040 return m_iLastError;
02041 }
02042 AddTagItem(root, child);
02043 parent = child;
02044
02045
02046 child = FindTag(FEDM_XML_TAG_DOC_TYPE_UC);
02047 if(child == NULL)
02048 {
02049 DeleteXmlTree();
02050 return m_iLastError;
02051 }
02052 m_wsDocType = child->sValue;
02053 AddTagItem(parent, child);
02054
02055
02056 child = FindTag(FEDM_XML_TAG_DOC_VERSION_UC);
02057 if(child == NULL)
02058 {
02059 DeleteXmlTree();
02060 return m_iLastError;
02061 }
02062 if(child->sValue != FEDM_XML_STRING_DOC_VERSION_UC)
02063 {
02064 m_wsDocVer = child->sValue;
02065 delete child;
02066 DeleteXmlTree();
02067 return FEDM_XML_ERROR_DOC_FILE_VERSION;
02068 }
02069 AddTagItem(parent, child);
02070
02071
02072 child = FindTag(FEDM_XML_TAG_READER_TYPE_UC);
02073 if(child == NULL)
02074 {
02075 DeleteXmlTree();
02076 return m_iLastError;
02077 }
02078
02079 #if defined(__BORLANDC__) || defined(_MSC_VER)
02080 swscanf(child->sValue.c_str(), L"%S", cValue);
02081 #elif defined(_FEDM_SUPPORT_UCLINUX)
02082 FEDM_SWSCANF(child->sValue.c_str(), cValue);
02083 #else
02084 swscanf(child->sValue.c_str(), L"%s", cValue);
02085 #endif
02086 sscanf(cValue, "%d", &iType);
02087
02088 delete child;
02089 DeleteXmlTree();
02090
02091 return iType;
02092 }
02093
02094
02095
02096
02097
02098
02099
02100 void FEDM_XMLReaderCfgDataModul::SetReaderInfo(FEDM_ISC_READER_INFO* pReaderInfo)
02101 {
02102 m_pReaderInfo = pReaderInfo;
02103 }
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114
02115
02116
02117 void FEDM_XMLReaderCfgDataModul::GetComment(string& sComment)
02118 {
02119 char cTmp[256];
02120
02121 if(m_wsComment.size() > 256)
02122 return;
02123
02124 #if defined(__BORLANDC__) || defined(_MSC_VER)
02125 sprintf(cTmp, "%S", m_wsComment.c_str());
02126 #else
02127 sprintf(cTmp, "%s", (const char*)m_wsComment.c_str());
02128 #endif
02129
02130 sComment = cTmp;
02131 }
02132
02133
02134
02135
02136
02137
02138
02139
02140
02141
02142
02143
02144 void FEDM_XMLReaderCfgDataModul::GetPrgName(string& sPrgName)
02145 {
02146 char cTmp[256];
02147
02148 if(m_wsPrgName.size() > 256)
02149 return;
02150
02151 #if defined(__BORLANDC__) || defined(_MSC_VER)
02152 sprintf(cTmp, "%S", m_wsPrgName.c_str());
02153 #else
02154 sprintf(cTmp, "%s", (const char*)m_wsPrgName.c_str());
02155 #endif
02156
02157 sPrgName = cTmp;
02158 }
02159
02160
02161
02162
02163
02164
02165
02166
02167
02168
02169
02170
02171 void FEDM_XMLReaderCfgDataModul::GetPrgVer(string& sPrgVer)
02172 {
02173 char cTmp[256];
02174
02175 if(m_wsPrgVer.size() > 256)
02176 return;
02177
02178 #if defined(__BORLANDC__) || defined(_MSC_VER)
02179 sprintf(cTmp, "%S", m_wsPrgVer.c_str());
02180 #else
02181 sprintf(cTmp, "%s", (const char*)m_wsPrgVer.c_str());
02182 #endif
02183
02184 sPrgVer = cTmp;
02185 }
02186
02187
02188
02189
02190
02191
02192
02193
02194
02195
02196
02197
02198 void FEDM_XMLReaderCfgDataModul::GetHost(string& sHost)
02199 {
02200 char cTmp[256];
02201
02202 if(m_wsHost.size() > 256)
02203 return;
02204
02205 #if defined(__BORLANDC__) || defined(_MSC_VER)
02206 sprintf(cTmp, "%S", m_wsHost.c_str());
02207 #else
02208 sprintf(cTmp, "%s", (const char*)m_wsHost.c_str());
02209 #endif
02210
02211 sHost = cTmp;
02212 }
02213
02214
02215
02216
02217
02218
02219
02220
02221
02222
02223
02224
02225 void FEDM_XMLReaderCfgDataModul::GetPort(string& sPort)
02226 {
02227 char cTmp[256];
02228
02229 if(m_wsPort.size() > 256)
02230 return;
02231
02232 #if defined(__BORLANDC__) || defined(_MSC_VER)
02233 sprintf(cTmp, "%S", m_wsPort.c_str());
02234 #else
02235 sprintf(cTmp, "%s", (const char*)m_wsPort.c_str());
02236 #endif
02237
02238 sPort = cTmp;
02239 }
02240
02241
02242
02243
02244
02245
02246
02247
02248
02249
02250
02251
02252 void FEDM_XMLReaderCfgDataModul::GetCommMode(string& sMode)
02253 {
02254 char cTmp[256];
02255
02256 if(m_wsCommMode.size() > 256)
02257 return;
02258
02259 #if defined(__BORLANDC__) || defined(_MSC_VER)
02260 sprintf(cTmp, "%S", m_wsCommMode.c_str());
02261 #else
02262 sprintf(cTmp, "%s", (const char*)m_wsCommMode.c_str());
02263 #endif
02264
02265 sMode = cTmp;
02266 }
02267
02268
02269
02270
02271
02272
02273
02274
02275
02276
02277
02278
02279 void FEDM_XMLReaderCfgDataModul::SetComment(string sComment)
02280 {
02281 wchar_t wcTmp[256];
02282
02283 if(sComment.size() > 256)
02284 return;
02285
02286 #if defined(__BORLANDC__) || defined(_MSC_VER)
02287 swprintf(wcTmp, L"%S", sComment.c_str());
02288 #else
02289 swprintf(wcTmp, 256, L"%s", sComment.c_str());
02290 #endif
02291
02292 m_wsComment = wcTmp;
02293 }
02294
02295
02296
02297
02298
02299
02300
02301
02302
02303
02304
02305
02306 void FEDM_XMLReaderCfgDataModul::SetPrgName(string sPrgName)
02307 {
02308 wchar_t wcTmp[256];
02309
02310 if(sPrgName.size() > 256)
02311 return;
02312
02313 #if defined(__BORLANDC__) || defined(_MSC_VER)
02314 swprintf(wcTmp, L"%S", sPrgName.c_str());
02315 #else
02316 swprintf(wcTmp, 256, L"%s", sPrgName.c_str());
02317 #endif
02318
02319 m_wsPrgName = wcTmp;
02320 }
02321
02322
02323
02324
02325
02326
02327
02328
02329
02330
02331
02332
02333 void FEDM_XMLReaderCfgDataModul::SetPrgVer(string sPrgVer)
02334 {
02335 wchar_t wcTmp[256];
02336
02337 if(sPrgVer.size() > 256)
02338 return;
02339
02340 #if defined(__BORLANDC__) || defined(_MSC_VER)
02341 swprintf(wcTmp, L"%S", sPrgVer.c_str());
02342 #else
02343 swprintf(wcTmp, 256, L"%s", sPrgVer.c_str());
02344 #endif
02345
02346 m_wsPrgVer = wcTmp;
02347 }
02348
02349 #endif // #ifdef _FEDM_XML_SUPPORT