⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dpf_main.cpp

📁 电力系统潮流程序adsfasdfasfd
💻 CPP
字号:
/**************************************************************
* 所属模块 : dpflow
* 文件路径 : pas/dpflow
* 文 件 名 : dpf_main.cpp
* 文件功能 : 调度员潮流主进程
* 继承关系 :
* 操作系统 : PC & UNIX
* 备    注 :
* 历史记录 :
*   时间            版本                作者             原因
*===============================================================
* 2004年04月08日      1.0               pas              created
***************************************************************/

#include <errno.h>
#include <signal.h>
#include <time.h>

#ifndef _DEFINE_HIDBVAR_AS_GLOBAL_
#define _DEFINE_HIDBVAR_AS_GLOBAL_
#endif

#include "dpf_pub.h"
#include "dpf_sys.h"
#include "dpf_pas.h"
#include "dpf_fun.h"

#include "scada_api/CCalProc.h"

#if defined (_ALPHA)
  #include <sys/uswitch.h>
#endif

#if defined (_CXX)
extern "C" {
#endif
void ExitProcess(int aa=0)
{
    printf("exit_process1: %d\n", aa);
    exit(0);
}
#if defined (_CXX)
}
#endif

int  log_month_rec(int);


int main(int argc, char** argv)
{
#ifdef _ALPHA
  long uval = uswitch(USC_GET, 0);
  uval = uswitch(USC_SET, uval | USW_CORE);
  if (uval < 0)    perror("uswitch");
#endif

#ifndef _WINDOWS32
  sigset(SIGHUP,SIG_IGN);
  sigset(SIGALRM,SIG_IGN);
  sigset(SIGPIPE,SIG_IGN);
  signal(SIGINT,ExitProcess);
  signal(SIGTERM,ExitProcess);
  signal(SIGFPE, SIG_IGN);
#endif

  CContext::SetContextNo(argc, argv, AC_REALTIME_NO);
  CCommArgs::Set(argc,argv,AP_PAS_DPF);
  if (AP_PAS_DPF != CCommArgs::AppNo()/10*10)
  {
    cerr << "++++++++++ appno error, valid no is 2120 -- 2129, please check your input again!\n";
    return 0;
  }

  int appno = CCommArgs::AppNo();

  const char* PROC_NAME = "dpf_main";
  CMsgBusFactory * msgBusFactory;
  CMsgBus        * dpf_bus;
  getmsgbusfactory(&msgBusFactory);
  dpf_bus = msgBusFactory->MsgBusFactory(PROC_NAME, CAppMap::GetSdbAppName(appno).c_str(), 0);
  msgBusFactory->release();

  Stopwatch stop_watch;

  stop_watch.reset();
  stop_watch.start();

  dpf_access_db();

  pas_retrieve_wd_rec(appno);
  get_un_pf_para(appno);
  dpflow_get_para(appno);
  dpflow_set_run_state(appno);
  cout<<"before main"<<endl;
  dpf_main_sub_();
  dpf_sendall ();
  reset_rln2_by_cp_();  //by yu,20041023

  if (0 == pfpart1_->RESTATUS)
  {
    CCalProc cal_proc;
    cal_proc.InitPara(appno, 1);
    cal_proc.CalProcess();
  }
  stop_watch.stop();

  float cputime = stop_watch.system() + stop_watch.user();
  dpflow_set_result_state(appno,cputime);

  int op_id=1;
  int conv_stat=pfpart1_->RESTATUS;
  dpflow_log_event(appno,op_id,conv_stat);

  int conv=0;
  if (0 == pfpart1_->RESTATUS) conv=1;

  log_month_rec(conv);

  SendAppChangeDataMsg(appno);

  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -