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

📄 neuro_m.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 4 页
字号:
}WORD NeuroLayerNeuronValueIndex(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 4)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 4) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroLayerNeuronValueIndexLayer(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 4)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 4) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		obj->Syntax.LngInt = obj->Id[idlen-1+NMIB_LOFFSET];		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroLayerNeuronValueIndexNeuron(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 4)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 4) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		obj->Syntax.LngInt = obj->Id[idlen-1+NMIB_NOFFSET];		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroLayerNeuronValueIndexValue(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 4)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 4) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		obj->Syntax.LngInt = obj->Id[idlen-1+NMIB_IOFFSET];		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroNrLayers(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       InOutData* iodata = NULL;LONG l;	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = data->NrLayers;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;	   		if (obj->Syntax.LngInt > MAXNRLAYERS)			return SNMP_BADVALUE;		if ((iodata = ReNewInOutData(data->TargetData,             data->NrLayers >= obj->Syntax.LngInt ? data->NrNeurons[obj->Syntax.LngInt] : 1,            data->NrNeurons[data->NrLayers])) == NULL)			return SNMP_GENERROR;		data->TargetData = iodata;		for (l = data->NrLayers; l < obj->Syntax.LngInt; l++)			data->NrNeurons[l] = 1;		data->NrLayers = obj->Syntax.LngInt;		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroNrNeurons(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       LONG layer;		       InOutData* iodata = NULL;	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 2)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 2) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		layer = obj->Id[idlen-1+NMIB_LOFFSET];		if (layer > data->NrLayers)			return SNMP_NOSUCHNAME;		obj->Syntax.LngInt = data->NrNeurons[layer-1];		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		layer = obj->Id[idlen-1+NMIB_LOFFSET];		if (layer > data->NrLayers)			return SNMP_NOSUCHNAME;		if (obj->Syntax.LngInt < 1 || obj->Syntax.LngInt > MAXNRNEURONS)			return SNMP_BADVALUE;		/*  input or output layer?  */		if (layer == 1)		{		       			if ((iodata = ReNewInOutData(data->InputData, obj->Syntax.LngInt, data->NrNeurons[layer-1])) == NULL)				return SNMP_GENERROR;			data->InputData = iodata;		}		else		if (layer == data->NrLayers)		{			if ((iodata = ReNewInOutData(data->TargetData, obj->Syntax.LngInt, data->NrNeurons[layer-1])) == NULL)				return SNMP_GENERROR;			data->TargetData = iodata;		}			data->NrNeurons[layer-1] = obj->Syntax.LngInt;		if (NeuroAllocBatch(data, data->RequestedSize, TRUE) == FALSE)			return SNMP_GENERROR;		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroNetRefresh(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngUns = data->NetRefresh;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		if (data->Status == SNMP_VALID)		/*  if running change timer  */			if (NeuroCChangeTimer(data, obj->Syntax.LngUns) == FALSE)				return SNMP_GENERROR;		data->NetRefresh = obj->Syntax.LngUns;		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroTrain(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = data->Train;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;        if (obj->Syntax.LngInt < 1 && obj->Syntax.LngInt > LAST_TRAINMETHOD)            return SNMP_BADVALUE;		if (obj->Syntax.LngInt == NEURO_BATCH)		{			data->BatchSize = 0;			data->BatchIndex = 0;		}		data->Train = obj->Syntax.LngInt;		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroRequestedSize(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngUns = data->RequestedSize;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		if (obj->Syntax.LngInt < 1 || obj->Syntax.LngInt > MAXNRPATTERNS)			return SNMP_BADVALUE;		if (NeuroAllocBatch(data, obj->Syntax.LngInt, FALSE) == FALSE)			return SNMP_GENERROR;		data->RequestedSize = obj->Syntax.LngInt;		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroGrantedSize(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = data->GrantedSize;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroBatchSize(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = data->BatchSize;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroLearningRate(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = (LONG)(FLOAT_SCALE*data->LearningRate);		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		data->LearningRate = ((FLOAT)obj->Syntax.LngInt/FLOAT_SCALE);		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroMomentum(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = (LONG)(FLOAT_SCALE*data->Momentum);		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		data->Momentum = ((FLOAT)obj->Syntax.LngInt/FLOAT_SCALE);		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroError(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngInt = (LONG)(FLOAT_SCALE*data->Error);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroTotalSteps(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngUns = data->TotalSteps;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroTrainingSteps(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;		       	if ((local = MibRmon(obj, NeuroDataInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 1) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		obj->Syntax.LngUns = data->TrainSteps;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroDataSource(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL;InOutData* datasource = NULL;LONG layer, neuron;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 3)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 3) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		layer = obj->Id[idlen-1+NMIB_LOFFSET];		neuron = obj->Id[idlen-1+NMIB_NOFFSET];		if (layer != 1 && layer != data->NrLayers)			return SNMP_NOSUCHNAME;		if (neuron > data->NrNeurons[layer-1])			return SNMP_NOSUCHNAME;		if (layer == 1)			datasource = &data->InputData[neuron-1];		else			datasource = &data->TargetData[neuron-1];		memcpy(obj->Syntax.BufInt, datasource->Id, 		       (obj->SyntaxLen = datasource->IdLen)*sizeof(obj->Syntax.BufInt[0]));		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (NeuroData*)local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		layer = obj->Id[idlen-1+NMIB_LOFFSET];		neuron = obj->Id[idlen-1+NMIB_NOFFSET];		if (layer != 1 && layer != data->NrLayers)			return SNMP_NOSUCHNAME;		if (neuron > data->NrNeurons[layer-1])			return SNMP_NOSUCHNAME;		if (layer == 1)			datasource = &data->InputData[neuron-1];		else			datasource = &data->TargetData[neuron-1];        if (obj->SyntaxLen < 2 ||            (obj->SyntaxLen == 2 && (obj->Syntax.BufInt[0] != 0 || obj->Syntax.BufInt[1] != 0)))            return SNMP_BADVALUE;		memcpy(datasource->Id, obj->Syntax.BufInt, 		       (datasource->IdLen = obj->SyntaxLen)*sizeof(obj->Syntax.BufInt[0]));		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD NeuroDataSourceValue(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL; InOutData* datasource = NULL;LONG layer, neuron;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 3)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 3) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (NeuroData*)local->Data;		layer = obj->Id[idlen-1+NMIB_LOFFSET];		neuron = obj->Id[idlen-1+NMIB_NOFFSET];		if (layer != 1 && layer != data->NrLayers)			return SNMP_NOSUCHNAME;		if (neuron > data->NrNeurons[layer-1])			return SNMP_NOSUCHNAME;		if (layer == 1)			datasource = &data->InputData[neuron-1];		else			datasource = &data->TargetData[neuron-1];		obj->Syntax.LngInt = (LONG)(FLOAT_SCALE*datasource->TheValue);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD NeuroDataSourceMax(SNMP_OBJECT* obj, WORD idlen){MIB_LOCAL* local = NULL;NeuroData* data = NULL; InOutData* datasource = NULL;LONG layer, neuron;				if ((local = MibRmon(obj, NeuroDataInstance, idlen, 3)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (NeuroMibNext(obj, &local, idlen, 3) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:

⌨️ 快捷键说明

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