12.5. Sherlock Layer Service-SherlockLayerService.proto

Click here to return to the main index to Sherlock's APIs.

The APIs in this section allow you to perform different layer view operations to a board. Clicking on the active links in the table below will take you to the selected API.

Table 12.50: Index to Sherlock Layer Service APIs

Method NameRequest TypeResponse TypeDescription
For display purposes, strings in the first three columns are broken into multiple lines and should be read as continuous. For example, the first string in column two should be interpreted as: .DeleteAllMountPointsRequest
addPottingRegion.AddPotting RegionRequest.ReturnCodeAdd a potting region with the specified shape and properties
deleteAll ICTFixtures.DeleteAllICTFixtures Request.ReturnCodeDelete all ICT fixtures in specific cca of specific project.
deleteAllMount Points.DeleteAllMount PointsRequest.ReturnCodeRequest to delete all mount points in a specific CCA of a specific project.
deleteAllTestPoints.DeleteAllTestPoints Request.ReturnCodeDelete all test points in specific cca of specific project.
exportAllMount Points.ExportAllMount PointsRequest.ReturnCodeRequest to export all mount points and their properties into a .csv formatted file.
exportAllICT Fixtures.ExportAllICTFixtures Request.ReturnCodeExport all ICT fixtures andtheir properties into a CSVformatted file.
exportAll TestPoints.ExportAllTest PointsRequest.ReturnCodeExport all test points and their properties into a CSV formatted file.
getMountPoint Boundaries.GetMountPoint BoundariesRequest.GetMountPoint Boundaries ResponseGet a list of valid Mount Point Boundaries.
getMountPoint ChassisMaterials.GetMountPoint ChassisMaterials Request.GetMountPoint ChassisMaterials ResponseGet a list of valid Mount Point chassis materials.
getMountPoints Properties.GetMountPoints PropertiesRequest.GetMountPoints PropertiesResponseGet a list of valid Mount Point Properties.
getMountPoint ShapeTypes.GetMountPoint ShapeTypesRequest.GetMountPoint ShapeTypes ResponseGet a list of valid Mount Point Shape Type values.
getMountPoint Sides.GetMountPoint SidesRequest.GetMountPoint SidesResponseGet a list of valid Mount Point Sides.
getMountPoint Types.GetMountPoint TypesRequest.GetMountPoint TypesResponseGet a list of valid Mount Point Type values.
getMount PointUnits.GetMountPoint UnitsRequest.GetMountPoint UnitsResponseGet a list of valid Mount Point Units.
updateICTFixtures ByFile.UpdateICTFixtures ByFileRequest.UpdateICT FixturesResponseSee note below.
updateICTFixturesByFile: Update the ICT fixtures properties of a CCA from a CSV formatted file. This API could be used to add new ICT fixtures or update existing ones depending on the file contents. If the ID specified already exists, then the properties for that ICT fixture will be updated. If the ID specified does not already exist, or if the field is empty, then a new ICT fixture will be added with the specified properties. The file format should be the same as the one produced from CCA > Export ICT Fixtures.
updateMountPoints.UpdateMount PointsRequest.UpdateMount PointsResponseUpdate mount points with specified properties
updateMount PointsByFile.UpdateMountPoints ByFileRequest.UpdateMount PointsResponseSee note below.

updateMountPointsByFile: Update the mount points properties of a CCA from a CSV formatted file. This API could be used to add new mount points or update existing ones depending on the file contents. If the ID specified already exists, then the properties for that mount point will be updated. If the ID specified does not already exist, or if the field is empty, then a new mount point will be added with the specified properties. The file format should be the same as the one produced from CCA > ExportMountPoints.

updateTest PointsByFile.UpdateTest PointsByFileRequest.UpdateTest PointsResponseSee note below.

updateTestPointsByFile: Update the test points properties of a CCA from a CSV formatted file. This API could be used to add new test points or update existing ones depending on the file contents. If the ID specified already exists, then the properties for that test point will be updated. If the ID specified does not already exist, or if the field is empty, then a new test point will be added with the specified properties. The file format should be the same as the one produced from CCA > ExportTestPoints.


12.5.1. Add Potting Region

12.5.1.1. AddPottingRegionRequest

Request to add a potting region.

Table 12.51: AddPottingRegionRequest

FieldTypeLabelDescription
projectstring The name of the Sherlock project to add the potting regions to.
pottingRegionsrepeatedThe potting regions to add.
AddPottingRegionRequest.PottingRegion

12.5.1.2. AddPottingRegionRequest.PottingRegion

Table 12.52: AddPottingRegionRequest.PottingRegion

