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

📄 old_task.c

📁 话带数据中传真解调程序
💻 C
字号:
/*
 * Task related routines.
 *
 * Copyright(?) 1999 R.J.M. Close, distribute under GPL
 */

#include "task.h"

// Initiates the relavent type of task with the supplied args.
void x_send_mail (unsigned int arg1, unsigned int arg2, unsigned char* arg3, unsigned int arg4)
{ 
  switch (arg2) {
  case 1: 
	dp_task (arg1, arg3, arg4);
	return;

  case 2:
	at_task (arg1, arg3, arg4);
	return;

  case 3:
	io_task (arg1, arg3, arg4);
	return;

  default:
	printf("x_send_mail: error task type %d not valid!\n", arg2);
	return;
  }
}



void dp_task(unsigned int arg1, unsigned char* arg2, unsigned int arg3)
{

  // Major function, needs filling in!
  //printf("dp_task: (%x, %p, %x);\n", arg1, arg2, arg3);
  if (arg1 > 0x1b) goto loc_290B3;
  if (arg1 >= 0x1a) goto loc_2906D;
  if (arg1 > 0x13) return;

  switch(arg1) {
	//loc_28D38
  case 0:
	 // This is how it is called in  UART_init().
     dp_init_variables();
     if (arg2 == NULL) {
        printf("dp_task: error: arg2 is NULL.\n");
        return;
        }
     if (dp_init_modem() != 1) {

	   *arg2 = 0;
	   x_modem_state = 1;
	   return;
	 }
	 else {
	   *arg2 = 1;
	   x_init_modem_options();
	   // ll_load_modem_options(); Loads options from registry in NT.
	   x_output(0);
	   dp_update_modem_options();
	   x_modem_state = 1;
	   return;
	 }

  case 0x78:
	dp_hdlc_mode();
	return;


  default:
	printf("dp_task: error: case %d not implemented.\n", arg1);
	return;
  }

 loc_2906D:

 loc_290B3:
  // Fill in!
  dp_test_cmd (arg3, arg2);

}

void at_task(unsigned int arg1, unsigned char* arg2, unsigned int arg3)
{

  switch (arg1) {
  case 0:
	at_init_variables();
	return;
  case 0x15: case 0x17: case 0x18: case 0x19: case 0x1a: case 0x1b:
	return;
  case 0x16:
	//atparse_cmd();
	return;
  case 0x1d:

	if (x_dial_residual == 0)
	  at_result_code = 0;
	else if (x_dial_residual == 2)
	  at_result_code = 6;
	else if (x_dial_residual == 1)
	  at_result_code = 7;
	else if (x_dial_residual == 3)
	  at_result_code = 8;
	else if (x_dial_residual == 11)
	  at_result_code = 30;
	else if (x_dial_residual == 12)
	  at_result_code = 31;
	else if (x_dial_residual == 13) 
	  at_result_code = 32;
	else
	  at_result_code = 3;

	  //at_output_msg (0, 0);
	  return;
  
  default:
	// Needs filling in (low priority!).
	printf("at_task(%d, %s, %d): not implemented.\n", arg1, arg2, arg3);
	return;
  }
}

⌨️ 快捷键说明

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