Vz:Doc:SerControl

From M1Research

(Difference between revisions)
Jump to: navigation, search
 
(6 intermediate revisions not shown)
Line 2: Line 2:
To enable Serial Control protocol make sure you uncommented section [[Vz:Doc:Configuration#serserver|serserver]].
To enable Serial Control protocol make sure you uncommented section [[Vz:Doc:Configuration#serserver|serserver]].
 +
 +
Serial link operates on 115200 speed with odd parity and confired using code:
 +
<pre>    // configure
 +
    DCB lpdcb;
 +
    memset(&lpdcb, 0, sizeof(DCB));
 +
    lpdcb.BaudRate = (UINT) CBR_115200; // 115200 b/s
 +
// a. 1 start bit ( space )
 +
    lpdcb.ByteSize = (BYTE) 8; // b. 8 data bits
 +
    lpdcb.Parity = (BYTE) ODDPARITY; // c. 1 parity bit (odd)
 +
    lpdcb.StopBits = (BYTE) ONESTOPBIT; // d. 1 stop bit (mark)
 +
    lpdcb.fParity = 1;
 +
    lpdcb.fBinary = 1;
 +
    if (!(SetCommState(serial_port_handle, &lpdcb)))
 +
    {
 +
    printf("serserver: ERROR! Unable to configure '%s' [err: %d]\n",serial_port_name, GetLastError());
 +
    ExitThread(0);
 +
    };</pre>
 +
 +
Commands to <b>VZ</b> could be build and parsed by functions from <code>vzCmd.dll</code> (see source code <code>[{{SERVER}}//viewvc/viewvc.cgi/vz/trunk/src/vzCmd/ vzCmd folder]</code> folder).
 +
 +
Commands creating examples (snipplets from <code>tvdevctl</code> automation):
 +
<pre>
 +
    char buf[1024];
 +
    int buf_len = 0;
 +
    int param = 0;
 +
 +
   
 +
    //----------------------------------------------------
 +
 +
    vz_serial_cmd_create
 +
    (
 +
        buf, &buf_len,
 +
        VZ_CMD_RESET_DIRECTOR, "d_ab_mix", &param,
 +
        NULL
 +
    );
 +
 +
    //----------------------------------------------------
 +
 +
    vz_serial_cmd_create
 +
    (
 +
        buf, &buf_len,
 +
        VZ_CMD_START_DIRECTOR, "d_ab_mix", &param,
 +
        NULL
 +
    );
 +
 +
    //----------------------------------------------------
 +
 +
    char artist[1024], title[1024], recorders[1024];
 +
    /*
 +
        set variable here
 +
    */
 +
    vz_serial_cmd_create
 +
    (
 +
        buf, &buf_len,
 +
            VZ_CMD_SET, "t_artist_c", "s_text", artist,
 +
            VZ_CMD_SET, "t_title_c", "s_text", title,
 +
            VZ_CMD_SET, "t_recorder_c", "s_text", recorder,
 +
            NULL
 +
    );
 +
</pre>

Latest revision as of 20:47, 24 March 2007

Serial Control protocol is used to control VZ throw serial link - most usefull to autiomation/playlist transmit system.

To enable Serial Control protocol make sure you uncommented section serserver.

Serial link operates on 115200 speed with odd parity and confired using code:

    // configure
    DCB lpdcb;
    memset(&lpdcb, 0, sizeof(DCB));
    lpdcb.BaudRate = (UINT) CBR_115200;		// 115200 b/s
						// a. 1 start bit ( space )
    lpdcb.ByteSize = (BYTE) 8;			// b. 8 data bits
    lpdcb.Parity = (BYTE) ODDPARITY;		// c. 1 parity bit (odd)
    lpdcb.StopBits = (BYTE) ONESTOPBIT;		// d. 1 stop bit (mark)
    lpdcb.fParity = 1;
    lpdcb.fBinary = 1;
    if (!(SetCommState(serial_port_handle, &lpdcb)))
    {
    	printf("serserver: ERROR! Unable to configure '%s' [err: %d]\n",serial_port_name, GetLastError());
    	ExitThread(0);
    };

Commands to VZ could be build and parsed by functions from vzCmd.dll (see source code vzCmd folder folder).

Commands creating examples (snipplets from tvdevctl automation):

    char buf[1024];
    int buf_len = 0;
    int param = 0;

    
    //----------------------------------------------------

    vz_serial_cmd_create
    (
        buf, &buf_len,
        VZ_CMD_RESET_DIRECTOR, "d_ab_mix", &param,
        NULL
    );

    //----------------------------------------------------

    vz_serial_cmd_create
    (
        buf, &buf_len,
        VZ_CMD_START_DIRECTOR, "d_ab_mix", &param,
        NULL
    );

    //----------------------------------------------------

    char artist[1024], title[1024], recorders[1024];
    /* 
        set variable here
    */
    vz_serial_cmd_create
    (
        buf, &buf_len,
            VZ_CMD_SET, "t_artist_c", "s_text", artist,
            VZ_CMD_SET, "t_title_c", "s_text", title,
            VZ_CMD_SET, "t_recorder_c", "s_text", recorder,
            NULL
    );
Personal tools