Skip to content

Commit

Permalink
add MicroE encoder
Browse files Browse the repository at this point in the history
  • Loading branch information
keenanlang committed Nov 25, 2024
1 parent 5c6fdec commit ccb2ced
Show file tree
Hide file tree
Showing 3 changed files with 234 additions and 0 deletions.
21 changes: 21 additions & 0 deletions ipApp/Db/MicroE_SS350.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ExtraInput=Ignore;

# set a short timeout since we don't have an input terminator
ReadTimeout=17;

sync {
out "\x80";
in "%(\$1:sync.VAL)1r";
}
reg69_raw {
out "\x80\x51\x04\x04\x00\x00\x69\x00\x42\x01";
in "%*4r%(\$1:reg69_raw.VAL)#2r%*2r";
}
reg68_raw {
out "\x80\x51\x04\x04\x00\x00\x68\x00\x41\x01";
in "%*4r%(\$1:reg68_raw.VAL)#2r%*2r";
}
reg27_raw {
out "\x80\x51\x04\x04\x00\x00\x27\x00\x00\x01";
in "%*4r%(\$1:reg27_raw.VAL)#2r%*2r";
}
203 changes: 203 additions & 0 deletions ipApp/Db/MicroE_SS350.vdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
#! Generated by VisualDCT v2.5
#! DBDSTART
#! DBD("../../dbd/iockagVX.dbd")
#! DBDEND


record(longin, "$(P)SS350:$(N):sync") {
field(DTYP, "stream")
field(INP, "@MicroE_SS350.proto sync($(P)SS350:$(N)) $(PORT)")
}

record(longin, "$(P)SS350:$(N):reg69_raw") {
field(DTYP, "stream")
field(FLNK, "$(P)SS350:$(N):sync_b2")
field(INP, "@MicroE_SS350.proto reg69_raw($(P)SS350:$(N)) $(PORT)")
}

record(longin, "$(P)SS350:$(N):reg68_raw") {
field(DTYP, "stream")
field(FLNK, "$(P)SS350:$(N):sync_b3")
field(INP, "@MicroE_SS350.proto reg68_raw($(P)SS350:$(N)) $(PORT)")
}

record(longin, "$(P)SS350:$(N):reg27_raw") {
field(DTYP, "stream")
field(INP, "@MicroE_SS350.proto reg27_raw($(P)SS350:$(N)) $(PORT)")
}

record(longin, "$(P)SS350:$(N):sync2") {
field(DTYP, "stream")
field(INP, "@MicroE_SS350.proto sync($(P)SS350:$(N)) $(PORT)")
}

record(longin, "$(P)SS350:$(N):sync3") {
field(DTYP, "stream")
field(INP, "@MicroE_SS350.proto sync($(P)SS350:$(N)) $(PORT)")
}

record(seq, "$(P)SS350:$(N):dly1") {
field(PREC, "2")
field(DLY1, "0.08")
field(DOL1, "1")
}

record(asyn, "$(P)SS350:$(N):sync_b1") {
field(SCAN, "Passive")
field(DISV, "0")
field(SDIS, "$(P)SS350:$(N):run.RVAL")
field(FLNK, "$(P)SS350:$(N):reg69_raw.PROC")
field(PORT, "$(PORT)")
field(TMOD, "Write/Read")
field(TMOT, ".1")
field(AOUT, "\200")
field(NRRD, "1")
}

record(asyn, "$(P)SS350:$(N):sync_b2") {
field(FLNK, "$(P)SS350:$(N):reg68_raw")
field(PORT, "$(PORT)")
field(TMOD, "Write/Read")
field(TMOT, ".1")
field(AOUT, "\200")
field(NRRD, "1")
}

record(asyn, "$(P)SS350:$(N):sync_b3") {
field(FLNK, "$(P)SS350:$(N):reg27_raw")
field(PORT, "$(PORT)")
field(TMOD, "Write/Read")
field(TMOT, ".1")
field(AOUT, "\200")
field(NRRD, "1")
}

record(seq, "$(P)SS350:$(N):dly2") {
field(PREC, "2")
field(DLY1, "0.08")
field(DOL1, "1")
}

record(bo, "$(P)SS350:$(N):run") {
field(ZNAM, "disable")
field(ONAM, "enable")
}

record(transform, "$(P)SS350:$(N):read_xform") {
field(CLCD, "(A>>4)&4095")
field(CLCE, "B<<12")
field(CLCF, "C<<28")
field(CLCG, "((D|E)&268435455)|F")
field(INPA, "$(P)SS350:$(N):reg27_raw CP")
field(INPB, "$(P)SS350:$(N):reg68_raw")
field(INPC, "$(P)SS350:$(N):reg69_raw")
field(PREC, "3")
field(CMTG, "Raw Pos (cts)")
field(CLCL, "(G<<2)/4")
field(CLCM, "L*0.0048828125")
field(CLCN, "L*4.8828125")
field(CMTL, "Pack for sign")
field(CMTM, "Microns")
field(CMTN, "Nanometers")
field(OUTM, "$(P)SS350:$(N):reading.A PP")
}

