Skip to content

Instance Status

instance-status and do-not-populate are statements used to modify the on-board and BOM statuses of components.

Signature

instance-status(<INST>):
  bom-status = <ComponentBOMStatus> 
  board-status = <ComponentBoardStatus>

do-not-populate(<INST>)

A ComponentBOMStatus is an enum of: * InBOM * NotInBOM * MarkedDNP * InBOMVariant

A ComponentBoardStatus is an enum of: * OnBoard * NotOnBoard * InBoardVariant

In this context <INST> is a ref to a instantiated component or module in this module's context.

Syntax

pcb-module my-module:
  inst fuse       : components/manu/broken-fuse
  inst jumper-a   : components/manu/normal-jumper
  inst jumper-b   : components/manu/normal-jumper
  inst jumper-c   : components/manu/normal-jumper
  inst dnp-me     : components/manu/normal-jumper

  instance-status(fuse) :
    bom-status = NotInBOM
  instance-status(jumper-a) :
    board-status = NotOnBoard
  instance-status(jumper-b) :
    bom-status = MarkedDNP
    board-status = OnBoard
  do-not-populate(dnp-me)

Description

instance-status(instance-name) : Tells which component inst is affected by the sub-statement(s) below.

Possible sub-statements: * bom-status = InBOM|NotInBOM|MarkedDNP|InBOMVariant. InBOM is the default when bom-status is missing. * board-status = OnBoard|NotOnBoard|InBoardVariant. OnBoardBOM is the default when board-status is missing.

do-not-populate(instance-name) Mark a component instance as a DNP component. This is equivalent to bom-status = MarkedDNP using instance-status(instance-name). do-not-populate always supersedes instance-status no matter where they are in the code.

In this example, fuse is [NotInBOM, OnBoard] jumper-a is [InBOM NotOnBoard], jumper-b is [MarkedDNP OnBoard], and jumper-c is [InBOM OnBoard]. dnp-me is [MarkedDNP OnBoard]

There are 2 commands to query the component status of a component instance. do-not-populate?(instance-name) and instance-status?(instance-name)

do-not-populate?(instance-name) will return True|False. instance-status?(instance-name) will return a Tuple of ComponentBOMStatus and ComponentBoardStatus. for example, [InBOM NotOnBoard]