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

📄 biosig.c

📁 c++编写的用于生物信号处理的软件库
💻 C
📖 第 1 页 / 共 2 页
字号:
}void leu64a(uint64_t i, uint8_t* r) {	i = l_endian_u64(i);	memcpy(&i,r,sizeof(i));}void lei64a( int64_t i, uint8_t* r) {	i = l_endian_i64(i);	memcpy(&i,r,sizeof(i));}void lef32a( float i, uint8_t* r) {	uint32_t i32 = l_endian_u32(*(uint32_t*)(&i));	memcpy(&i32,r,sizeof(i32));}void lef64a(  double i, uint8_t* r) {	uint64_t i64 = l_endian_u64(*(uint64_t*)(&i));	memcpy(&i64,r,sizeof(i64));}void beu16a(uint16_t i, uint8_t* r) {	i = b_endian_u16(i);	memcpy(&i,r,sizeof(i));};void bei16a( int16_t i, uint8_t* r) {	i = b_endian_i16(i);	memcpy(&i,r,sizeof(i));}void beu32a(uint32_t i, uint8_t* r) {	i = b_endian_u32(i);	memcpy(&i,r,sizeof(i));}void bei32a( int32_t i, uint8_t* r) {	i = b_endian_i32(i);	memcpy(&i,r,sizeof(i));}void beu64a(uint64_t i, uint8_t* r) {	i = b_endian_u64(i);	memcpy(&i,r,sizeof(i));}void bei64a( int64_t i, uint8_t* r) {	i = b_endian_i64(i);	memcpy(&i,r,sizeof(i));}void bef32a(   float i, uint8_t* r) {	uint32_t i32 = b_endian_u32(*(uint32_t*)(&i));	memcpy(&i32,r,sizeof(i32));}void bef64a(  double i, uint8_t* r) {	uint64_t i64 = b_endian_u64(*(uint64_t*)(&i));	memcpy(&i64,r,sizeof(i64));}#endifvoid* mfer_swap8b(uint8_t *buf, int8_t len, char FLAG_SWAP) {		if (VERBOSE_LEVEL==9) 		fprintf(stdout,"swap=%i %i %i \nlen=%i %2x%2x%2x%2x%2x%2x%2x%2x\n",FLAG_SWAP, __BYTE_ORDER, __LITTLE_ENDIAN, len, buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7]); 		typedef uint64_t iType; #if __BYTE_ORDER == __BIG_ENDIAN        if (FLAG_SWAP) {                for (unsigned k=len; k < sizeof(iType); buf[k++]=0);                *(iType*)buf = bswap_64(*(iType*)buf);         }        else                *(iType*)buf >>= (sizeof(iType)-len)*8;#elif __BYTE_ORDER == __LITTLE_ENDIAN        if (FLAG_SWAP)                *(iType*)buf = bswap_64(*(iType*)buf) >> (sizeof(iType)-len)*8;         else		for (unsigned k=len; k < sizeof(iType); buf[k++]=0);#endif	if (VERBOSE_LEVEL==9)			fprintf(stdout,"%2x%2x%2x%2x%2x%2x%2x%2x %Li %f\n",buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],*(uint64_t*)buf,*(double*)buf); 	return(buf); }/* -------------------------------- * float to ascii[8] conversion  * -------------------------------- */int ftoa8(char* buf, double num){	// used for converting scaling factors Dig/Phys/Min/Max into EDF header	// Important note: buf may need more than len+1 bytes. make sure there is enough memory allocated.   	double f1,f2;	sprintf(buf,"%f",num);	f1 = atof(buf); 	buf[8] = 0; 	// truncate 	f2 = atof(buf); 	return (fabs((f1-f2)/(f1+f2)) > 1e-6); }/* physical units are defined in  prEN ISO 11073-10101 (Nov 2003) Health Informatics - Point-of-care medical device communications - Part 10101:Nomenclature (ISO/DIS 11073-10101:2003) Table A.6.1: Table of Decimal Factors CEN/TC251/PT40 2001	 File Exchange Format for Vital Signs - Annex A  Table A.4.1: Table of Decimal Factors	const double scale[32] =*/const struct PhysDimIdx 	{		const uint16_t	idx;		const char*	PhysDimDesc;	} _physdim[] = 	{	{ 0 ,  "?" },	{ 512 ,  "-" },	{ 544 ,  "%" },	{ 576 ,  "ppht" },	{ 608 ,  "ppm" },	{ 640 ,  "" },	{ 672 ,  "ppb" },	{ 704 ,  "ppt" },	{ 736 ,  "degree" },	{ 768 ,  "rad" },	{ 800 ,  "g g-1" },	{ 832 ,  "g kg-1" },	{ 864 ,  "mol mol-1" },	{ 896 ,  "l l-1" },	{ 928 ,  "m m-3 " },	{ 960 ,  "m cm-3" },	{ 6240 ,  "vol %" },	{ 992 ,  "pH" },	{ 1024 ,  "drop" },	{ 1056 ,  "rbc" },	{ 1088 ,  "beat" },	{ 1120 ,  "breath" },	{ 1152 ,  "cell" },	{ 1184 ,  "cough" },	{ 1216 ,  "sigh" },	{ 1248 ,  "%PCV" },	{ 1280 ,  "m" },	{ 1312 ,  "yd" },	{ 1344 ,  "ft" },	{ 1376 ,  "in" },	{ 1408 ,  "lm-2" },	{ 1440 ,  "m-1" },	{ 1472 ,  "m2" },	{ 1504 ,  "in2" },	{ 1536 ,  "m-2" },	{ 1568 ,  "m3" },	{ 1600 ,  "l" },	{ 1632 ,  "l breath-1" },	{ 6112 ,  "l beat-1" },	{ 1664 ,  "m-3" },	{ 1696 ,  "l-1" },	{ 1728 ,  "g" },	{ 1760 ,  "lb" },	{ 1792 ,  "oz" },	{ 1824 ,  "g-1" },	{ 1856 ,  "g m" },	{ 1888 ,  "g m m-2 " },	{ 1920 ,  "kg m2" },	{ 1952 ,  "kg m-2" },	{ 1984 ,  "g m-3 " },	{ 2016 ,  "g cm-3" },	{ 2048 ,  "g l-1" },	{ 2080 ,  "g cl-3" },	{ 2112 ,  "g dl-3" },	{ 2144 ,  "g ml-3" },	{ 2176 ,  "s" },	{ 2208 ,  "min" },	{ 2240 ,  "h" },	{ 2272 ,  "d" },	{ 2304 ,  "weeks" },	{ 2336 ,  "mth" },	{ 2368 ,  "y" },	{ 2400 ,  "TOD" },	{ 2432 ,  "DATE" },	{ 2464 ,  "s-1" },	{ 2496 ,  "Hz" },	{ 2528 ,  "min-1" },	{ 2560 ,  "h-1" },	{ 2592 ,  "d-1" },	{ 2624 ,  "week-1" },	{ 2656 ,  "mth-1" },	{ 2688 ,  "y-1" },	{ 2720 ,  "bpm" },	{ 2752 ,  "puls min-1" },	{ 2784 ,  "resp min-1" },	{ 2816 ,  "m s-1" },	{ 2848 ,  "l min-1 m-2" },	{ 2880 ,  "m2 s-1" },	{ 2912 ,  "m3 s-1" },	{ 2944 ,  "m3 min-1" },	{ 2976 ,  "m3 h-1" },	{ 3008 ,  "m3 d-1" },	{ 3040 ,  "l s-1" },	{ 3072 ,  "l min-1" },	{ 3104 ,  "l h-1" },	{ 3136 ,  "l d-1" },	{ 3168 ,  "l kg-1" },	{ 3200 ,  "m3 d-1" },	{ 3232 ,  "m Pa-1s-1" },	{ 3264 ,  "l min-1 mmHG-1" },	{ 3296 ,  "g s-1" },	{ 3328 ,  "g m-1" },	{ 3360 ,  "g h-1" },	{ 3392 ,  "g d-1" },	{ 3424 ,  "g kg-1 s-1" },	{ 3456 ,  "g kg-1 m-1" },	{ 3488 ,  "g kg-1 h-1" },	{ 3520 ,  "g kg-1 d-1" },	{ 3552 ,  "g l-1 s-1" },	{ 3584 ,  "g l-1 m-1" },	{ 3616 ,  "g l-1 h-1" },	{ 3648 ,  "g l-1 d-1" },	{ 3680 ,  "g m-1 s-1" },	{ 3712 ,  "gm s-1" },	{ 3744 ,  "Ns" },	{ 3776 ,  "N" },	{ 3808 ,  "dyn" },	{ 3840 ,  "Pa" },	{ 3872 ,  "mmHg" },	{ 3904 ,  "cm H2O" },	{ 3936 ,  "bar" },	{ 3968 ,  "J" },	{ 4000 ,  "eV" },	{ 4032 ,  "W" },	{ 4064 ,  "Pa s m-3" },	{ 4096 ,  "Pa s l-1" },	{ 4128 ,  "dyn s cm-5" },	{ 5888 ,  "l (cmH2O)-1" },	{ 6272 ,  "l (mmHg)-1" },	{ 6304 ,  "l Pa-1" },	{ 6144 ,  "cmH2O l-1" },	{ 6336 ,  "mmHg l-1" },	{ 6368 ,  "Pa l-1" },	{ 4160 ,  "A" },	{ 4192 ,  "C" },	{ 6080 ,  "Ah" },	{ 4224 ,  "A m-1" },	{ 4256 ,  "V" },	{ 4288 ,  "Ohm" },	{ 4320 ,  "Wm" },	{ 4352 ,  "F" },	{ 4384 ,  "K" },	{ 6048 ,  "\xB0\x43" },	//癈	{ 4416 ,  "\xB0\x46" }, //癋	{ 4448 ,  "K W-1" },	{ 4480 ,  "cd" },	{ 4512 ,  "osmole" },	{ 4544 ,  "mol" },	{ 4576 ,  "eq" },	{ 4608 ,  "osmol l-1" },	{ 4640 ,  "mol cm-3" },	{ 4672 ,  "mol m-3" },	{ 4704 ,  "mol l-1" },	{ 4736 ,  "mol ml-1" },	{ 4768 ,  "eq cm-3" },	{ 4800 ,  "eq m-3" },	{ 4832 ,  "eq l-1" },	{ 4864 ,  "eq ml-1" },	{ 4896 ,  "osmol  kg-1" },	{ 4928 ,  "mol kg-1" },	{ 4960 ,  "mol s-1" },	{ 4992 ,  "mol min-1" },	{ 5024 ,  "mol h-1" },	{ 5056 ,  "mol d-1" },	{ 5088 ,  "eq s-1" },	{ 5120 ,  "eq min-1" },	{ 5152 ,  "eq h-1" },	{ 5184 ,  "eq d-1" },	{ 5216 ,  "mol kg-1 s-1" },	{ 5248 ,  "mol kg-1 min-1" },	{ 5280 ,  "mol kg-1 h-1" },	{ 5312 ,  "mol kg-1 d-1" },	{ 5344 ,  "eq kg-1 s-1" },	{ 5376 ,  "eq kg-1 min-1" },	{ 5408 ,  "eq kg-1 h-1" },	{ 5440 ,  "eq kg-1 d-1" },	{ 5472 ,  "i.u." },	{ 5504 ,  "i.u. cm-3" },	{ 5536 ,  "i.u. m-3" },	{ 5568 ,  "i.u. l-1" },	{ 5600 ,  "i.u. ml-1" },	{ 5632 ,  "i.u. s-1" },	{ 5664 ,  "i.u. min-1" },	{ 5696 ,  "i.u. h-1" },	{ 5728 ,  "i.u. d-1" },	{ 5760 ,  "i.u. kg-1 s-1" },	{ 5792 ,  "i.u. kg-1 min-1" },	{ 5824 ,  "i.u. kg-1 h-1" },	{ 5856 ,  "i.u. kg-1 d-1" },	{ 5920 ,  "cmH2O l-1s-1" },	{ 5952 ,  "l2s-1" },	{ 5984 ,  "cmH2O %-1" },	{ 6176 ,  "mmHg %-1" },	{ 6208 ,  "Pa %-1" },	{ 6432 ,  "dB" },	{ 6016 ,  "dyne s m-2 cm-5" },	{65344 ,  "mol l-1 mm"}, 	// "light path length","milli(Mol/Liter)*millimeter"		{65376 ,  "r.p.m"}, 		// "rotations per minute"	{65408 ,  "B"}, 		// "Bel", "relative power decibel"		{65440 ,  "dyne s m2 cm-5" },	{65472 ,  "l m-2" },	{65504 ,  "T" },	{0xffff ,  "end-of-table" },};		const char* PhysDimFactor[] = {	"","da","h","k","M","G","T","P",	//  0..7	"E","Z","Y","#","#","#","#","#",	//  8..15	"d","c","m","u","n","p","f","a",	// 16..23	"z","y","#","#","#","#","#","#",	// 24..31	"\xB5"	//hack for "

⌨️ 快捷键说明

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