diff --git a/pvDataApp/factory/StandardField.cpp b/pvDataApp/factory/StandardField.cpp index e596332..172af00 100644 --- a/pvDataApp/factory/StandardField.cpp +++ b/pvDataApp/factory/StandardField.cpp @@ -65,9 +65,10 @@ StructureConstPtr StandardField::createProperties(String id,FieldConstPtr field, StructureConstPtr valueAlarm; Type type= field->getType(); while(gotValueAlarm) { - if(type==epics::pvData::scalar) { - ScalarConstPtr scalar = static_pointer_cast(field); - ScalarType scalarType = scalar->getScalarType(); + if(type==epics::pvData::scalar || type==epics::pvData::scalarArray) { + ScalarType scalarType = (type==epics::pvData::scalar) ? + static_pointer_cast(field)->getScalarType() : + static_pointer_cast(field)->getElementType(); switch(scalarType) { case pvBoolean: valueAlarm = booleanAlarmField; break; case pvByte: valueAlarm = byteAlarmField; break;