⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multimon.h

📁 DTMF编解码程序,linux环境下
💻 H
字号:
/* *      multimon.h -- Monitor for many different modulation formats * *      Copyright (C) 1996   *          Thomas Sailer (sailer@ife.ee.ethz.ch, hb9jnx@hb9w.che.eu) * *      This program is free software; you can redistribute it and/or modify *      it under the terms of the GNU General Public License as published by *      the Free Software Foundation; either version 2 of the License, or *      (at your option) any later version. * *      This program is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *      GNU General Public License for more details. * *      You should have received a copy of the GNU General Public License *      along with this program; if not, write to the Free Software *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* ---------------------------------------------------------------------- */#ifndef _MULTIMON_H#define _MULTIMON_H/* ---------------------------------------------------------------------- */extern const float costabf[0x400];#define COS(x) costabf[(((x)>>6)&0x3ffu)]#define SIN(x) COS((x)+0xc000)/* ---------------------------------------------------------------------- */struct demod_state {	const struct demod_param *dem_par;	union {		struct l2_state_hdlc {			unsigned char rxbuf[512];			unsigned char *rxptr;			unsigned int rxstate;			unsigned int rxbitstream;			unsigned int rxbitbuf;		} hdlc;		struct l2_state_pocsag {			unsigned long rx_data;			struct l2_pocsag_rx {				unsigned char rx_sync;				unsigned char rx_word;				unsigned char rx_bit;				char func;				unsigned long adr;				unsigned char buffer[128];				unsigned int numnibbles;			} rx[2];		} pocsag;	} l2;	union {		struct l1_state_poc5 {			unsigned int dcd_shreg;			unsigned int sphase;			unsigned int subsamp;		} poc5;		struct l1_state_poc12 {			unsigned int dcd_shreg;			unsigned int sphase;			unsigned int subsamp;		} poc12;		struct l1_state_poc24 {			unsigned int dcd_shreg;			unsigned int sphase;		} poc24;		struct l1_state_afsk12 {			unsigned int dcd_shreg;			unsigned int sphase;			unsigned int lasts;			unsigned int subsamp;		} afsk12;		struct l1_state_afsk24 {			unsigned int dcd_shreg;			unsigned int sphase;			unsigned int lasts;		} afsk24;		struct l1_state_hapn48 {			unsigned int shreg;			unsigned int sphase;			float lvllo, lvlhi;		} hapn48;		struct l1_state_fsk96 {			unsigned int dcd_shreg;			unsigned int sphase;			unsigned int descram;		} fsk96;		struct l1_state_dtmf {			unsigned int ph[8];			float energy[4];			float tenergy[4][16];			int blkcount;			int lastch;		} dtmf;		struct l1_state_zvei {			unsigned int ph[16];			float energy[4];			float tenergy[4][32];			int blkcount;			int lastch;		} zvei;		struct l1_state_scope {			int datalen;			int dispnum;			float data[512];		} scope;	} l1;};struct demod_param {	const char *name;	unsigned int samplerate;	unsigned int overlap;	void (*init)(struct demod_state *s);	void (*demod)(struct demod_state *s, float *buffer, int length);};/* ---------------------------------------------------------------------- */extern const struct demod_param demod_poc5;extern const struct demod_param demod_poc12;extern const struct demod_param demod_poc24;extern const struct demod_param demod_afsk1200;extern const struct demod_param demod_afsk2400;extern const struct demod_param demod_afsk2400_2;extern const struct demod_param demod_hapn4800;extern const struct demod_param demod_fsk9600;extern const struct demod_param demod_dtmf;extern const struct demod_param demod_zvei;extern const struct demod_param demod_scope;#define ALL_DEMOD &demod_poc5, &demod_poc12, &demod_poc24, \&demod_afsk1200, &demod_afsk2400, &demod_afsk2400_2, &demod_hapn4800, \&demod_fsk9600, &demod_dtmf, &demod_zvei, &demod_scope/* ---------------------------------------------------------------------- */void verbprintf(int verb_level, const char *fmt, ...);void hdlc_init(struct demod_state *s);void hdlc_rxbit(struct demod_state *s, int bit);void pocsag_init(struct demod_state *s);void pocsag_rxbit(struct demod_state *s, int bit);void xdisp_terminate(int cnum);int xdisp_start(void);int xdisp_update(int cnum, float *f);/* ---------------------------------------------------------------------- */#endif /* _MULTIMON_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -