00001 /* ----------------------------------------------------------------------------- 00002 * global.h 00003 * 00004 * iPDC - Phasor Data Concentrator 00005 * 00006 * Copyright (C) 2011 Nitesh Pandit 00007 * Copyright (C) 2011 Kedar V. Khandeparkar 00008 * 00009 * This program is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public License 00011 * as published by the Free Software Foundation; either version 2 00012 * of the License, or (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00022 * 00023 * Authors: 00024 * Kedar V. Khandeparkar <kedar.khandeparkar@gmail.com> 00025 * Nitesh Pandit <panditnitesh@gmail.com> 00026 * 00027 * ----------------------------------------------------------------------------- */ 00028 00029 00030 #include <pthread.h> 00031 #include <netinet/in.h> 00032 #include <stdio.h> 00033 00034 pthread_mutex_t mutex_cfg; // To lock cfg data objects 00035 pthread_mutex_t mutex_file; // To lock cfg.bin 00036 pthread_mutex_t mutex_Lower_Layer_Details; // To lock objects of connection table that hold lower layer PMU/PDC ip and protocol 00037 pthread_mutex_t mutex_Upper_Layer_Details; 00038 pthread_mutex_t mutex_status_change; 00039 00040 unsigned char *cfgframe,*dataframe; 00041 00042 struct sockaddr_in UDP_my_addr,TCP_my_addr; // my address information 00043 struct sockaddr_in UL_UDP_addr,UL_TCP_addr; // connector’s address information 00044 int UL_UDP_sockfd,UL_TCP_sockfd; //socket descriptors 00045 pthread_t UDP_thread,TCP_thread,p_thread; 00046 00047 FILE *fp_log,*fp_updc; 00048 char tname[20]; 00049 00050 /*********************** DataBase ****************************/ 00051 00052 struct sockaddr_in DB_Server_addr; // address information 00053 int DB_sockfd,DB_addr_len; 00054 00055 int PDC_IDCODE,TCPPORT,UDPPORT; 00056 char dbserver_ip[20]; 00057 00058 unsigned char DATASYNC[3],CFGSYNC[3],CMDSYNC[3],CMDDATASEND[3],CMDDATAOFF[3],CMDCFGSEND[3];