FieldTypeLabelDescription
ccaNamestring The name of the CCA.
pottingIDstringoptionalThe potting ID, must be unique.
pottingSidestringoptionalThe potting side, options are "TOP", "BOT", or "BOTTOM".
pottingMaterialstringoptionalThe potting material.
pottingUnitsstringoptionalThe units to use for the potting region.
pottingThicknessdoubleoptionalThe potting thickness.
pottingStandoffdoubleoptionalThe potting standoff.
polygonalShapePolygonalShape Used to add a region with a polygonal shape.
rectangularShapeRectangularShape Used to add a region with a rectangular shape.
slotShapeSlotShape Used to add a region with a slot shape.
circularShapeCircularShape Used to add a region with a circular shape.
pCBShapePCBShape Used to add a region with a PCB shape.

12.5.1.3. CircularShape

Table 12.53: CircularShape

FieldTypeLabelDescription
diameterdoubleoptionalThe diameter of the circle.
nodeCountuint32optionalThe number of nodes.
centerXdoubleoptionalThe x coordinate of the center of the circle.
centerYdoubleoptionalThe x coordinate of the center of the circle.
rotationdoubleoptionalThe rotation of the shape in degrees.

12.5.1.4. Example: Add Potting Region

Proto Request Example
{
  "project": "Tutorial",
  "pottingRegions": [
    {
      "ccaName": "Main Board",
      "pottingID": "PR1",
      "pottingSide": "TOP",
      "pottingMaterial": "EPOXYENCAPSULANT",
      "pottingUnits": "mm",
      "pottingThickness": 1.58,
      "pottingStandoff": 0.42,
      "polygonalShape": {
        "points": [
          {
            "x": -23.2425,
            "y": -10.9293
          },
          {
            "x": -7.4136,
            "y": -3.7161
          },
          {
            "x": -4.6084,
            "y": -16.1389
          }
        ],
        "rotation": 45.6
      }
    }
  ]
}
Python Example:

For a Python example, refer to the online PySherlock Reference.

12.5.2. Delete All ICT Fixtures

12.5.2.1. DeleteAllICTFixturesRequest

Request to delete all ICT fixtures in a specific CCA of a specific project.

Table 12.54: DeleteAllICTFixturesRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA Name.

12.5.2.2. Examples: SherlockLayerService.deleteAllITestPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.3. Delete All Mount Points

12.5.3.1. DeleteAllMountPointsRequest

Request to delete all mount points in a specific CCA of a specific project.

Table 12.55: DeleteAllMountPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.

12.5.3.2. Examples: SherlockLayerService.deleteAllMountPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.4. Delete All Test Points

12.5.4.1. DeleteAllTestPointsRequest

Request to delete all test points in specific CCA of specific project.

Table 12.56: DeleteAllTestPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA Name.

12.5.4.2. Examples: SherlockLayerService.deleteAllITestPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.5. Export All ICT Fixtures

12.5.5.1. ExportAllICTFixturesRequest

Request to export all ICT fixtures and their properties into a CSV formatted file.

Table 12.57: ExportAllICTFixturesRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
unitsstring Units used in exporting.
filePathstring The filepath of the .csv file to be exported.

12.5.5.2. Examples: SherlockLayerService.exportAllICTFixtures()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "units": "mm",
  "filePath": "C:\\Temp\\ICTFixtures.csv"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.6. Export All Mount Points

12.5.6.1. ExportAllMountPointsRequest

Request to export all mount points and their properties into a .csv formatted file.

Table 12.58: ExportAllMountPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
unitsstring Units used in exporting.
filePathstring The filepath of the .csv file to be exported.

12.5.6.2. Examples: SherlockLayerService.exportAllMountPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board,
  "units": "mm",
  "filePath": "C:\\Temp\\export.csv"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.7. Export All Test Points

12.5.7.1. ExportAllTestPointsRequest

Request to export all test points and their properties into a CSV formatted file

Table 12.59: ExportAllTestPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
lengthUnitsstring Length Units used in exporting.
displacementUnitsstring Displacement Units used in exporting.
forceUnitsstring Force Units used in exporting.
filePathstring The filepath of the CSV file to be exported.

12.5.7.2. Examples: SherlockLayerService.exportAllTestPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "lengthUnits": "mm",
  "displacementUnits": "mm",
  "forceUnits": "n",
  "filePath": "C:\\Temp\\TestPointsExport.csv"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.8. Get Mount Point Boundaries

12.5.8.1. GetMountPointBoundariesRequest

Request to list the valid mount point boundaries.

12.5.8.2. GetMountPointBoundariesResponse

Represents a list of valid mount point boundaries.

