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

📄 rfxtopcx.c

📁 一系列包含串口、Modem、收发传真、终端仿真等方面的编程例子
💻 C
📖 第 1 页 / 共 3 页
字号:
#include<stdio.h>
#include<fcntl.h>
#include<sys\types.h>
#include<sys\stat.h>
#include<setjmp.h>

#define MAKEUP 0x1000
#define SEVENOHS 0x1fff

unsigned char curbyte, bitmask;

int rfxfd;

jmp_buf where;

int debug;

int getbit()
        {
        int result;
        if(!bitmask)
                {
                if(!read(rfxfd, &curbyte, 1))
			{
			printf("Premature end of file.\n");
			exit(1);
			}
		if(curbyte==0x10)
			{
			if(!read(rfxfd, &curbyte, 1))
				{
				printf("Premature end of file.\n");
				exit(1);
				}
			if(curbyte==0x03)
				{
				longjmp(where, -1);
				}
			}
                bitmask=0x80;
		if(debug)
			printf("(%02x)", curbyte);
                }
        result=curbyte&bitmask;
        bitmask>>=1;
	bitmask&=0x7f;
	if(debug)
		if(result)
			putchar('1');
		else
			putchar('0');
	return(result);
        }

int getwhite()
        {
        if(getbit())
         /* 1 */
         if(getbit())
          /* 11 */
          if(getbit())
           /* 111 */
           if(getbit())
            /* 1111 */
            return(7);
           else
            /* 1110 */
            return(6);
          else
           /* 110 */
           if(getbit())
            /* 1101 */
            if(getbit())
             /* 11011 */
             return(MAKEUP|64);
            else
             /* 11010 */
             if(getbit())
              /* 110101 */
              return(15);
             else
              /* 110100 */
              return(14);
           else
            /* 1100 */
            return(5);
         else
          /* 10 */
          if(getbit())
           /* 101 */
           if(getbit())
            /* 1011 */
            return(4);
           else
            /* 1010 */
            if(getbit())
             /* 10101 */
             if(getbit())
              /* 101011 */
              return(17);
             else
              /* 101010 */
              return(16);
            else
             /* 10100 */
             return(9);
          else
           /* 100 */
           if(getbit())
            /* 1001 */
            if(getbit())
             /* 10011 */
             return(8);
            else
             /* 10010 */
             return(MAKEUP|128);
           else
            /* 1000 */
            return(3);
        else
         /* 0 */
         if(getbit())
          /* 01 */
          if(getbit())
           /* 011 */
           if(getbit())
            /* 0111 */
            return(2);
           else
            /* 0110 */
            if(getbit())
             /* 01101 */
             if(getbit())
              /* 011011 */
              if(getbit())
               /* 0110111 */
               return(MAKEUP|256);
              else
               /* 0110110 */
               if(getbit())
                /* 01101101 */
                if(getbit())
                 /* 011011011 */
                 return(MAKEUP|1408);
                else
                 /* 011011010 */
                 return(MAKEUP|1344);
               else
                /* 01101100 */
                if(getbit())
                 /* 011011001 */
                 return(MAKEUP|1280);
                else
                 /* 011011000 */
                 return(MAKEUP|1216);
             else
              /* 011010 */
              if(getbit())
               /* 0110101 */
               if(getbit())
                /* 01101011 */
                if(getbit())
                 /* 011010111 */
                 return(MAKEUP|1152);
                else
                 /* 011010110 */
                 return(MAKEUP|1088);
               else
                /* 01101010 */
                if(getbit())
                 /* 011010101 */
                 return(MAKEUP|1024);
                else
                 /* 011010100 */
                 return(MAKEUP|960);
              else
               /* 0110100 */
               if(getbit())
                /* 01101001 */
                if(getbit())
                 /* 011010011 */
                 return(MAKEUP|896);
                else
                 /* 011010010 */
                 return(MAKEUP|832);
               else
                /* 01101000 */
                return(MAKEUP|576);
            else
             /* 01100 */
             if(getbit())
              /* 011001 */
              if(getbit())
               /* 0110011 */
               if(getbit())
                /* 01100111 */
                return(MAKEUP|640);
               else
                /* 01100110 */
                if(getbit())
                 /* 011001101 */
                 return(MAKEUP|768);
                else
                 /* 011001100 */
                 return(MAKEUP|704);
              else
               /* 0110010 */
               if(getbit())
                /* 01100101 */
                return(MAKEUP|512);
               else
                /* 01100100 */
                return(MAKEUP|448);
             else
              /* 011000 */
              return(MAKEUP|1664);
          else
           /* 010 */
           if(getbit())
            /* 0101 */
            if(getbit())
             /* 01011 */
             if(getbit())
              /* 010111 */
              return(MAKEUP|192);
             else
              /* 010110 */
              if(getbit())
               /* 0101101 */
               if(getbit())
                /* 01011011 */
                return(58);
               else
                /* 01011010 */
                return(57);
              else
               /* 0101100 */
               if(getbit())
                /* 01011001 */
                return(56);
               else
                /* 01011000 */
                return(55);
            else
             /* 01010 */
             if(getbit())
              /* 010101 */
              if(getbit())
               /* 0101011 */
               return(25);
              else
               /* 0101010 */
               if(getbit())
                /* 01010101 */
                return(52);
               else
                /* 01010100 */
                return(51);
             else
              /* 010100 */
              if(getbit())
               /* 0101001 */
               if(getbit())
                /* 01010011 */
                return(50);
               else
                /* 01010010 */
                return(49);
              else
               /* 0101000 */
               return(24);
           else
            /* 0100 */
            if(getbit())
             /* 01001 */
             if(getbit())
              /* 010011 */
              if(getbit())
               /* 0100111 */
               return(18);
              else
               /* 0100110 */
               if(getbit())
                /* 01001101 */
                if(getbit())
                 /* 010011011 */
                 return(MAKEUP|1728);
                else
                 /* 010011010 */
                 return(MAKEUP|1600);
               else
                /* 01001100 */
                if(getbit())
                 /* 010011001 */
                 return(MAKEUP|1536);
                else
                 /* 010011000 */
                 return(MAKEUP|1472);
             else
              /* 010010 */
              if(getbit())
               /* 0100101 */
               if(getbit())
                /* 01001011 */
                return(60);
               else
                /* 01001010 */
                return(59);
              else
               /* 0100100 */
               return(27);
            else
             /* 01000 */
             return(11);
         else
          /* 00 */
          if(getbit())
           /* 001 */
           if(getbit())
            /* 0011 */
            if(getbit())
             /* 00111 */
             return(10);
            else
             /* 00110 */
             if(getbit())
              /* 001101 */
              if(getbit())
               /* 0011011 */
               if(getbit())
                /* 00110111 */
                return(MAKEUP|384);
               else
                /* 00110110 */
                return(MAKEUP|320);
              else
               /* 0011010 */
               if(getbit())
                /* 00110101 */
                return(0);
               else
                /* 00110100 */
                return(63);
             else
              /* 001100 */
              if(getbit())
               /* 0011001 */
               if(getbit())
                /* 00110011 */
                return(62);
               else
                /* 00110010 */
                return(61);
              else
               /* 0011000 */
               return(28);
           else
            /* 0010 */
            if(getbit())
             /* 00101 */
             if(getbit())
              /* 001011 */
              if(getbit())
               /* 0010111 */
               return(21);
              else
               /* 0010110 */
               if(getbit())
                /* 00101101 */
                return(44);
               else
                /* 00101100 */
                return(43);
             else
              /* 001010 */
              if(getbit())
               /* 0010101 */
               if(getbit())
                /* 00101011 */
                return(42);
               else
                /* 00101010 */
                return(41);
              else
               /* 0010100 */
               if(getbit())
                /* 00101001 */
                return(40);
               else
                /* 00101000 */
                return(39);
            else
             /* 00100 */
             if(getbit())
              /* 001001 */
              if(getbit())
               /* 0010011 */
               return(26);
              else
               /* 0010010 */
               if(getbit())
                /* 00100101 */
                return(54);
               else
                /* 00100100 */
                return(53);
             else
              /* 001000 */
              return(12);
          else
           /* 000 */
           if(getbit())
            /* 0001 */
            if(getbit())
             /* 00011 */
             if(getbit())
              /* 000111 */
              return(1);
             else
              /* 000110 */
              if(getbit())
               /* 0001101 */
               if(getbit())
                /* 00011011 */
                return(32);
               else
                /* 00011010 */
                return(31);
              else
               /* 0001100 */
               return(19);
            else
             /* 00010 */
             if(getbit())
              /* 000101 */
              if(getbit())
               /* 0001011 */
               if(getbit())
                /* 00010111 */
                return(38);
               else
                /* 00010110 */
                return(37);
              else
               /* 0001010 */
               if(getbit())
                /* 00010101 */
                return(36);
               else
                /* 00010100 */
                return(35);
             else
              /* 000100 */
              if(getbit())
               /* 0001001 */
               if(getbit())
                /* 00010011 */
                return(34);
               else
                /* 00010010 */
                return(33);
              else
               /* 0001000 */
               return(20);
           else
            /* 0000 */
            if(getbit())
             /* 00001 */
             if(getbit())
              /* 000011 */
              return(13);
             else
              /* 000010 */
              if(getbit())
               /* 0000101 */
               if(getbit())
                /* 00001011 */
                return(48);
               else
                /* 00001010 */
                return(47);
              else
               /* 0000100 */
               return(23);

⌨️ 快捷键说明

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