record(calc, "$(P)SS350:$(N):reading") {
field(DESC, "Ch. $(N) Description")
field(CALC, "A+B")
field(EGU, "micron")
field(PREC, "3")
}

record(calcout, "$(P)SS350:$(N):zero_rdg") {
field(CALC, "-(A)")
field(INPA, "$(P)SS350:$(N):reading.A")
field(OUT, "$(P)SS350:$(N):reading.B")
}

#! Further lines contain data used by VisualDCT
#! View(2332,2538,0.9)
#! Record("$(P)SS350:$(N):sync",1900,2550,0,1,"$(P)SS350:$(N):sync")
#! Visibility("$(P)SS350:$(N):sync.INP",2)
#! Visibility("$(P)SS350:$(N):sync.FLNK",2)
#! Record("$(P)SS350:$(N):reg69_raw",2500,2656,0,0,"$(P)SS350:$(N):reg69_raw")
#! Field("$(P)SS350:$(N):reg69_raw.FLNK",16777215,0,"$(P)SS350:$(N):reg69_raw.FLNK")
#! Link("$(P)SS350:$(N):reg69_raw.FLNK","$(P)SS350:$(N):sync_b2")
#! Field("$(P)SS350:$(N):reg69_raw.VAL",16777215,1,"$(P)SS350:$(N):reg69_raw.VAL")
#! Visibility("$(P)SS350:$(N):reg69_raw.INP",2)
#! Record("$(P)SS350:$(N):reg68_raw",2500,2856,0,0,"$(P)SS350:$(N):reg68_raw")
#! Field("$(P)SS350:$(N):reg68_raw.VAL",16777215,1,"$(P)SS350:$(N):reg68_raw.VAL")
#! Field("$(P)SS350:$(N):reg68_raw.FLNK",16777215,0,"$(P)SS350:$(N):reg68_raw.FLNK")
#! Link("$(P)SS350:$(N):reg68_raw.FLNK","$(P)SS350:$(N):sync_b3")
#! Visibility("$(P)SS350:$(N):reg68_raw.INP",2)
#! Record("$(P)SS350:$(N):reg27_raw",2520,3070,0,0,"$(P)SS350:$(N):reg27_raw")
#! Field("$(P)SS350:$(N):reg27_raw.VAL",16777215,1,"$(P)SS350:$(N):reg27_raw.VAL")
#! Visibility("$(P)SS350:$(N):reg27_raw.INP",2)
#! Record("$(P)SS350:$(N):sync2",1900,2650,0,1,"$(P)SS350:$(N):sync2")
#! Visibility("$(P)SS350:$(N):sync2.INP",2)
#! Visibility("$(P)SS350:$(N):sync2.FLNK",2)
#! Record("$(P)SS350:$(N):sync3",1900,2750,0,1,"$(P)SS350:$(N):sync3")
#! Visibility("$(P)SS350:$(N):sync3.INP",2)
#! Visibility("$(P)SS350:$(N):sync3.FLNK",2)
#! Record("$(P)SS350:$(N):dly1",2780,2616,0,0,"$(P)SS350:$(N):dly1")
#! Visibility("$(P)SS350:$(N):dly1.PREC",2)
#! Record("$(P)SS350:$(N):sync_b1",2220,2497,0,1,"$(P)SS350:$(N):sync_b1")
#! Field("$(P)SS350:$(N):sync_b1.FLNK",16777215,1,"$(P)SS350:$(N):sync_b1.FLNK")
#! Link("$(P)SS350:$(N):sync_b1.FLNK","$(P)SS350:$(N):reg69_raw")
#! Field("$(P)SS350:$(N):sync_b1.SDIS",16777215,0,"$(P)SS350:$(N):sync_b1.SDIS")
#! Link("$(P)SS350:$(N):sync_b1.SDIS","$(P)SS350:$(N):run.RVAL")
#! Record("$(P)SS350:$(N):sync_b2",2220,2739,0,1,"$(P)SS350:$(N):sync_b2")
#! Field("$(P)SS350:$(N):sync_b2.FLNK",16777215,1,"$(P)SS350:$(N):sync_b2.FLNK")
#! Link("$(P)SS350:$(N):sync_b2.FLNK","$(P)SS350:$(N):reg68_raw")
#! Record("$(P)SS350:$(N):sync_b3",2240,2959,0,1,"$(P)SS350:$(N):sync_b3")
#! Field("$(P)SS350:$(N):sync_b3.FLNK",16777215,1,"$(P)SS350:$(N):sync_b3.FLNK")
#! Link("$(P)SS350:$(N):sync_b3.FLNK","$(P)SS350:$(N):reg27_raw")
#! Record("$(P)SS350:$(N):dly2",2780,2836,0,0,"$(P)SS350:$(N):dly2")
#! Visibility("$(P)SS350:$(N):dly2.PREC",2)
#! Record("$(P)SS350:$(N):run",2200,2376,0,1,"$(P)SS350:$(N):run")
#! Field("$(P)SS350:$(N):run.RVAL",16777215,0,"$(P)SS350:$(N):run.RVAL")
#! Record("$(P)SS350:$(N):read_xform",2840,3084,0,1,"$(P)SS350:$(N):read_xform")
#! Field("$(P)SS350:$(N):read_xform.INPA",16777215,0,"$(P)SS350:$(N):read_xform.INPA")
#! Link("$(P)SS350:$(N):read_xform.INPA","$(P)SS350:$(N):reg27_raw.VAL")
#! Field("$(P)SS350:$(N):read_xform.INPB",16777215,0,"$(P)SS350:$(N):read_xform.INPB")
#! Link("$(P)SS350:$(N):read_xform.INPB","$(P)SS350:$(N):reg68_raw.VAL")
#! Field("$(P)SS350:$(N):read_xform.INPC",16777215,0,"$(P)SS350:$(N):read_xform.INPC")
#! Link("$(P)SS350:$(N):read_xform.INPC","$(P)SS350:$(N):reg69_raw.VAL")
#! Field("$(P)SS350:$(N):read_xform.OUTM",16777215,1,"$(P)SS350:$(N):read_xform.OUTM")
#! Link("$(P)SS350:$(N):read_xform.OUTM","$(P)SS350:$(N):reading.A")
#! Visibility("$(P)SS350:$(N):read_xform.CLCD",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCE",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCF",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCG",2)
#! Visibility("$(P)SS350:$(N):read_xform.INPA",2)
#! Visibility("$(P)SS350:$(N):read_xform.INPB",2)
#! Visibility("$(P)SS350:$(N):read_xform.INPC",2)
#! Visibility("$(P)SS350:$(N):read_xform.PREC",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTG",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCL",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCM",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCN",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTL",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTM",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTN",2)
#! Visibility("$(P)SS350:$(N):read_xform.OUTM",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCH",2)
#! Visibility("$(P)SS350:$(N):read_xform.CLCI",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTH",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTI",2)
#! Visibility("$(P)SS350:$(N):read_xform.CMTF",2)
#! Box(Box0,1860,2520,2100,2860,0,16777215,null)
#! TextBox(TB0,1920,2480,2100,2520,0,"Dialog",18,1,16777215,"Not Used",null)
#! Record("$(P)SS350:$(N):reading",3100,3144,0,1,"$(P)SS350:$(N):reading")
#! Field("$(P)SS350:$(N):reading.A",16777215,1,"$(P)SS350:$(N):reading.A")
#! Field("$(P)SS350:$(N):reading.B",16777215,1,"$(P)SS350:$(N):reading.B")
#! Visibility("$(P)SS350:$(N):reading.DESC",2)
#! Visibility("$(P)SS350:$(N):reading.CALC",2)
#! Visibility("$(P)SS350:$(N):reading.EGU",2)
#! Visibility("$(P)SS350:$(N):reading.PREC",2)
#! Record("$(P)SS350:$(N):zero_rdg",3380,3116,0,1,"$(P)SS350:$(N):zero_rdg")
#! Field("$(P)SS350:$(N):zero_rdg.INPA",16777215,0,"$(P)SS350:$(N):zero_rdg.INPA")
#! Link("$(P)SS350:$(N):zero_rdg.INPA","$(P)SS350:$(N):reading.A")
#! Field("$(P)SS350:$(N):zero_rdg.OUT",16777215,0,"$(P)SS350:$(N):zero_rdg.OUT")
#! Link("$(P)SS350:$(N):zero_rdg.OUT","$(P)SS350:$(N):reading.B")
#! Visibility("$(P)SS350:$(N):zero_rdg.CALC",2)
10 changes: 10 additions & 0 deletions ipApp/iocsh/MicroE_SS350.iocsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#- ###################################################
#- PREFIX - IOC Prefix
#- INSTANCE - Instance Prefix
#- PORT - Serial port name
#- IP - Location of IP module
#- ###################################################

iocshLoad("$(IP)/iocsh/setSerialParams.iocsh", "PORT=$(PORT), BAUD=38400, BITS=8, STOP=1, PARITY=even")

dbLoadRecords("$(IP)/db/MicroE_SS350.vdb","P=$(PREFIX),N=$(INSTANCE),PORT=$(PORT)")

0 comments on commit ccb2ced

Please sign in to comment.