Subversion Repositories mdb

Rev

Rev 28 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Copyright (C) 2015 by Andreas Theofilu <andreas@theosys.at>
 *
 * All rights reserved. No warranty, explicit or implicit, provided.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Andreas Theofilu and his suppliers, if any.
 * The intellectual and technical concepts contained
 * herein are proprietary to Andreas Theofilu and its suppliers and
 * may be covered by European and Foreign Patents, patents in process,
 * and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Andreas Theofilu.
 */
PROGRAM_NAME='main'

DEFINE_DEVICE
        dvMDB =         0:4:0;                  // Network device

        // Panels
        dvTP1 =         10001:1:0;
        dvTP2 =         10002:1:0;
        dvTP3 =         10003:1:0;
        dvTP4 =         10004:1:0;
        dvTP5 =         10005:1:0;
        dvTP6 =         10006:1:0;

        dvTP1_mdb =     10001:12:0;
        dvTP2_mdb =     10002:12:0;
        dvTP3_mdb =     10003:12:0;
        dvTP4_mdb =     10004:12:0;
        dvTP5_mdb =     10005:12:0;
        dvTP6_mdb =     10006:12:0;

        // Virtual devices
        vdvMDB =        33000:1:0;              // Virtual device for communicating

DEFINE_VARIABLE
        volatile char sIP[] = '10.10.11.219';
        volatile integer nPort = 11003;
        volatile char sPath[] = 'Covers';
        volatile integer nMDBIndex[6];

        dev dvTPs[] = { dvTP1, dvTP2, dvTP3, dvTP4, dvTP5, dvTP6 };
        dev dvTPs_mdb[] = { dvTP1_mdb, dvTP2_mdb, dvTP3_mdb, dvTP4_mdb, dvTP5_mdb, dvTP6_mdb };

define_module 'MDB_Comm' MDBC(dvMDB, vdvMDB, sIP, nPort);
define_module 'MDB_UI'   MDBU(dvTPs_mdb, vdvMDB, sIP, sPath, nMDBIndex);

define_start
        nMDBIndex[1] = 1;
        nMDBIndex[2] = 1;
        nMDBIndex[3] = 1;
        nMDBIndex[4] = 1;
        nMDBIndex[5] = 1;
        nMDBIndex[6] = 1;

define_event
        data_event[dvTPs]
        {
                string:
                {
                stack_var integer pan;

                        pan = get_last(dvTPs);

                        if (find_string(DATA.TEXT, 'KEYP-', 1))
                        {
                                remove_string(DATA.TEXT, 'KEYP-', 1);
                                send_string vdvMDB,"'KEYPAD:',itoa(pan),':',DATA.TEXT,';'";
                        }

                        if (find_string(DATA.TEXT, 'KEYB-', 1))
                        {
                                remove_string(DATA.TEXT, 'KEYB-', 1);
                                send_string vdvMDB,"'KEYBOARD:',itoa(pan),':',DATA.TEXT,';'";
                        }
                }
        }