Skip to content

Add Matlab View Support  #2

@curtisma

Description

@curtisma

Problem Statement

Add support for opening and storing MATLAB views.

Proposed Solution

Add a matlab package view type for matlab.

View Package

/*****************************************************************
 *                                                               *
 *    Softworks Software Data Manager MATLAB Support Package     *
 *                                                               *
 *****************************************************************/
SdmMat = let(()

procedure(startIDE(@rest restArgs) let((cmd)
	if(restArgs then
		;cmd = sprintf(nil "matlab -r \"edit %s\" & \n" buildString(restArgs))
		cmd = sprintf(nil "tcsh -c \"matlab -r \"edit %s\" &\" &" buildString(restArgs))
		printf(cmd)
		system(cmd)
	else
		system("matlab &"))
))

procedure(DataTrigger(@optional argList)
	let((libName cellName file fileName objId viewFileName viewName viewType)	
	;printf("Calling SkyVer  View App Trigger on %L !\n", argList);
	libName = argList->libName
	cellName = argList->cellName
    viewName = argList->viewName
    viewType = argList->viewType
    viewFileName = ddMapGetViewTypeFileName( viewType )

    if( objId = ddGetObj(libName cellName viewName viewFileName nil "r") then
    	file = ddGetObjWritePath(objId)
		;printf("filename = %s\n" fileName)
		; Start matlab editor 
		if(isFile(file) then
			startIDE(file)
		else
			;warn("Issue!!!\n"))
			warn("%s/%s/%s doesn't appear to be a matlab View !\nMissing the *.py file!\n", libName cellName viewName))
	else
		warn("module must be created outside Cadence tools !!\n")
		;dbOpenCellViewByType(libName cellName viewName args->rootType "wn")
		case(viewType
			("matlab_code" fileName = strcat(cellName ".m"))
			(t fileName = strcat(cellName ".m"))
		)
		if(objId = ddGetObj(libName cellName viewName fileName nil "w") then
			dbSave(objId)
			file = ddGetObjWritePath(objId)
			StartIDE(file)
		else
			warn("Could not create the cellview"))
	)
	t
))
procedure(ViewAppTrigger(@optional argList)
	;printf("Calling SkyVer module View data Trigger on %L !\n", argList);
	t)
procedure(EnableTrigger(@optional argList)
	;printf("Calling SkyVer module View data Trigger on %L !\n", argList);
	t)

list(nil
	'startIDE startIDE
	'DataTrigger DataTrigger
	'ViewAppTrigger ViewAppTrigger
	'EnableTrigger EnableTrigger
))

SdmStartMatlab = SdmMat->startIDE
SdmMatlabDataTrigger= SdmMat->DataTrigger
SdmMatlabViewAppTrigger = SdmMat->ViewAppTrigger
SdmMatlabEnableTrigger = SdmMat->EnableTrigger

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Register Python Custom Cellviews ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
when(!member("matlab_code" deGetAllViewTypes()) 
	deRegApp(
    	?appName "matlab"
    	?enableTrigger 'SdmMatlabEnableTrigger
    	?dataTrigger 'SdmMatlabDataTrigger
    	?viewType "matlab_code"
		?appTrigger 'SdmMatlabViewAppTrigger
    	?widgetType "graphics"
  	)
)

Documentation


MATLAB Views
============

`MATLAB <https://www.mathworks.com/products/matlab.html>`_ view support is
still under development

+-------------+-----------------+-------------+------------------------------+
| View Type   | Extensions      | Editors     | Description                  |
+=============+=================+=============+==============================+
| matlab_code | \*.m            | MATLAB,      | A MATLAB code file. Opened  |
|             |                 | gedit        | using MATLAB.               |
+-------------+-----------------+-------------+------------------------------+

Alternatives Considered

  • None

Proposed Action Plan

  • 1. Add the MATLAB view package
  • 2. Add MATLAB templates
  • 3. Add documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions