一段smc的代码

来源:互联网 发布:电话呼叫软件 编辑:程序博客网 时间:2024/05/01 12:41
 
  1. ////////////////////////////////////////////////////////////////////////////////
  2. //main dfm
  3. %start   dfm_main::Init
  4. %class   LogicMainForm
  5. %header  MainFormLogic.h
  6. ////////////////////////////////////////////////////////////////////////////////
  7. //default dfm
  8. %map dfm_main
  9. %%
  10. //state     transition          endstate                    actions
  11. Init
  12. {
  13. }
  14. Default
  15. {
  16.             msg_kb_scope        dfm_scope::S_init           {OnStateSwitch("scope");}
  17.             msg_kb_logger       dfm_logger::S_init      {OnStateSwitch("logger");}
  18.             msg_kb_meter        dfm_meter::S_init           {OnStateSwitch("meter");}
  19.             Default             nil                         {Prompt("Unhandled msg");}
  20. }
  21. %%
  22. ////////////////////////////////////////////////////////////////////////////////
  23. %map dfm_logger
  24. %%
  25. S_init
  26.             Entry                                                 {}
  27.             Exit                                                  {HideMenu(0);}
  28. {
  29. }
  30. Default
  31. {
  32.             msg_kb_scope        dfm_scope::S_init           {OnStateSwitch("scope");}
  33.             msg_kb_logger       dfm_logger::S_init      {OnStateSwitch("logger");}
  34.             msg_kb_meter        dfm_meter::S_init           {OnStateSwitch("meter");}
  35.             Default             nil                         {Prompt("Unhandled msg");}
  36. }
  37. %%
  38. ////////////////////////////////////////////////////////////////////////////////
  39. %map dfm_meter
  40. %%
  41. S_init
  42.             Entry                                                 {}
  43.             Exit                                                  {HideMenu(0);}
  44. {
  45. }
  46. Default
  47. {
  48.             msg_kb_scope        dfm_scope::S_init           {OnStateSwitch("scope");}
  49.             msg_kb_logger       dfm_logger::S_init      {OnStateSwitch("logger");}
  50.             msg_kb_meter        dfm_meter::S_init           {OnStateSwitch("meter");}
  51.             Default             nil                         {Prompt("Unhandled msg");}}
  52. %%
  53. ////////////////////////////////////////////////////////////////////////////////
  54. %map dfm_scope
  55. %%
  56. S_init
  57.             Entry                                                 {}
  58.             Exit                                                  {HideMenu(0);}
  59. {
  60. }
  61. Default
  62. {
  63.             msg_kb_scope        push(dfm_menu::S_idle)  {ChangeMenuEntry(ME_SHI_BO_QI);}
  64.          msg_kb_trigger    push(dfm_menu::S_idle)  {ChangeMenuEntry(DME_CHU_FA);}
  65.          msg_kb_math       push(dfm_menu::S_idle)  {ChangeMenuEntry(DME_SHU_XUE);}
  66.          msg_kb_measure    push(dfm_menu::S_idle)  {ChangeMenuEntry(ME_CE_LIANG);}
  67.          msg_kb_save       push(dfm_menu::S_idle)  {ChangeMenuEntry(ME_CUN_CHU);}
  68.          msg_kb_cursor     push(dfm_menu::S_idle)  {ChangeMenuEntry(ME_GUANG_BIAO);}
  69.          msg_kb_display    push(dfm_menu::S_idle)  {ChangeMenuEntry(ME_XIAN_SHI);}
  70.             msg_kb_logger       dfm_logger::S_init      {OnStateSwitch("logger");}
  71.             msg_kb_meter        dfm_meter::S_init           {OnStateSwitch("meter");}
  72.             Default             nil                         {Prompt("Unhandled msg");}}
  73. %%
  74. ////////////////////////////////////////////////////////////////////////////////
  75. %map dfm_menu
  76. %%
  77. S_idle
  78.             Entry                                                 {ShowMenu(1);Prompt("Show main menu");}
  79.             Exit                                                  {}
  80. {
  81.             msg_kb_f1[ctxt.IsMultiSelect(0)]
  82.                            push(S_listMenu_multi)  {ShowListMenu(0);}
  83.             msg_kb_f2[ctxt.IsMultiSelect(1)]
  84.                                push(S_listMenu_multi)  {ShowListMenu(1);}
  85.             msg_kb_f3[ctxt.IsMultiSelect(2)]
  86.                                push(S_listMenu_multi)  {ShowListMenu(2);}
  87.             msg_kb_f4[ctxt.IsMultiSelect(3)]
  88.                             push(S_listMenu_multi)  {ShowListMenu(3);}
  89.             msg_kb_f1[ctxt.IsListMenu(0)]
  90.                                push(S_listMenu)        {ShowListMenu(0);}
  91.             msg_kb_f2[ctxt.IsListMenu(1)]
  92.                                push(S_listMenu)        {ShowListMenu(1);}
  93.             msg_kb_f3[ctxt.IsListMenu(2)]
  94.                                push(S_listMenu)        {ShowListMenu(2);}
  95.             msg_kb_f4[ctxt.IsListMenu(3)]
  96.                                push(S_listMenu)        {ShowListMenu(3);}
  97.             msg_kb_f1[ctxt.IsMenuItemExist(0)]
  98.                         S_f1                         {}
  99.             msg_kb_f2[ctxt.IsMenuItemExist(1)]
  100.                             S_f2                         {}
  101.             msg_kb_f3[ctxt.IsMenuItemExist(2)]
  102.                         S_f3                   {}
  103.             msg_kb_f4[ctxt.IsMenuItemExist(3)]
  104.                         S_f4                   {}
  105.             msg_kb_f1       nil                {}
  106.             msg_kb_f2       nil                {}
  107.             msg_kb_f3       nil                {}
  108.             msg_kb_f4       nil                {}
  109.             msg_menu_back
  110.                                 pop(msg_menu_back)  {}
  111.          msg_list_menu_back
  112.                         nil                  {}
  113. }
  114. S_listMenu
  115.             Entry                                           {Prompt("Show sub menu(list)");}
  116.             Exit                                            {HideListMenu();Prompt("Hide sub menu(list)");}
  117. {
  118.          msg_kb_f1      nil                  {ListMenuPrev(1);}
  119.          msg_kb_f2      nil                  {ListMenuNext(1);}
  120.          msg_kb_f3      nil                  {ListMenuNextColumn();}
  121.          msg_kb_f4      pop(msg_list_menu_back) {ShowMenu(1);}
  122. }
  123. S_listMenu_multi
  124.             Entry                                           {Prompt("Show sub menu(list-multi-select)");}
  125.             Exit                                            {HideListMenu();Prompt("Hide sub menu(list-multi-select)");}
  126. {
  127.          msg_kb_f1      nil                  {ListMenuNext(0);}
  128.          msg_kb_f2      nil                  {ListMenuNextColumn();}
  129.          msg_kb_f3      nil                  {ListMenuClicked();}
  130.          msg_kb_f4      pop(msg_list_menu_back) {ShowMenu(1);}
  131. }
  132. S_f1
  133.             Entry                                           {ShowMenu(2, 0);Prompt("Show sub menu");}
  134.             Exit                                            {HideMenu(2, 0);Prompt("Hide sub menu");}
  135. {
  136.          msg_kb_f1      nil                     {NavigateMenu(0);}
  137. }
  138. S_f2
  139.             Entry                                           {ShowMenu(2, 1);Prompt("Show sub menu");}
  140.             Exit                                            {HideMenu(2, 1);Prompt("Hide sub menu");}
  141. {
  142.          msg_kb_f2      nil                     {NavigateMenu(1);}
  143. }
  144. S_f3
  145.             Entry                                           {ShowMenu(2, 2);Prompt("Show sub menu");}
  146.             Exit                                            {HideMenu(2, 2);Prompt("Hide sub menu");}
  147. {
  148.          msg_kb_f3      nil                     {NavigateMenu(2);}
  149. }
  150. S_f4
  151.             Entry                                           {ShowMenu(2, 3);Prompt("Show sub menu");}
  152.             Exit                                            {HideMenu(2, 3);Prompt("Hide sub menu");}
  153. {
  154.          msg_kb_f4      nil                     {NavigateMenu(3);}
  155. }
  156. Default
  157. {
  158.             msg_kb_f1[ctxt.IsMultiSelect(0)]
  159.                            push(S_listMenu_multi)  {ShowListMenu(0);}
  160.             msg_kb_f2[ctxt.IsMultiSelect(1)]
  161.                                push(S_listMenu_multi)  {ShowListMenu(1);}
  162.             msg_kb_f3[ctxt.IsMultiSelect(2)]
  163.                                push(S_listMenu_multi)  {ShowListMenu(2);}
  164.             msg_kb_f4[ctxt.IsMultiSelect(3)]
  165.                             push(S_listMenu_multi)  {ShowListMenu(3);}
  166.             msg_kb_f1[ctxt.IsListMenu(0)]
  167.                                push(S_listMenu)        {ShowListMenu(0);}
  168.             msg_kb_f2[ctxt.IsListMenu(1)]
  169.                                push(S_listMenu)        {ShowListMenu(1);}
  170.             msg_kb_f3[ctxt.IsListMenu(2)]
  171.                                push(S_listMenu)        {ShowListMenu(2);}
  172.             msg_kb_f4[ctxt.IsListMenu(3)]
  173.                                push(S_listMenu)        {ShowListMenu(3);}
  174.          msg_kb_f1[ctxt.IsMenuItemExist(0)]
  175.                         S_f1                       {}
  176.          msg_kb_f2[ctxt.IsMenuItemExist(1)]
  177.                         S_f2                       {}
  178.          msg_kb_f3[ctxt.IsMenuItemExist(2)]
  179.                         S_f3                       {}
  180.          msg_kb_f4[ctxt.IsMenuItemExist(3)]
  181.                         S_f4                       {}
  182.          msg_kb_f1      nil                        {}
  183.          msg_kb_f2      nil                        {}
  184.          msg_kb_f3      nil                        {}
  185.          msg_kb_f4      nil                        {}
  186.             msg_kb_scope        pop(msg_kb_scope)           {HideMenu(1);Prompt("Hide main menu");OnStateSwitch("scope");}
  187.             msg_kb_logger       pop(msg_kb_logger)     {HideMenu(1);Prompt("Hide main menu");OnStateSwitch("logger");}
  188.             msg_kb_meter        pop(msg_kb_meter)           {HideMenu(1);Prompt("Hide main menu");OnStateSwitch("meter");}
  189.          msg_kb_trigger    pop(msg_kb_trigger)     {HideMenu(1);Prompt("Hide main menu");}
  190.          msg_kb_menu_off   pop(msg_kb_menu_off)    {HideMenu(0);Prompt("Hide main menu");}
  191.          msg_kb_math       pop(msg_kb_math)        {HideMenu(0);Prompt("Hide main menu");}
  192.          msg_kb_measure    pop(msg_kb_measure)     {HideMenu(0);Prompt("Hide main menu");}
  193.          msg_kb_save       pop(msg_kb_save)        {HideMenu(0);Prompt("Hide main menu");}
  194.          msg_kb_cursor     pop(msg_kb_cursor)      {HideMenu(0);Prompt("Hide main menu");}
  195.          msg_kb_display    pop(msg_kb_display)     {HideMenu(0);Prompt("Hide main menu");}
  196.          msg_kb_level_up[ctxt.IsWheelActive()]
  197.                            nil                     {TurnWheel(1);Prompt("Wheel up");}
  198.          msg_kb_level_down[ctxt.IsWheelActive()]
  199.                            nil                     {TurnWheel(0);Prompt("Wheel down");}
  200.          msg_kb_level_up
  201.                            nil                     {Prompt("level up");}
  202.          msg_kb_level_down
  203.                            nil                     {Prompt("level down");}
  204.          msg_kb_ch1        nil                     {ChangeCh(1); Prompt("ch1");}
  205.          msg_kb_ch2        nil                     {ChangeCh(2); Prompt("ch2");}
  206.             Default             nil                         {Prompt("Unhandled msg");}}
  207. %%

 

没有把版面排整齐。见谅

原创粉丝点击