コード例 #1
0
ファイル: main.c プロジェクト: dydynfnf/lool-Inds-Vibration
int main(void)
{
	int ret;
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
	delay_init(162);//延时初始化
	tim3_init(162);//时钟初始化
	sram_init();//SRAM初始化
	ads1271_init(0);//ad初始化 参数为0 高速模式
	
	led_init();//LED初始化
	read_device_config();//读取flash中设备配置
	current_source_init();//恒流源初始化
	
	ethernet_init();//网络初始化
	tcp_sever();//建立tcp服务器
	while(!is_con());//等待连接
	led_link(1);//开启连接灯

	while(1)
	{
		//INT处理部分
		ret = deal_int();
		if((ret == NET_ERR) || (ret == NET_DISCONNECT))
			sys_restart();//重启
		
		//PRE处理部分
		ret = deal_pre();
		if((ret == NET_ERR) || (ret == NET_DISCONNECT))
			sys_restart();//重启
		
		//DIV处理
		ret = deal_div();
		if((ret == NET_ERR) || (ret == NET_DISCONNECT))
			sys_restart();//重启
		
		//STA处理
		ret = deal_sta();
		if((ret == NET_ERR) || (ret == NET_DISCONNECT))
			sys_restart();//重启
		
		//数据传输
		while(1)
		{
			ret = deal_data();
			if((ret == NET_ERR) || (ret == NET_DISCONNECT))
				sys_restart();//重启
		}
	}
}
コード例 #2
0
ファイル: vis_gui.c プロジェクト: hajuuk/R7000
/* Read query from stream in json format treate it and create answer string
 * The query is a list of commands and treated by 'do_json_command'
 */
