📄 neuro_m.c
字号:
}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 + -