The MontiVision I/O RS232 Input and Output Filter is used to communicate with an device via the RS232 port.
It has three major tasks:
The filter supports following I/O pin types:
I/O Pin Type min. value max. value size in bytes UINT8
0 255 1 INT8 -128 128 1 UINT16 0 65535 2 INT16 -32768 32767 2 UINT32 0 4294967295 4 INT32 -2147483648 2147483647 4 UINT64 0 18446744073709551615 8 INT64 -9223372036854775808 9223372036854775807 8 FLOAT ca. 3.4E-38 3.4E+38 4 DOUBLE ca. 1.7E-308 1.7E+308 8 BOOL FALSE = 0 TRUE = 1 1 (RS232)
4 (PC)STRING - - max. 4096
The filter connects to pins with these I/O pin types. It converts each received or sent data (ASCII into hexadecimal and vice versa) on this basis. So be sure to generate and receive (parse) the data properly. A wrong bytesize used for e.g. UINT8 (1 byte length) in combination with numbers higher 255 will create a wrong result.
This MontiVision DirectShow Filter is used in combination with the MontiVision Smart Control in the SendReceiveRS232 Sample Application.
| File: | MVIORS232.ax |
| CLSID: | CLSID_MVIORS232 |
Supported Interfaces
Supported COM Events
The filter supports following events through the IMVFilterEvents interface. Look at the filter events page for more information.
| Event |
Value |
Description |
| MV_CANT_WRITE_TO_COM_PORT_EVENT |
11 |
The filter wasn't able to write data to the COM port. |
| MV_CANT_OPEN_COM_PORT_EVENT |
10 |
The filter couldn't open the COM port. |
| MV_CANT_READ_FROM_COM_PORT_EVENT |
12 |
The filter wasn't able to read data from the COM port. |
| MV_CANT_GET_EVENT_FROM_COM_PORT_EVENT |
13 |
The filter didn't get any reply from the COM port. |
| MV_IO_DATA_RECEIVE_EVENT |
5 |
Signals the receipt of new data from the COM port. |
| MV_RXTXCONNECTION_ON_EVENT |
28 |
Singnals that the Rx and Tx lines are connected. |
| MV_RXTXCONNECTION_OFF_EVENT |
29 |
Singnals that the Rx and Tx lines are disconnected. |
MV I/O RS232 Interface Configuration Property Page
Implements a part of the IMVIORS232 configuartion interface. You can set the com port, baud rate and state information strings.
Transfer Type:
The Transfer Type can be
set to ASCII or Binary. All entered data (implicates all
propertypages) will be interpreted as ASCII if you set it to ASCII.
And the same counts for setting the type to Binary: all data will
be interpreted as binary (hexadecimal) values. You need to add at
least a prefix to deliver data to an outputpin. You may add
prefixes and postfixes to all pins (here).
ASCII:
The data received by the filter`s input pins will be converted to
ASCII. So if your pin uses e.g. an UINT8 MediaType connection, each
UINT8 will be converted to a string and delivered to the RS232
device. The String has a variable length. It is terminated by
a 0x00 (for c programmers: '\0') or by a given postfix
(here).
The data received by the RS232 port will be delivered to the
outputpins. The ASCII data will be converted to the MediaType
used by the outputpin, e.g. INT32. The data must have a prefix and
must be terminated by 0x00 (for c programmers: '\0') or with a
given postfix(here) to
deliver it to an outputpin.
Binary:
The data received by the filter`s input pins will be delivered
without any conversion to the RS232 device. So if you have a UINT8
MediaType connection, the UINT8 (one byte) will be sent to the
RS232 device. The data uses the length of the used MediaType
plus the otpional postfix and prefix (here).
The data received by the RS232 port will be delivered without any
conversion to the outputpins. It depends on the outpupin MediaType,
which datasize is used for each data. The data must have a prefix
and may have postfix (here) to deliver it to an
outputpin.
State information strings:
The state
information strings will be sent to the RS232 device once if the
graph changes the state. If the graph changes its state from
e.g. State_Stopped to State_Paused the entered string (in the upper
example picture "pause") will be sent. If you don`t need the
state information leave the edit boxes blank.
MV I/O RS232 Pin Configuration Property Page
Implements a part of the IMVIORS232 configuartion interface. The I/O input- and output pins are using the same configuration page. In this case we use the inputpin page to explain the usage. Below you see two propertypages. Both pages show the inputpin configuration propertypage. But in the left picture you can see that no inputpin is connected to another filter. In the right picture you see three connected inputpins. We are in ASCII Mode. The pin "Input0" is selected and it`s prefix is set to "In0" and the postfix is set to "0In".
Transfer mode information: you are able to set the transfer mode to BINARY or ASCII MODE (see her here). This setting will be shown above the prefix and postfix.
| ASCII MODE |
Enter data to be sent or to be received in ASCII chars. |
| BINARY MODE (shown in the picture below) |
Enter data to be sent or to be received in hexadecimal chars (you may enter a prefix 0x. All entered characters are interpreted as hexadecimal values. Valid chars are 0-9, A-F, a-f). |
MV I/O RS232 Timer Property Page
Implements a part of the IMVIORS232 configuartion interface. Timers are useful for polling or sending alive messages to you RS232 device. You may add up to 16 timers (multimediatimers) with 1ms resolution. All timers are started the time the graph enters the State_Running. After a timer timed out the entered string will be sent to the RS232 device. You can change each timer`s name.
| Timer | List of defined timers. |
| Add timer | Creates a new timer with a default timer name. |
| Delete timer | Deletes the selected timer. |
| Timer name | Enter a custom timer name for the selected timer. |
| String | This data will be sent periodically to the RS232 device after the given timeout. ASCII MODE: a null (0x00, '\0') will be added after the entered characters to terminate this string. |
| Timeout in ms | Enter the timer interval in ms from 1...9999999 ms. |
Transfer mode information: you are able to set the transfer mode to BINARY or ASCII MODE (see here). This setting will be shown above the string.
| ASCII MODE |
Enter data to be sent or to be received in ASCII chars. |
| BINARY MODE (shown in the picture below) |
Enter data to be sent or to be received in hexadecimal chars (you may enter a prefix 0x. All entered characters are interpreted as hexadecimal value. Valid chars are 0-9, A-F, a-f). |