func init // adds using namespace sys.add_use('System.IO.Ports') // initialize instance params = this.props('Constructor').value if(params == 'Constructor') params = '' elseif(params == 'Constructor2') params = '' + d("container") elseif(params == 'Constructor3') params = '' + d("portName") elseif(params == 'Constructor4') params = '' + d("portName") + ', ' + d("baudRate") elseif(params == 'Constructor5') params = '' + d("portName") + ', ' + d("baudRate") + ', ' + (isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value) elseif(params == 'Constructor6') params = '' + d("portName") + ', ' + d("baudRate") + ', ' + (isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value) + ', ' + d("dataBits") elseif(params == 'Constructor7') params = '' + d("portName") + ', ' + d("baudRate") + ', ' + (isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value) + ', ' + d("dataBits") + ', ' + (isdef("StopBits") ? d("stopBits") : 'StopBits.' + this.props("StopBits").value) end sys.add_object(this.codename, 'SerialPort', params) // initialize properties sys.set_undef_field('BaudRate') sys.set_undef_field('DataBits') sys.set_typed_field(104, 'DiscardNull') sys.set_typed_field(104, 'DtrEnable') sys.set_undef_field_const('Handshake', this.props('Handshake'), 'System.IO.Ports.Handshake') sys.set_undef_field_const('Parity', this.props('Parity'), 'System.IO.Ports.Parity') sys.set_typed_field(20, 'ParityReplace') sys.set_undef_field('PortName') sys.set_undef_field('ReadBufferSize') sys.set_undef_field('ReadTimeout') sys.set_undef_field('ReceivedBytesThreshold') sys.set_typed_field(104, 'RtsEnable') sys.set_undef_field_const('StopBits', this.props('StopBits'), 'System.IO.Ports.StopBits') sys.set_undef_field('WriteBufferSize') sys.set_undef_field('WriteTimeout') // makes implementation methods for properties sys._prop_init('BaseStream', 1, 0, 0) sys._prop_init('BaudRate', 0, 1, 1) sys._prop_init('BreakState', 1, 1, 104) sys._prop_init('BytesToRead', 1, 0, 1) sys._prop_init('BytesToWrite', 1, 0, 1) sys._prop_init('CDHolding', 1, 0, 104) sys._prop_init('CtsHolding', 1, 0, 104) sys._prop_init('DataBits', 0, 1, 1) sys._prop_init('DiscardNull', 1, 1, 104) sys._prop_init('DsrHolding', 1, 0, 104) sys._prop_init('DtrEnable', 1, 1, 104) sys._prop_init('Encoding', 1, 1, 0) sys._prop_init('Handshake', 1, 1, 0) sys._prop_init('IsOpen', 1, 0, 104) sys._prop_init('NewLine', 1, 1, 2) sys._prop_init('Parity', 0, 1, 0) sys._prop_init('ParityReplace', 1, 1, 0) sys._prop_init('PortName', 0, 1, 2) sys._prop_init('ReadBufferSize', 1, 1, 1) sys._prop_init('ReadTimeout', 1, 1, 1) sys._prop_init('ReceivedBytesThreshold', 1, 1, 1) sys._prop_init('RtsEnable', 1, 1, 104) sys._prop_init('StopBits', 0, 1, 0) sys._prop_init('WriteBufferSize', 1, 1, 1) sys._prop_init('WriteTimeout', 1, 1, 1) // makes implementation of methods as properties sys._mtd_as_prop_init('ReadByte()') sys._mtd_as_prop_init('ReadChar()') sys._mtd_as_prop_init('ReadExisting()') sys._mtd_as_prop_init('ReadLine()') sys._mtd_as_prop_init('SerialPort') // makes implementation of simple methods sys._method_init('Close') sys._method_init('DiscardInBuffer') sys._method_init('DiscardOutBuffer') sys._method_init('Open') // initialize events sys.add_event_type('onDataReceived', 'DataReceived', 'SerialDataReceivedEvent', 'args.EventType') sys.add_event_type('onErrorReceived', 'ErrorReceived', 'SerialErrorReceivedEvent', 'args.EventType') sys.add_event_type('onPinChanged', 'PinChanged', 'SerialPinChangedEvent', 'args.EventType') // initialize common events and properties include("Component-init") end func doConstructor() blk.println(this.codename, ' = new SerialPort();') end func doConstructor2(data) blk.println(this.codename, ' = new SerialPort(', d("container"), ');') end func doConstructor3(data) blk.println(this.codename, ' = new SerialPort(', d("portName"), ');') end func doConstructor4(data) blk.println(this.codename, ' = new SerialPort(', d("portName"), ', ', d("baudRate"), ');') end func doConstructor5(data) blk.println(this.codename, ' = new SerialPort(', d("portName"), ', ', d("baudRate"), ', ', isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value, ');') end func doConstructor6(data) blk.println(this.codename, ' = new SerialPort(', d("portName"), ', ', d("baudRate"), ', ', isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value, ', ', d("dataBits"), ');') end func doConstructor7(data) blk.println(this.codename, ' = new SerialPort(', d("portName"), ', ', d("baudRate"), ', ', isdef("Parity") ? d("parity") : 'Parity.' + this.props("Parity").value, ', ', d("dataBits"), ', ', isdef("StopBits") ? d("stopBits") : 'StopBits.' + this.props("StopBits").value, ');') end func InfiniteTimeout return('SerialPort.InfiniteTimeout') end func GetPortNames return('SerialPort.GetPortNames()') end func doRead(data) if(linked("onRead")) event("onRead", this.codename + '.Read(' + d("buffer") + ', ' + d("offset") + ', ' + d("count") + ')') else blk.println(this.codename, '.Read(', d("buffer"), ', ', d("offset"), ', ', d("count"), ');') end end func doRead2(data) if(linked("onRead")) event("onRead", this.codename + '.Read(' + d("buffer") + ', ' + d("offset") + ', ' + d("count") + ')') else blk.println(this.codename, '.Read(', d("buffer"), ', ', d("offset"), ', ', d("count"), ');') end end func doReadTo(data) if(linked("onReadTo")) event("onReadTo", this.codename + '.ReadTo(' + d("value") + ')') else blk.println(this.codename, '.ReadTo(', d("value"), ');') end end func doWrite(data) blk.println(this.codename, '.Write(', d("text"), ');') end func doWrite2(data) blk.println(this.codename, '.Write(', d("buffer"), ', ', d("offset"), ', ', d("count"), ');') end func doWrite3(data) blk.println(this.codename, '.Write(', d("buffer"), ', ', d("offset"), ', ', d("count"), ');') end func doWriteLine(data) blk.println(this.codename, '.WriteLine(', d("text"), ');') end