static void
create_xml_string(const char *querystring, vis_xml_strings_t *xmlstring)
{
	char *pch;
	char request[VIS_MAX_REQ_LEN] = {0};
	char dutmac[VIS_MAX_MAC_LEN] = {0};
	char stamac[VIS_MAX_MAC_LEN] = {0};
	char band[VIS_MAX_BAND_LEN] = {0};
	char dcon_ip[VIS_MAX_IP_LEN] = {0};
	int isenabled = 0;
	static int donvramread = 1;
	vis_xml_strings_t configxml = {0};
	vis_xml_strings_t graphxml = {0};
	vis_xml_strings_t dutset = {0};
	vis_xml_strings_t pkthdr = {0};

	/* Read NVRAM variable for debug print. Read only once, that is why checking for 1
	 * From next time onwards default value 0 will be set to static var
	 */
	if (donvramread == 1) {
		char *tmpdebugflag = nvram_get("vis_debug_level");
		if (tmpdebugflag)
			vis_debug_level = strtoul(tmpdebugflag, NULL, 0);
		donvramread = 0;
	}

	VIS_DEBUG("Request : %s\n", querystring);

	vis_xml_add_tag_and_attribute(&pkthdr, "PacketVersion", "Name", "\"1\"");
	vis_xml_add_only_tag(&pkthdr, "PacketHeader", TRUE); /* Open packet header tag */
	vis_xml_add_tag_value(&pkthdr, "PacketType", "1");
	vis_xml_add_tag_value(&pkthdr, "From", "2");

	vis_xml_add_only_tag(&configxml, "Config", TRUE); /* Open Config tag */
	vis_xml_add_only_tag(&graphxml, "EnabledGraphs", TRUE); /* Open enabled graphs tag */

	pch = strtok((char*)querystring, "?=&");
	while (pch != NULL) {
		int i;
		enum vis_enum_req_args id = VIS_UNKNOWN;

		for (i = 0; i < (sizeof(vis_req_args_list)/sizeof(vis_req_args)); i++) {
			if (strstr(pch, vis_req_args_list[i].req_name) != NULL) {
				pch = strtok(NULL, "?=&");
				if (pch == NULL)
					break;
				id = vis_req_args_list[i].id;
				break;
			}
		}
		switch (id) {
			case VIS_REQUEST: /* Get the request name */
				snprintf(request, sizeof(request), "%s", pch);
				vis_xml_add_tag_value(&pkthdr, "ReqRespType", request);
				break;
			case VIS_DUTMAC: /* Get the DUTMAC */
				snprintf(dutmac, sizeof(dutmac), "%s", pch);
				break;
			case VIS_STAMAC: /* Get the STAMAC */
				snprintf(stamac, sizeof(stamac), "%s", pch);
				break;
			case VIS_FREQBAND: /* Get the FreqBand */
				snprintf(band, sizeof(band), "%s", pch);
				vis_xml_add_tag_value(&pkthdr, "FreqBand", band);
				break;
			case VIS_INTERVAL: /* Get Interval for config settings */
				vis_xml_add_tag_value(&configxml, "SampleInterval", pch);
				break;
			case VIS_DBSIZE: /* Get Max database size for config settings */
				vis_xml_add_tag_value(&configxml, "dbsize", pch);
				break;
			case VIS_STARTSTOP: /* Tells to stop or start the data collection */
				vis_xml_add_tag_value(&configxml, "startstop", pch);
				break;
			case VIS_TOTAL: /* Get total graph names for config settings */
				vis_xml_add_tag_value(&graphxml, "Total", pch);
				break;
			case VIS_GRAPHNAME: /* Get graphname for config settings */
				vis_xml_add_tag_value(&graphxml, "graphname", pch);
				break;
			case VIS_DCONIP: /* Server IP for remote debug */
				snprintf(dcon_ip, sizeof(dcon_ip), "%s", pch);
				break;
			case VIS_ISREMOTE_ENABLE: /* Flag for remote debugging enabled */
				isenabled = atoi(pch);
				break;
			case VIS_DOSCAN: /* Flag for DO scan flag */
				vis_xml_add_only_tag(&dutset, "DUTSet", TRUE);
				vis_xml_add_tag_value(&dutset, "DoScan", pch);
				vis_xml_add_only_tag(&dutset, "DUTSet", FALSE);
				break;
			case VIS_ISOVERWRITEDB: /* Get Overwrite DB flag for config settings */
				vis_xml_add_tag_value(&configxml, "overwrtdb", pch);
				break;
			case VIS_ISAUTOSTART: /* Get Is Auto Start flag for config settings */
				vis_xml_add_tag_value(&configxml, "autost", pch);
				break;
			case VIS_WEEKDAYS: /* Get Weekdays for config settings */
				vis_xml_add_tag_value(&configxml, "wkdays", pch);
				break;
			case VIS_FROMTM: /* Get From Time for config settings */
				vis_xml_add_tag_value(&configxml, "frmtm", pch);
				break;
			case VIS_TOTM: /* Get To Time for config settings */
				vis_xml_add_tag_value(&configxml, "totm", pch);
				break;
			case VIS_UNKNOWN:
				break;
		}
		pch = strtok(NULL, "?=&");
	}

	if (strcmp(request, "RemoteSettings") == 0) {
		char *tmpdcon_ip = nvram_get("vis_dcon_ipaddr");
		if (tmpdcon_ip == NULL)
			goto vis_fun_end;
		char *value = nvram_get("vis_do_remote_dcon");
		if (value)
			isenabled = atoi(value);
		vis_rdata = (unsigned char*)malloc(sizeof(char) * MAX_READ_BUFFER);
		memset(vis_rdata, 0, MAX_READ_BUFFER);
		snprintf(vis_rdata, MAX_READ_BUFFER, "{\"IsEnabled\":%d,\"ServerIP\":\"%s\"}",
			isenabled, tmpdcon_ip);
		goto vis_fun_end;
	} else if (strcmp(request, "SetRemoteDebug") == 0) {
		char tmpbuf[5] = {0};

		nvram_set("vis_dcon_ipaddr", dcon_ip);
		snprintf(tmpbuf, sizeof(tmpbuf), "%d", isenabled);
		nvram_set("vis_do_remote_dcon", tmpbuf);
		nvram_commit();
		sys_restart();
		goto vis_fun_end;
	}
	vis_xml_add_only_tag(&graphxml, "EnabledGraphs", FALSE); /* Close EnabledGraphs Tag */
	vis_xml_add_only_value(&configxml, graphxml.str);
	vis_xml_add_only_tag(&configxml, "Config", FALSE); /* Close Config Tag */
	vis_xml_add_only_tag(&pkthdr, "PacketHeader", FALSE); /* Close Packet Header Tag */

	vis_xml_add_only_tag(xmlstring, "?xml version=\"1.0\" encoding=\"utf-8\"?", TRUE);
	vis_xml_add_only_value(&pkthdr, configxml.str);
	vis_xml_add_only_tag(&pkthdr, "DUT", TRUE); /* Open DUT tag */
	vis_xml_add_tag_value(&pkthdr, "MAC", dutmac);
	vis_xml_add_tag_value(&pkthdr, "STAMAC", stamac);
	vis_xml_add_only_tag(&pkthdr, "DUT", FALSE); /* Close DUT Tag */
	if (dutset.str)
		vis_xml_add_only_value(&pkthdr, dutset.str);
	vis_xml_add_only_tag(&pkthdr, "PacketVersion", FALSE); /* Clsoe PacketVersion Tag */
	vis_xml_add_only_value(xmlstring, pkthdr.str);

vis_fun_end:
	/* Free the XML data buffers */
	vis_xml_free_data_buffer(&configxml);
	vis_xml_free_data_buffer(&graphxml);
	vis_xml_free_data_buffer(&dutset);
	vis_xml_free_data_buffer(&pkthdr);
}