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

📄 p_pelcod-2.c

📁 这是监视器行业常见的键盘与球机通讯协议的C语言源代码
💻 C
字号:
#include "config.h"

//bit ptn_stop_fg;

unsigned char data_dir1;

void (code *ext1)(unsigned char rc);
void p24_word1(unsigned char rc);
void p24_word2(unsigned char rc);
void p24_word3(unsigned char rc);
void p24_word4(unsigned char rc);
void p24_word5(unsigned char rc);
void p24_word6(unsigned char rc);
void p24_word7_1(unsigned char rc);
void p24_word7_2(unsigned char rc);

extern void p24_word1(unsigned char rc) using 1
{
	if (rc == 0xff)
	{ 
		rr = p24_word2;
	}
	else if (rc == 0xfa)
	{
		rr = alarm_word2;
		//rs = p24_word1;
	}	
}

void p24_word2(unsigned char rc) using 1
{
	if (rc != id) 
		rr = p24_word1;
	else
	{
		rr = p24_word3;
		datax = rc;
	}
}

void p24_word3(unsigned char rc) using 1
{
	data3 = rc;
	datax += data3;
	rr = p24_word4;
}

void p24_word4(unsigned char rc) using 1
{
	data4 = rc;
	datax += data4;
	if (ext_fg2)
	{
		ext1 = p24_word7_2;
	}
	else
	{
		ext1 = p24_word7_1;
	}
	rr = p24_word5;
}

void p24_word5(unsigned char rc) using 1
{
	data5 = rc;
	datax += data5;
	rr = p24_word6;
}

void p24_word6(unsigned char rc) using 1
{
	data6 = rc;
	datax += data6;
	rr = ext1;	
}

void p24_word7_1(unsigned char rc) using 1      //standard command
{
	rr = p24_word1;
	if (rc == datax)
	{
		/*if (sense_fg1)
		{
			run_swing2_fg = 1;
			power_on_fg = 1;
		}
		else
		{
			run_swing2_fg = 0;
			power_off_fg = 1;
		}*/
		if (iris_close_fg1)
			iris_close_fg = 1;
		if (iris_open_fg1)
			iris_open_fg = 1;
		if (focus_near_fg1)
		{
			focu_near_fg = 1;
			focus_need_stop = 1;
		}
		if (focus_far_fg1)
		{
			focu_far_fg = 1;
			focus_need_stop = 1;
		}
 	    if (zoom_wide_fg1)
		{
			zoom_wide_fg = 1;
			zoom_need_stop = 1;
		}
		if (zoom_tele_fg1)
		{
			zoom_tele_fg = 1;
			zoom_need_stop = 1;
		}
		if (down_fg||up_fg||left_fg||right_fg)
 	    {
			data_dir1 = data4 & 0x1f;
			switch(data_dir1)
			{
				case 0x02:	//pan turn right
				case 0x04:	//pan turn left
				case 0x10:	//titl down
				case 0x08:	//titl up    						
				case 0x0c:	//pan turn left and titl up								
				case 0x14:	//pan turn right and titl down							
				case 0x0a:	//pan turn right and titl up					
				case 0x12:	//pan turn left and titl down
					cont_fg = 1;
					ptn_stop_fg = 1;
					run_swing_fg = 0;
					run_swing2_fg = 0;
					run_seq2_fg = 0;
					seq[12] = data_dir1; 
					seq[13] = data5;
					seq[14] = data6;
					break;
			}
		}
		if ((!zoom_wide_fg1) && (!zoom_tele_fg1) && (!down_fg) && (!up_fg) && (!left_fg) && (!right_fg))
		{
			if((zoom_need_stop) && (ptn_stop_fg))
			{
				stop_all_fg = 1;
				zoom_need_stop = 0;
				ptn_stop_fg = 0;
			}
		}
		if ((!focus_near_fg1) && (!focus_far_fg1))
		{
			if(_testbit_(focus_need_stop))
				focu_stop_fg = 1;
		}
		if ((!zoom_wide_fg1) && (!zoom_tele_fg1))
		{
			if(_testbit_(zoom_need_stop))
				zoom_stop_fg = 1;
		}
		if ((!down_fg) && (!up_fg) && (!left_fg) && (!right_fg))
		{
			if (_testbit_(ptn_stop_fg))
			{
				cont_fg = 1;
				seq[12] = 0;
			}		
		}
		SIGNAL = 0;
	}
}

void p24_word7_2(unsigned char rc) using 1      //extended command
{
	rr = p24_word1;
	if (rc == datax)
	{
		run_swing_fg = 0;
		run_swing2_fg = 0;
		run_seq2_fg = 0;
		switch(data4)
		{
			case 0x03:
				set_pre_fg = 1;
				seq[15] = data6;
				break;
			case 0x07:
				call_pre_fg = 1;
				seq[15] = data6;
				break;
			case 0x05:
				del_pre_fg = 1;
				seq[15] = data6;
				break;
			case 0x1f:
				set_pre_fg = 1;
				seq[15] = F_SCAN_START;
				break;
			case 0x21:
				set_pre_fg = 1;
				seq[15] = F_SCAN_END;
				break;
			case 0x23:
				run_swing2_fg = 1;
				break;
		}
	SIGNAL = 0;	
	}
}



⌨️ 快捷键说明

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