static void createRecords( PVDatabasePtr const &master, ScalarType scalarType, string const &recordNamePrefix, string const &properties) { string recordName = recordNamePrefix; PVStructurePtr pvStructure = standardPVField->scalar(scalarType,properties); PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure); bool result = master->addRecord(pvRecord); if(!result) cout<< "record " << recordName << " not added" << endl; recordName += "Array"; pvStructure = standardPVField->scalarArray(scalarType,properties); pvRecord = PVRecord::create(recordName,pvStructure); result = master->addRecord(pvRecord); }
static void testScalarArrayCommon(string /*fieldName*/,ScalarType stype) { PVStructurePtr pvStructure = standardPVField->scalarArray( stype,alarmTimeStamp); PVScalarArrayPtr scalarArray = pvStructure->getSubField<PVScalarArray>("value"); testOk1(scalarArray.get()!=0); if(stype==pvBoolean) { StringArray values(3); values[0] = "true"; values[1] = "false"; values[2] = "true"; convert->fromStringArray(scalarArray, 0,3,values,0); } else { StringArray values(3); values[0] = "0"; values[1] = "1"; values[2] = "2"; convert->fromStringArray(scalarArray, 0,3,values,0); } PVFieldPtr pvField = pvStructure->getSubField<PVInt>("alarm.status"); testOk1(pvField.get()!=0); }
static void arrayTest() { if(debug) { cout << endl << endl << "****arrayTest****" << endl; } PVStructurePtr pvMaster; string request; PVStructurePtr pvRequest; PVFieldPtr pvMasterField; PVCopyPtr pvCopy; string valueNameMaster; string valueNameCopy; CreateRequest::shared_pointer createRequest = CreateRequest::create(); StandardPVFieldPtr standardPVField = getStandardPVField(); pvMaster = standardPVField->scalarArray(pvDouble,"alarm,timeStamp"); valueNameMaster = request = "value"; pvRequest = createRequest->createRequest(request); if(debug) { cout << "request " << request << endl; } if(debug) { cout << "pvRequest\n" << *pvRequest << endl; } pvCopy = PVCopy::create(pvMaster,pvRequest,""); valueNameCopy = "value"; testPVScalarArray(valueNameMaster,valueNameCopy,pvMaster,pvCopy); request = ""; valueNameMaster = "value"; pvRequest = createRequest->createRequest(request); if(debug) { cout << "request " << request << endl; } if(debug) { cout << "pvRequest\n" << *pvRequest << endl; } pvCopy = PVCopy::create(pvMaster,pvRequest,""); valueNameCopy = "value"; testPVScalarArray(valueNameMaster,valueNameCopy,pvMaster,pvCopy); request = "alarm,timeStamp,value"; valueNameMaster = "value"; pvRequest = createRequest->createRequest(request); if(debug) { cout << "request " << request << endl; } if(debug) { cout << "pvRequest\n" << *pvRequest << endl; } pvCopy = PVCopy::create(pvMaster,pvRequest,""); valueNameCopy = "value"; testPVScalarArray(valueNameMaster,valueNameCopy,pvMaster,pvCopy); }