Table 12.60: RunAnalysisRequest

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
boundarystringrepeatedMount Point boundary.

12.5.8.3. Examples: Get Mount Point Boundaries

Proto Request Example
{
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.9. Get Mount Point Chassis Materials

12.5.9.1. GetMountPointChassisMaterialsRequest

Request to list the valid mount point chassis materials.

12.5.9.2. GetMountPointChassisMaterialsResponse

Represents a list of valid mount point chassis materials.

Table 12.61: GetMountPointChassisMaterialsResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
chassisMaterialstringrepeatedMount Point chassis material.

12.5.9.3. Examples: Get Mount Point Chassis Materials

Proto Request Example
{
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.10. Get Mount Point Shape Types

12.5.10.1. GetMountPointShapeTypesRequest

Request to list the valid mount point shape types.

Table 12.62: GetMountPointShapeTypesRequest

FieldTypeLabelDescription
mountPointTypestring Mount Point Type. Supported values are: Mount Hole, Mount Pad, Standoff, and Support Pin.

12.5.10.2. GetMountPointShapeTypesResponse

Represents a list of valid mount point shape types.

Table 12.63: GetMountPointShapeTypesResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
typestringrepeatedMount Point Shape Type.

12.5.10.3. Examples: Get Mount Point Shape Types

Proto Request Example
{
  "mountPointType": "Mount Hole"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.11. Get Mount Point Sides

12.5.11.1. GetMountPointSidesRequest

Request to list the valid mount point sides.

12.5.11.2. GetMountPointSidesResponse

Represents a list of valid mount point sides.

Table 12.64: GetMountPointSidesResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
sidestringrepeatedMount Point side.

12.5.11.3. Examples: Get Mount Point Sides

Proto Request Example
{
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.12. Get Mount Point Types

12.5.12.1. GetMountPointTypesRequest

Request to list the valid mount point types.

12.5.12.2. GetMountPointTypesResponse

Represents a list of valid mount point types.

Table 12.65: GetMountPointTypesResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
typestringrepeatedMount Point Type.

12.5.12.3. Examples: Get Mount Point Types

Proto Request Example
{
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.13. Get Mount Point Units

12.5.13.1. GetMountPointUnitsRequest

Request to list the valid mount point units.

12.5.13.2. GetMountPointUnitsResponse

Represents a list of valid mount point units.

Table 12.66: GetMountPointUnitsResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
unitsstringrepeatedMount Point units.

12.5.13.3. Examples: Get Mount Point Units

Proto Request Example
{
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.14. Get Mount Points Properties

12.5.14.1. GetMountPointsPropertiesRequest

Request to list the valid mount point chassis materials.

Table 12.67: GetMountPointsPropertiesRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
mountPointIDsstring A comma separated list of mount point ID's for a list of mount points or a mount ID for one part.

12.5.14.2. GetMountPointsPropertiesResponse

Represents a list of valid mount point properties.

Table 12.68: GetMountPointsPropertiesResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
mountPointsPropertiesMountPointPropertiesrepeatedMount point properties.

12.5.14.3. Mount Point Properties

Properties of mount point. The properties may vary with the mount point type and mount point shape.

Table 12.69: MountPointProperties

FieldTypeLabelDescription
IDstring Mount point ID
typestring Mount point type
shapestring Shape type
unitsstring Mount point units
xstring Center X
ystring Center Y
lengthstring Length
widthstring Width
diameterstring Diameter
nodesstring # of nodes
rotationstring Rotation (degrees)
sidestring Mount point side
heightstring Mount point height
materialstring Mount point material
boundarystring Boundary Pt(s).
constraintsstring FEA constraints
polygonstring Coordinates of points
statestring Mount point state
chassisMaterialstring Chassis material

12.5.14.4. Examples: SherlockLayerService.getMountPointsProperties()

Proto Request
{
  "project": "Tutorial Project",
  "ccaName": "Main Board,
  "mountPointIDs": "MP1, MP2, MP3, MP4"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.15. PCB Shape

12.5.15.1. PolygonalShape

Table 12.70: PolygonalShape

FieldTypeLabelDescription
pointsPolygonalShape.PointrepeatedThe points used to define the polygonal shape, must be >= 3.
rotationdoubleoptionalThe rotation of the shape in degrees.

12.5.15.2. PolygonalShape.Point

Table 12.71: PolygonalShape.Point

FieldTypeLabelDescription
xdouble The x coordinate of the point.
ydouble The y coordinate of the point.

12.5.15.3. RectangularShape

Table 12.72: RectangularShape

FieldTypeLabelDescription
lengthdoubleoptionalThe length of the rectangle.
widthdoubleoptionalThe width of the rectangle.
centerXdoubleoptionalThe x coordinate of the center of the rectangle.
centerYdoubleoptionalThe y coordinate of the center of the rectangle.
rotationdoubleoptionalThe rotation of the rectangle in degrees.

12.5.15.4. SlotShape

Table 12.73: SlotShape

FieldTypeLabelDescription
lengthdoubleoptionalThe length of the slot shape.
widthdoubleoptionalThe width of the slot shape.
nodeCountuint32optionalThe number of nodes.
centerXdoubleoptionalThe x coordinate of the center of the slot shape.
centerYdoubleoptionalThe x coordinate of the center of the slot shape.
rotationdoubleoptionalThe rotation of the shape in degrees.

12.5.16. Update ICT Fixtures By File

12.5.16.1. UpdateICTFixturesByFileRequest

Request to update ICT fixtures properties of a CCA from a CSV formatted file

Table 12.74: UpdateICTFixturesByFileRequest

FieldTypeLabelDescription
projectstring Sherlock project name
ccaNamestring The CCA name.
filePathstring The filepath of the CSV file containing the ICT fixtures properties.

12.5.16.2. UpdateICTFixturesResponse

Contains the status of the update as well as all the update error messages.

Table 12.75: UpdateICTFixturesResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
updateErrorstringrepeatedICT fixtures update error messages.

12.5.16.3. Examples: SherlockLayerService.updateICTFixturesByFile()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "filePath": "C:\\PartsDir\\AM\\Sherlock\\ICTFixtures.csv"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.17. Update Mount Points

12.5.17.1. UpdateMountPointsRequest

Request to update mount points properties of a CCA from a CSV formatted file

Table 12.76: UpdateMountPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
mountPointsPropertiesMountPointProperties repeatedMount point properties.

12.5.17.2. UpdateMountPointsResponse

Contains the status of the update as well as all the update error messages.

Table 12.77: UpdateMountPointsResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
updateErrorstringrepeatedMount Points update error messages.

12.5.17.3. Examples: SherlockLayerService.updateMountPoints()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "mountPointsProperties": [
    {
      "ID": "MP1",
      "type": "Mount Hole",
      "shape": "Circular",
      "units": "mm",
      "x": "0",
      "y": "0",
      "length": "3.56",
      "width": "3.56",
      "diameter": "3.56",
      "nodes": "8",
      "rotation": "0",
      "side": "TOP",
      "height": "0",
      "material": "DEFAULT",
      "boundary": "Outline",
      "constraints": "X-axis translation|Y-axis translation|Z-axis translation",
      "polygon": "",
      "state": "Enabled",
      "chassisMaterial": "ALUMINUM"
    }
  ]
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.18. Update Mount Points By File

12.5.18.1. UpdateMountPointsByFileRequest

Request to update mount points properties of a CCA from a .csv formatted file.

Table 12.78: UpdateMountPointsByFileRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
filePathstring The filepath of the .csv file containing the mount points properties.

12.5.18.2. Examples: SherlockLayerService.updateMountPointsByFile()

Proto Request Example
{
  "project": "Tutorial Project",
  "ccaName": "Main Board",
  "filePath": "C:\\PartsDir\\AM\\Sherlock\\updateMountPoints.csv"
}
Python Example

For a Python example, refer to the online PySherlock Reference.

12.5.19. Update Test Points By File

12.5.19.1. UpdateTestPointsByFileRequest

Request to update test points properties of a CCA from a CSV formatted file

Table 12.79: UpdateMountPointsRequest

FieldTypeLabelDescription
projectstring Sherlock project name.
ccaNamestring The CCA name.
filePathstring The filepath of the CSV file containing the test points properties.

12.5.19.2. UpdateTestPointsResponse

Contains the status of the update as well as all the update error messages.

Table 12.80: UpdateTestPointsResponse

FieldTypeLabelDescription
returnCodeReturnCode Status code of response.
updateErrorstringrepeatedTest Points update error messages.

12.5.19.3. Examples: SherlockLayerService.updateTestPointsByFile()

Proto Request Example
import SherlockLayerService_pb2
import SherlockLayerService_pb2_grpc
import grpc
import os

channel = grpc.insecure_channel('localhost:9090')
stub = SherlockLayerService_pb2_grpc.SherlockLayerServiceStub(channel)

message = SherlockLayerService_pb2.UpdateTestPointsByFileRequest()
message.project = "Tutorial Project"
message.ccaName = "Main Board"
message.filePath = os.getcwd() + "\\TestPoints.csv"

response = stub.updateTestPointsByFile(message)

print(str(response))
Python Example

For a Python example, refer to the online PySherlock Reference.