MV I/O RS232 Serial Port DirectShow Filter
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:
- send I/O data from it`s I/O input pins to the RS232 device
- receive data from the the RS232 device and deliver it to the
corresponding I/O outputpins
- send periodically custom commands to the RS232 device
(e.g. sending ALIVE or polling messages).
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
IMVIORS232
IMVIORS232DataASCII
IMVIORS232DataHex
IMVIORS232RXTXConnection
IMVFilterData
IMVAbout
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.
|
Select COM port
|
Selects the COM port. |
| Select baud rate |
Selects the Baud Rate. Be sure that your hardware
supports this speed. |
| On Pause send... |
Enter the data which will be send to the RS232 device when
the graph switches into pause state. |
| On Start send... |
Enter the data which will be send to the RS232 device when
the graph switches into running state. |
| On Stop send... |
Enter the data which will be send to the RS232 device when
the graph switches into stop state. |
| Transfer Type:
ASCII |
Enter data in ASCII chars. |
| Transfer Type: Binary |
Enter data in hexadecimal values (You may
use prefix 0x for hexadecimal input. All entered data will be
interpreted as hexadecimal values. Valid chars are: 0-9, A-F,
a-f). |
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".
| Input
Pins |
This list shows the currently connected pins of type input or
output (type input pin type is used here). The list is empty if no
pin is connected (see left picture).
|
| Prefix |
Input Pins
: Enter the data which will be sent previous to the
input pin data to the RS232 device. Leave it blank if no data
should be sent.
Output Pins: Enter the preceding data which
is followed by the output pin data received from the RS232
device. If nothing is entered here, the pin won`t get any
data.
|
| Postfix |
Input Pins: Enter the data which is
sent after the input pin data to the RS232 device. ASCII
Mode: If the field is blank, a null character (0x00,
'\0') will be added behind the converted pin value
automatically.
Output Pins: Enter the data which follows the
output pin data received from the RS232 device.
|
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).
|
|