コード例 #1
0
//val: 0,open; 1,close
void pelcod_open_close_packet_send(u8 val)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
	if(val)//close
		cmd_buff_private[2] = 0x04;
	else
		cmd_buff_private[2] = 0x02;
	cmd_buff_private[3] = 0;
	cmd_buff_private[4] = 0;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);

//	cnt=3;
//	while(cnt--)
//	{
//		if(RT_EOK == rs485_recieve_check(val))
//			break;
//		else
//			rs485_send_data(cmd_buff_private,7);
//	}
}
コード例 #2
0
void rs485_recieve_test(void)
{
	while(1)
	{
		if(RT_EOK == rs485_recieve_check(0x99))
		{

			cam_filter_mode = Rocket_sec_data-1;

			if(cam_filter_mode>3)
			cam_filter_mode = 0;
			iris_mode = Rocket_thr_data&0x0f;
			//iris_motor_mode = (Rocket_thr_data>>4)&0x0f;

			osd_line3_disp(0);


		}
	}

	while(1)
	{
		if(rt_sem_take(uart1_sem, 200) == RT_EOK)
	    {
			rs485_send_data(keyboard_data_buffer, 7);


		}
	}




	
}
コード例 #3
0
ファイル: protocol_send.c プロジェクト: pigeon0411/eb120_ec11
u8 rs485_get_data_from_slave(void)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
		cmd_buff_private[2] = 0;
	cmd_buff_private[3] = 0x88;
	cmd_buff_private[4] = 0;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);
	
	cnt=3;
	while(cnt--)
	{
		if(RT_EOK == rs485_recieve_check(0x88))
			break;
		//else
		//	rs485_send_data(cmd_buff_private,7);
	}

}
コード例 #4
0
void rt_rs485_thread_entry(void* parameter)
{
    char ch;

	while (1)
    {
        /* wait receive */
        if (rt_sem_take(&uart1_dev_my->rx_sem, RT_WAITING_FOREVER) != RT_EOK) continue;

        /* read one character from device */
        while (rt_device_read(uart1_dev_my->device, 0, &ch, 1) == 1)
        {
#if 0
			u8 datatmp;

			datatmp = ch;
			rs485_send_data(&datatmp, 1);

#endif
			
		pelco_rx_isr(ch);
        } /* end of device read */
    }	
	
}
コード例 #5
0
ファイル: rs485.c プロジェクト: qizhihui628/GD_Power_Meter
static void sendNACK(void)
{
	cmdrspbuffer[0] = 0xC0;
	cmdrspbuffer[1] = address;
	cmdrspbuffer[2] = 0x80;
	cmdrspbuffer[3] = 0x89;
	cmdrspbuffer[4] = 0xC0;
	rs485_trans_num = 5;
	rs485_send_data();
}
コード例 #6
0
//cmd,0,stop; 1,tele,2wide; 3,far,4,near
void pelcod_zf_packet_send(u8 cmd,u8 zfspeed)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;


