EDataCollection writeCollection;// write request EDataCollection *collection = (EDataCollection*)instanceOfEAppChipCard->GetCollection();// make access to collection with readed data EAbstractCardData *data = (EAbstractCardData*)collection->GetClassByType(TYPE_COMMON_DATA); if (!data) return someError;//the problem could be that you didn't read TYPE_COMMON_DATA before writing data->NodeOut();// take the object out of received collection data->SetCardOperation(EAbstractCardData::OPERATION_WRITE); // now you have typecast the object to right one (ECommonCardDataEN*)data; implement here initialization of object writeCollection.InsertLast(data); writeCollection.SetRequestType(EDataCollection::RQ_WRITE); writeCollection.SetSNR(serialNumber);// set here serial number of readed card mClient->SendDataCollection(&writeCollection);
EDataCollection tmpCollection;
tmpCollection.SetRequestType(EDataCollection::RQ_WRITE); tmpCollection.SetSNR(Aktualne seriove cislo karty); EAbstractCardData *tmpData = "Vytvorim data ktore chcem zapisovat";
tmpData->SetCardOperation(EAbstractCardData::OPERATION_WRITE); tmpCollection.InsertLast(tmpData);
//get datacollection, we have it saved when the card was approached for reading EDataCollection *dataCollectionForSend = CopyDataCollection(d->mDataCollectionTemp);//copy datacollection ECommercialDiscounts *commercialDiscountsForSend = (ECommercialDiscounts*)dataCollectionForSend->GetClassByType(TYPE_COMMERCIAL_DISCOUNT); //vytiahnem nod z kolekcie commercialDiscountsForSend->NodeOut(); //create collection for write EDataCollection* dataCollection = new EDataCollection(); dataCollection->SetSNR(commonCardData->GetSNR()); //ktoru komecnu zlavu som zmenil aby bajvoc vedel co zapisat commercialDiscountsForSend->SetIndexToWrite(d->mKomercnaZlavaID); //create and set purse, prepare it for decrement EPurseData *purseData = new EPurseData(); purseData->SetSNR(commonCardData->GetSNR()); purseData->SetValue(commercialDiscountTemp->GetCena()); purseData->SetPurseChangeType(EPurseData::PURSE_DEC); #ifdef QT_4 //nastavim poziadavok na write commercialDiscountsForSend->SetCardOperation(EAbstractCardData::OPERATION_WRITE); //nastavim aj penazenky na write purseData->SetCardOperation(EAbstractCardData::OPERATION_WRITE); #endif commercialDiscountsForSend->SetPurseData(purseData);//nastav penazenku do komercnych zliav //vloz komercne zlavy do datacolection dataCollection->InsertLast(commercialDiscountsForSend); //wait for card approach to write data on card #ifdef QT_4 dataCollection->SetRequestType(EDataCollection::RQ_WRITE); EChipCard::GetInstance().SendAplRequestWrite(dataCollection); #else EBlCard::GetInstance()->GetEAppChipCard()->SendAplRequestWrite(dataCollection); #endif
PotomokEAppChipCard->SendDataCollection(&tmpCollection);