Arp::Plc::Gds::Services::WriteItem structItem; structItem.PortName = "Arp.Plc.Eclr/SwT"; structItem.Value = RscVariant<512>::CreateStructVariant(5); dataItems.WriteNext(structItem); RscStructWriter<512> structWriter{ structItem.Value }; structWriter.WriteNextField((Arp::boolean)true); structWriter.WriteNextField((Arp::uint16)42); structWriter.WriteNextField((Arp::float32)42.31); Arp::System::Rsc::Services::RscString<512> myString("String from C++"); structWriter.WriteNextField(myString); RscVariant<512> arrayField = RscVariant<512>::CreateArrayVariant(2, RscType::Uint16); structWriter.WriteNextField(arrayField); RscArrayWriter arrayFieldWriter{ arrayField }; arrayFieldWriter.WriteNext((Arp::uint16)42); arrayFieldWriter.WriteNext((Arp::uint16)142);