00001 /* 00002 * SpanDSP - a series of DSP components for telephony 00003 * 00004 * constel.h - Display QAM constellations, using the FLTK toolkit. 00005 * 00006 * Written by Steve Underwood <steveu@coppice.org> 00007 * 00008 * Copyright (C) 2004 Steve Underwood 00009 * 00010 * All rights reserved. 00011 * 00012 * This program is free software; you can redistribute it and/or modify 00013 * it under the terms of the GNU General Public License as published by 00014 * the Free Software Foundation; either version 2 of the License, or 00015 * (at your option) any later version. 00016 * 00017 * This program is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU General Public License 00023 * along with this program; if not, write to the Free Software 00024 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00025 * 00026 * $Id: modem_monitor.h,v 1.3 2005/12/08 16:51:00 steveu Exp $ 00027 */ 00028 00029 /*! \page constel_page Modem performance monitoring 00030 \section constel_page_sec_1 What does it do? 00031 This code controls a GUI window, which provides monitoring of the internal status 00032 of a modem. It shows, graphically: 00033 00034 - the constellation, for PSK, QAM and other similar modulations. 00035 - the equalizer status, for modems with adaptive equalizers. 00036 - the carrier frequency. 00037 - the symbol timing correction. 00038 00039 \section constel_page_sec_2 How does it work? 00040 This code uses the FLTK cross platform GUI toolkit. It works on X11 and Windows platforms. 00041 In addition to the basic FLTK toolkit, fltk_cartesian is also required. 00042 */ 00043 00044 #if !defined(_CONSTEL_H_) 00045 #define _CONSTEL_H_ 00046 00047 #ifdef __cplusplus 00048 extern "C" { 00049 #endif 00050 00051 int start_qam_monitor(float constel_width); 00052 int update_qam_monitor(const complex_t *pt); 00053 int update_qam_equalizer_monitor(const complex_t *coeffs, int len); 00054 int update_qam_symbol_tracking(int total_correction); 00055 int update_qam_carrier_tracking(float carrier); 00056 void qam_wait_to_end(void); 00057 00058 #ifdef __cplusplus 00059 } 00060 #endif 00061 00062 #endif 00063 /*- End of file ------------------------------------------------------------*/