00001 /* ----------------------------------------------------------------------------- 00002 * align_sort.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 #define MAXTSB 5 00031 00032 /* ---------------------------------------------------------------- */ 00033 /* global variable */ 00034 /* ---------------------------------------------------------------- */ 00035 00036 int front,rear; 00037 00038 //Data Structure for Time Stamp Buffer 00039 struct TimeStampBuffer { 00040 00041 char *soc; 00042 char *fracsec; 00043 struct pmupdc_id_list *idlist; 00044 struct data_frame *first_data_frame; 00045 00046 }TSB[MAXTSB]; 00047 00048 struct pmupdc_id_list { 00049 00050 char *idcode; 00051 int num_pmu; 00052 struct pmupdc_id_list *nextid; 00053 }; 00054 00055 /* ---------------------------------------------------------------- */ 00056 /* Function prototypes */ 00057 /* ---------------------------------------------------------------- */ 00058 00059 void time_align(struct data_frame *df); 00060 void assign_df_to_TSB(struct data_frame *df,int index); 00061 void dispatch(int index); 00062 void sort_data_inside_TSB(int index); 00063 void clear_TSB(int index); 00064 int create_dataframe(int index); 00065 int create_cfgframe();