UEdGraphPin* UEdGraphNode::CreatePin(EEdGraphPinDirection Dir, const FString& PinCategory, const FString& PinSubCategory, UObject* PinSubCategoryObject, bool bIsArray, bool bIsReference, const FString& PinName, bool bIsConst /*= false*/, int32 Index /*= INDEX_NONE*/) { FEdGraphPinType PinType(PinCategory, PinSubCategory, PinSubCategoryObject, bIsArray, bIsReference); PinType.bIsConst = bIsConst; return CreatePin(Dir, PinType, PinName, Index); }
void PrintSignal(struct signal *signalPointer, int mask) { struct pin *pinPointer; if (!xFlag) return; for (pinPointer = signalPointer -> first_pin; pinPointer != NULL_STRUCT(pin); pinPointer = pinPointer -> instance_chain) { if (nFlag || pinPointer -> pin_type_vector & mask) (void) PinType(pinPointer, xFlag); } /* end for */ } /* end Print Signal */
bool Link::isSignal() const { return getSenderObject().getOutlet(getSenderIndex()).getType() == PinType(PinType::IType::Signal); }
void CheckSignalNet(struct signal *signalPointer) { struct pin *pinPointer; char *signal_name; int pinType; char signalPins[MAXPERNET]; inputPinCount = 0; outputPinCount = 0; sinkPinCount = 0; sourcePinCount = 0; analogPinCount = 0; undeclaredPinCount = 0; totalPinCount = 0; signal_name = signalPointer -> bucket -> name; if (cFlag) { fprintf(stdout, "%s:", signal_name); if (xFlag) printf("\n"); else if (signalPointer -> pin_count > MAXPERNET) Bug("signal net too large in CheckSignalNet"); } /* end if */ for (pinPointer = signalPointer -> first_pin; pinPointer != NULL_STRUCT(pin); pinPointer = pinPointer -> instance_chain) { (void) CheckForCollision(signalPointer, pinPointer); pinType = PinType(pinPointer, cFlag & xFlag); if (cFlag & !xFlag) signalPins[totalPinCount] = pinType; else (void) DoPinType(pinPointer, signalPointer, pinType); totalPinCount++; } /* end for */ if (cFlag) { if (!xFlag) { signalPins[totalPinCount] = '\0'; fprintf(stdout, "\t%s\n", signalPins); } /* end if */ if (pFlag) fprintf(stdout, "\t\t\t\t%di,%do,%ds,%dS,%da,%du\n", inputPinCount, outputPinCount, sinkPinCount, sourcePinCount, analogPinCount, undeclaredPinCount); return; } /* end if */ if ((sinkPinCount > 0) && (sourcePinCount == 0) && (!PowerGroundNet(signalPointer)) && (!AnalogNet(signalPointer))) if (OpenCollectorNet(signalPointer)) (void) ParanoidSignalWarning(signalPointer, "no o.c. pullup"); else (void) ParanoidSignalWarning(signalPointer, "no source"); if ((!PowerGroundNet(signalPointer)) && (inputPinCount > 0) && (outputPinCount == 0)) (void) ParanoidSignalWarning(signalPointer, "no outputs"); if ((!PowerGroundNet(signalPointer)) && (outputPinCount > 0) && (inputPinCount == 0)) (void) ParanoidSignalWarning(signalPointer, "no inputs"); (void) CheckSignalPins(signalPointer); } /* end CheckSignalNet */