2015年9月30日 星期三

API會用到的PortMAP設定 - Lock, Group, Global commands

這三種命令,都有PortMap的設定,Map設定三者皆相同,以下說明如何設定Port Map

int membermap[4] - 代表有4個unsigned int值。

每個byte設定一個slot,每個bit代表一個port,多餘的保留不設。因此一個map就可以設定4張板卡(因為4個byte),4個map總共可 以設定4*4=16張板卡。板卡從第二個槽開始,所以:

  • membermap[0]可以設定Slot2(第一個byte)~5(第四個byte)。
  • membermap[1]可以設定Slot6~9
  • membermap[2]可以設定Slot10~13
  • membermap[3]可以設定Slot14~17


再來說明每個membermap的bit設定,以membermap[0]來說:
bit0可以設定(0,2,1),bit1可以設定(0,2,2),bit2可以設定(0,2,3),...,依此類推
如果板卡只有4個port,高位的bit都不用設的。亦即最多為0x0f(0b00001111)。
要設定Port(0,2,1)~Port(0,2,4),就將map設為0x0000000f
           
範例:

假設要lock (0,2,1)~(0,2,4), (0,7,1)~(0,7,4),(0,13,1)~(0,13,2)共3張板卡,10個port,那我們的map長成這樣(對照上表):
membermap[0]=0x00 00 00 0f;//(0,2,1)~(0,2,4)
membermap[1]=0x00 00 0f 00;//(0,7,1)~(0,7,4)
membermap[2]=0x03 00 00 00;//(0,13,1)~(0,13,2)
membermap[2]=0x00 00 00 00;//沒有版卡

沒有留言:

張貼留言