//	if(cmd==1||cmd==2||cmd==3||cmd==4)
//	{
//		if(zfspeed>8)
//			zfspeed = 8;
//		pelcod_call_pre_packet_send(100+zfspeed);
//	}
//	
	switch(cmd)
	{
	case 1:
		cmd_buff_private[3] = 0x20;
		cmd_buff_private[2] = 0;
		
		cmd_buff_private[4] = zfspeed;
		break;
	case 2:
		cmd_buff_private[3] = 0x40;
		cmd_buff_private[2] = 0;
		cmd_buff_private[4] = zfspeed;
		break;
	case 3:
		cmd_buff_private[3] = 0x00;
		cmd_buff_private[2] = 0x01;//
		
		cmd_buff_private[4] = zfspeed;
		break;
	case 4:
		cmd_buff_private[3] = 0x80;
		cmd_buff_private[2] = 0;
		
		cmd_buff_private[4] = zfspeed;
		break;
	case 0:
		cmd_buff_private[3] = 0x00;
		cmd_buff_private[2] = 0;
		break;
	}
	
	//cmd_buff_private[4] = 0;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);
}
コード例 #7
0
void pelcod_stop_packet_send(void)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
		cmd_buff_private[2] = 0;
	cmd_buff_private[3] = 0;
	cmd_buff_private[4] = 0;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);
}
コード例 #8
0
void pelcod_lrud_pre_packet_send(u8 lrudcmd,u8 lrspeed,u8 udspeed)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
	cmd_buff_private[2] = 0;
	cmd_buff_private[3] = lrudcmd;
	cmd_buff_private[4] = lrspeed;
	cmd_buff_private[5] = udspeed;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);
}
コード例 #9
0
void pelcod_set_pre_extend_packet_send(u8 val,u8 cmd)
{
	u8 cnt;
	
	u8 cmd_buff_private[7];
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
	cmd_buff_private[2] = 0xff;
	cmd_buff_private[3] = cmd;
	cmd_buff_private[4] = val;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];
	rs485_send_data(cmd_buff_private,7);
}
コード例 #10
0
ファイル: rs485.c プロジェクト: qizhihui628/GD_Power_Meter
static void sendTemper(void)
{
	uchar rspbuff[RS485BUF_SIZE];
	uchar idx = 0;

	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;

	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = ADE7758Data[0].Temper;
	rspbuff[idx++] = ADE7758Data[1].Temper;


	rs485_trans_num = fillrspbuffer(rspbuff,idx,cmdrspbuffer);
	rs485_send_data();
}
コード例 #11
0
ファイル: rs485.c プロジェクト: qizhihui628/GD_Power_Meter
static void sendPHASE3(void)
{
	uchar rspbuff[RS485BUF_SIZE];
	uchar idx = 0;

	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = (uchar)(ADE7758Data[0].PhaseC.Energy>>24);
	rspbuff[idx++] = (uchar)(ADE7758Data[0].PhaseC.Energy>>16);
	rspbuff[idx++] = (uchar)(ADE7758Data[0].PhaseC.Energy>>8);
	rspbuff[idx++] = (uchar)(ADE7758Data[0].PhaseC.Energy);
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Frequency[0];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Voltage[0];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Voltage[1];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Voltage[2];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Frequency[1];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Current[0];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Current[1];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Current[2];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Active_Power[0];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Active_Power[1];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Apparent_Power[0];
	rspbuff[idx++] = ADE7758Data[0].PhaseC.Apparent_Power[1];
	rspbuff[idx++] = (uchar)(ADE7758Data[1].PhaseC.Energy>>24);
	rspbuff[idx++] = (uchar)(ADE7758Data[1].PhaseC.Energy>>16);
	rspbuff[idx++] = (uchar)(ADE7758Data[1].PhaseC.Energy>>8);
	rspbuff[idx++] = (uchar)(ADE7758Data[1].PhaseC.Energy);
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Frequency[0];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Voltage[0];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Voltage[1];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Voltage[2];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Frequency[1];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Current[0];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Current[1];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Current[2];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Active_Power[0];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Active_Power[1];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Apparent_Power[0];
	rspbuff[idx++] = ADE7758Data[1].PhaseC.Apparent_Power[1];

	rs485_trans_num = fillrspbuffer(rspbuff,idx,cmdrspbuffer);
	rs485_send_data();
}
コード例 #12
0
ファイル: rs485.c プロジェクト: qizhihui628/GD_Power_Meter
static void sendDEV(void)
{
	uchar rspbuff[RS485BUF_SIZE];
	uchar idx = 0;

	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 0x00;
	rspbuff[idx++] = 'S';
	rspbuff[idx++] = 'S';
	rspbuff[idx++] = 'P';
	rspbuff[idx++] = 'O';
	rspbuff[idx++] = 'W';
	rspbuff[idx++] = 'E';
	rspbuff[idx++] = 'R';

	rs485_trans_num = fillrspbuffer(rspbuff,idx,cmdrspbuffer);
	rs485_send_data();
}
コード例 #13
0
u8 rs485_get_data_from_slave_thread(void)
{
	
	static u8 cmd_buff_private[7];

	u8 cam_filter_mode_bak = 0xff,iris_mode_bak=0xff,iris_val_bak=0;
	
	cmd_buff_private[0] = 0xff;
	cmd_buff_private[1] = target_id;
		cmd_buff_private[2] = 0;
	cmd_buff_private[3] = 0x88;
	cmd_buff_private[4] = 0;
	cmd_buff_private[5] = 0;
	
	cmd_buff_private[6] = cmd_buff_private[1] + cmd_buff_private[2] + cmd_buff_private[3] + cmd_buff_private[4] + cmd_buff_private[5];


	while(1)
	{
		rt_thread_delay(800);

		rs485_send_data(cmd_buff_private,7);
	
	
		if(RT_EOK == rs485_recieve_check(0x99))
		{

			cam_filter_mode = Rocket_sec_data-1;

			if(cam_filter_mode>3)
			cam_filter_mode = 0;
			
			iris_mode = Rocket_thr_data&0x0f;
			//iris_motor_mode = (Rocket_thr_data>>4)&0x0f;
			iris_val = Rocket_fou_data;
			if(iris_val>100)
				iris_val=100;

			if(iris_val_bak != iris_val || cam_filter_mode_bak!=cam_filter_mode || iris_mode_bak!= iris_mode)
			{
				iris_val_bak = iris_val;
				cam_filter_mode_bak = cam_filter_mode;
				iris_mode_bak = iris_mode;

				
				osd_line3_disp(0);
				osd_line2_disp(0);
			}

		}
		else
		{
			iris_val = 0xff;
			//iris_motor_mode = 0xff;
		}
		
	}

	//osd_line3_disp(0);
	return 0;
}