EDA365电子工程师网

标题: 新手求教,各位大神帮帮忙 [打印本页]

作者: Serlina0923    时间: 2015-5-14 15:43
标题: 新手求教,各位大神帮帮忙
      自己写的程序出现错误为:E- *Error* fprintf: argument #1 should be an I/O port (type template = "ptg") - nil请问这是什么原因?正确的I/O port应该怎么设置?
       程序如下:
defun( checklist_form_display_call (checklist_form_display)
        case( checklist_form_display -> curField                                          ;获取当前窗体激活的控件
                   ("setting_self"
                     if(isFile( checklist_report_path ) then  deleteFile(checklist_report_path)    )                        ;删除report文件
                                     if(isFile( checklist_data_path ) then  deleteFile(checklist_data_path)       )                       ;删除data文
                                                 
                                        BrdName=axlDBGetDesign()->prop->SCHEMATIC_NAME         ;确认brd file存在
                                        if( BrdName!=nil then                
                   checklist_data_port = outfile(checklist_data_path  "w")
                  CPU1_Symbol=axlFormGetField(checklist_form_display "CPU1_Symbol")
                   fprintf(checklist_data_port "%s\n"  strcat("CPU1_Symbol_self=" "\"" CPU1_Symbol "\"")  )
                                   CPU2_Symbol=axlFormGetField(checklist_form_display "CPU2_Symbol")
                   fprintf(checklist_data_port "%s\n"  strcat("CPU2_Symbol_self=" "\"" CPU2_Symbol "\"")  )
                                  PCH_Symbol=axlFormGetField(checklist_form_display "PCH_Symbol")
                   fprintf(checklist_data_port "%s\n"  strcat("PCH_Symbol_self=" "\""  PCH_Symbol "\"")  )
                                  fprintf(checklist_data_port "%s\n"  " ) ")          ;输出, 定义子程序
                  close(checklist_data_port)


作者: deargds    时间: 2015-5-14 15:58
问题可能出在窗体创建部分的代码
作者: Serlina0923    时间: 2015-5-14 16:29
deargds 发表于 2015-5-14 15:58
问题可能出在窗体创建部分的代码

        谢谢,我回头再仔细看看去。
       现在遇到的问题是,在allegro中打开skill窗口,加载整个程序,提示的是没有错误,但是如下图所示,点击purley check没有窗口出现并提示如帖子中的错误                        
   [attach]96812[/attach]
窗体程序是:
fprintf(checklist_main_form_port  "FILE_TYPE=FORM_DEFN VERSION=2\n")
      fprintf(checklist_main_form_port  "FORM\n")
      fprintf(checklist_main_form_port  "FIXED\n")
      fprintf(checklist_main_form_port  "PORT 40 60\n")
      fprintf(checklist_main_form_port  "HEADER \"SCH_Checklist_for_Purley\"\n")
      fprintf(checklist_main_form_port  "TILE\n")
      fprintf(checklist_main_form_port  "TEXT \"CPU1 Symbol\"\n")             ;提示与文本框
      fprintf(checklist_main_form_port  "TLOC 4 2\n")
      fprintf(checklist_main_form_port  "ENDTEXT \n")
      fprintf(checklist_main_form_port  "FIELD CPU1_Symbol\n")
      fprintf(checklist_main_form_port  "FLOC 15 2\n")
      fprintf(checklist_main_form_port  "STRFILLIN 15 40\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "TEXT \"CPU2 Symbol\"\n")            ;提示与文本框
      fprintf(checklist_main_form_port  "TLOC 4 6\n")
      fprintf(checklist_main_form_port  "ENDTEXT \n")
      fprintf(checklist_main_form_port  "FIELD CPU2 Symbol\n")
      fprintf(checklist_main_form_port  "FLOC 15 6\n")
      fprintf(checklist_main_form_port  "STRFILLIN 15 40\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
          fprintf(checklist_main_form_port  "TEXT \"PCH Symbol\"\n")            ;提示与文本框
      fprintf(checklist_main_form_port  "TLOC 4 10\n")
      fprintf(checklist_main_form_port  "ENDTEXT \n")
      fprintf(checklist_main_form_port  "FIELD PCH Symbol\n")
      fprintf(checklist_main_form_port  "FLOC 15 10\n")
      fprintf(checklist_main_form_port  "STRFILLIN 15 40\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "FIELD setting_self\n")                     
      fprintf(checklist_main_form_port  "FLOC 27  26\n")
      fprintf(checklist_main_form_port  "MENUBUTTON \"Setting\" 8 3\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "FIELD check_self     \n")               
      fprintf(checklist_main_form_port  "FLOC  4  30\n")
      fprintf(checklist_main_form_port  "MENUBUTTON \"Check\" 8 3\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "FIELD result_self\n")        
      fprintf(checklist_main_form_port  "FLOC  17  30\n")
      fprintf(checklist_main_form_port  "MENUBUTTON \"Result\" 8 3\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "FIELD exit_self\n")               
      fprintf(checklist_main_form_port  "FLOC  30  30\n")
      fprintf(checklist_main_form_port  "MENUBUTTON \"Exit\" 8 3\n")
      fprintf(checklist_main_form_port  "ENDFIELD\n")
      fprintf(checklist_main_form_port  "ENDTILE\n")
      fprintf(checklist_main_form_port  "ENDFORM\n")

        close(checklist_main_form_port)


作者: deargds    时间: 2015-5-14 16:33
fprintf(checklist_main_form_port  "FIELD CPU2 Symbol\n")
所有FIELD 的名称不要包含空格:CPU2 Symbol

作者: Serlina0923    时间: 2015-5-14 16:40
deargds 发表于 2015-5-14 16:33
fprintf(checklist_main_form_port  "FIELD CPU2 Symbol\n")
所有FIELD 的名称不要包含空格:CPU2 Symbol

万分感谢,我再修改修改
作者: motofatfat    时间: 2015-5-15 09:42
學習了




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2