Beispiel #1
0
/*!
 * Переопределение запроса \b delete.
 *
 * Для этой операции требуются права на редактирование.
 */
FeedReply NodeInfoFeed::del(const QString &path, Channel *channel, const QByteArray &blob)
{
  Q_UNUSED(blob)

  const bool owner     = can(channel, Acl::Edit);
  const bool moderator = can(channel, Acl::SpecialWrite);
  if (!owner && !moderator)
    return Notice::Forbidden;

  if (path.startsWith(INFO_FEED_MOTD_KEY + LS("/"))) {
    ChatId id(path.mid(5));
    if (id.type() != ChatId::MessageId)
      return Notice::BadRequest;

    QVariantList list = m_data.value(INFO_FEED_MOTD_KEY).toList();
    list.removeAll(id.toString());

    m_data.insert(INFO_FEED_MOTD_KEY, list);
    return FeedReply(Notice::OK, DateTime::utc());
  }

  if (!owner)
    return Notice::Forbidden;

  return Feed::del(path, channel);
}
int main() {
  double t1,t2,t3;
  int cases,i;
  x[0]=0;
  scanf("%d",&cases);
  while(cases --> 0) {
    scanf("%d %d %d",&n,&m,&l);
    if(!n) {
      printf("%d %f\n",m,(double)l/m);
      continue;
    }
    for(i=0;i<n;i++) scanf("%lf",&x[i]);
    qsort(x,n,sizeof(double),compd);
    for(i=1;i<n;i++) if(x[i]==x[i-1]) { printf("feil"); exit(1); }
    for(i=1;i<n;i++) x[i]-=x[0];
    x[0]=0;
    x[n]=l;
    for(t3=l,t1=i=0;i<200;i++) {
      t2=(t1+t3)/2;
      if(can(t2)) t3=t2;
      else t1=t2;
    }
    can(t3);
    printf("%.15f\n",t3);
  }
  return 0;
}
int main( int argc, char** argv ){

#if (CISST_OS == CISST_LINUX_XENOMAI)
  // Xenomai stuff
  mlockall(MCL_CURRENT | MCL_FUTURE);
  RT_TASK task;
  rt_task_shadow( &task, "CANServer", 80, 0);
#endif

  cmnLogger::SetMask( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskFunction( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskDefaultLog( CMN_LOG_ALLOW_ALL );

  if( argc !=2 ){
    std::cerr << "Usage: " << argv[0] << " can[?]" << std::endl;
    return -1;
  }

  // Better to have the CAN device in loopback mode
  std::cout << "Ensure that the CAN device is in loopback mode" << std::endl;

  // get local component manager                                                
  mtsManagerLocal *taskManager;
  taskManager = mtsManagerLocal::GetInstance();

  // The RTSocketCAN component
#if (CISST_OS == CISST_LINUX_XENOMAI)
  mtsRTSocketCAN can( "CAN",
		      argv[1],
		      osaCANBus::RATE_1000,
		      osaCANBus::LOOPBACK_ON );
#else
  mtsSocketCAN can( "CAN",
		    argv[1],
		    osaCANBus::RATE_1000,
		    osaCANBus::LOOPBACK_ON );
#endif
  taskManager->AddComponent( &can );
  
  // A client
  CANclient client;
  taskManager->AddComponent( &client );

  // Connect the interfaces
  taskManager->Connect( client.GetName(), "IO", can.GetName(), "IO" );
  taskManager->Connect( client.GetName(), "CTL", can.GetName(), "CTL" );
  
  taskManager->CreateAll();
  taskManager->StartAll();

  // Wait to exit
  std::cout << "ENTER to exit" << std::endl;
  cmnGetChar();

  //taskManager->KillAll();
  //taskManager->Cleanup();

  return 0;
}
Beispiel #4
0
bool can(int i, int j) {
    if(s[2][i+j]==0) return true;
    if(memo[i][j]!=-1) return memo[i][j];
    bool ans=false;
    if(s[0][i]==s[2][i+j]) ans|=can(i+1, j);
    if(s[1][j]==s[2][i+j]) ans|=can(i, j+1);
    return (memo[i][j]=ans);
}
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(map,0,sizeof(map));
        int a,b;
        for(int i=0;i<m;i++)
        {
            scanf("%d%d",&a,&b);
            map[a][b] = 1;
            map[b][a] = 1;
        }
        if(!BFS()) {
            printf("No\n");continue;
        }
        int num = 0;
        memset(link,0,sizeof(link));
        for(int i=1;i<=n;i++)
        {
            memset(visit,0,sizeof(visit));          
            if(can(i)) num++;
        }
        printf("%d\n",num/2);
    }
    return 0;
}
Beispiel #6
0
int bfs()
{
  if (x1 == x2 && y1 == y2) return 0;
  qh = qt = 1;
  q[1][0] = x1, q[1][1] = y1;
  ed[x1][y1] = 1;
  for (int nx, ny, tx, ty; qh <= qt; ) {
    nx = q[qh][0], ny = q[qh][1];
    ++qh;
    for (int i = 0; i < 4; ++i) {
      tx = nx + dx[i];
      if (tx <= 0 || tx > P) continue;
      ty = ny + dy[i];
      if (ty <= 0 || ty > Q) continue;
      if (!ed[tx][ty] && can(tx, ty, -z[nx][ny] + z[tx][ty])) {
	ed[tx][ty] = 1;
	d[tx][ty] = d[nx][ny] + 1;
	if (tx == x2 && ty == y2) return d[tx][ty];
	++qt;
	q[qt][0] = tx, q[qt][1] = ty;
      }
    }
  }
  return -1;
}
Beispiel #7
0
int main() {
    scanf("%d", &T);
    rep(q, T) {
        scanf(" %s%s%s", s[0], s[1], s[2]);
        memset(memo, -1, sizeof(memo));
        printf("Data set %d: %s\n", q+1, can(0, 0) ? "yes" : "no");
    }
void CanonicalIteratorTest::TestAPI() {
  UErrorCode status = U_ZERO_ERROR;
  // Test reset and getSource
  UnicodeString start("ljubav");
  logln("Testing CanonicalIterator::getSource");
  logln("Instantiating canonical iterator with string "+start);
  CanonicalIterator can(start, status);
  UnicodeString source = can.getSource();
  logln("CanonicalIterator::getSource returned "+source);
  if(start != source) {
    errln("CanonicalIterator.getSource() didn't return the starting string. Expected "+start+", got "+source);
  }
  logln("Testing CanonicalIterator::reset");
  UnicodeString next = can.next();
  logln("CanonicalIterator::next returned "+next);

  can.reset();

  UnicodeString afterReset = can.next();
  logln("After reset, CanonicalIterator::next returned "+afterReset);

  if(next != afterReset) {
    errln("Next after instantiation ("+next+") is different from next after reset ("+afterReset+").");
  }
  
  logln("Testing getStaticClassID and getDynamicClassID");
  if(can.getDynamicClassID() != CanonicalIterator::getStaticClassID()){
      errln("RTTI failed for CanonicalIterator getDynamicClassID != getStaticClassID");
  }
}
Beispiel #9
0
int main()
{
    int tc, i, sum;
    scanf("%d", &tc);
    while (tc--)
    {
        scanf("%d", &n);
        max = 1 << n;
        sum = 0;
        for (i = 0; i < n; i++)
        {
            scanf("%d", sides + i);
            sum += sides[i];
        }
        if (sum % 4 != 0)
            puts("no");
        else
        {
            len = sum / 4;
            for (i = 0; i < max; i++)
                dp[0][i] = dp[1][i] = dp[2][i] = dp[3][i] = -1;
            puts(res[can(0, 0)]);
        }
    }
    return 0;
}
bool verificar_canciones(usuario* us, lista<cancion>* canciones){
     bool esta=true;
     
     for(int i=0; i < us->get_nro_canc() && esta; i++){
         cancion can(us->get_cancion(i), "");
         if(!canciones->esta(can)) esta=false;
     }
     return(esta);
}
Beispiel #11
0
char can(int state, int cs)
{
    int l = calculate(state, cs);
    if (l == len)
        return can(state, cs + 1);
    else if (cs == 4)
        return 1;
    else if (dp[cs][state] != -1)
        return dp[cs][state];
    else
    {
        int i;
        char result = 0;
        for (i = 0; i < n && !result; i++)
            if (!(state & (1 << i)) && l + sides[i] <= len)
                result |= can(state | (1 << i), cs);
        return dp[cs][state] = result;
    }
}
Beispiel #12
0
void findmoves()
{
  int i,j,k;

  for (i = 0; i < 9; i++)
    for (j = 0; j < 9; j++)
      if (!sudoku[i][j].mark)
	for (k = 0; k < 9; k++)
	  sudoku[i][j].moves[k] = can(j,i,k+1);
}
		vector<vector<int>> permute(vector<int>& nums) 
		{
			vector<vector<int>> results;
			int len = nums.size();
			if (len == 0) { return results; }

			vector<int> result;
			vector<bool>can(len, true);
			permute(nums, len, 0, can, result, results);
			return results;
		}
Beispiel #14
0
int main( int argc, char** argv ){

  mtsTaskManager* taskManager = mtsTaskManager::GetInstance();

  cmnLogger::SetMask( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskFunction( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskDefaultLog( CMN_LOG_ALLOW_ALL );

  if( argc != 2 ){
    std::cout << "Usage: " << argv[0] << " can[0-1]" << std::endl;
    return -1;
  }

  osaSocketCAN can( argv[1], osaCANBus::RATE_1000 );

  if( can.Open() != osaCANBus::ESUCCESS ){
    CMN_LOG_RUN_ERROR << argv[0] << "Failed to open " << argv[1] << std::endl;
    return -1;
  }

  mtsWAM WAM( "WAM", &can, osaWAM::WAM_7DOF, OSA_CPU4, 80 );
  WAM.Configure();
  WAM.SetPositions( vctDynamicVector<double>(7, 
					     0.0, -cmnPI_2, 0.0, cmnPI, 
					     0.0, 0.0, 0.0 ) );
  taskManager->AddComponent( &WAM );

  WAMprobe probe;
  taskManager->AddComponent( &probe );

  taskManager->Connect( probe.GetName(), "Input",  WAM.GetName(),   "Output" );
  taskManager->Connect( probe.GetName(), "Output", WAM.GetName(),   "Input" );


  taskManager->CreateAll();
  taskManager->WaitForStateAll( mtsComponentState::READY );

  taskManager->StartAll();
  taskManager->WaitForStateAll( mtsComponentState::ACTIVE );

  std::cout << "ENTER to exit" << std::endl;
  cmnGetChar();

  taskManager->KillAll();
  taskManager->Cleanup();

  if( can.Close() != osaCANBus::ESUCCESS ){
    CMN_LOG_RUN_ERROR << argv[0] << "Failed to open " << argv[1] << std::endl;
    return -1;
  }

  return 0;
}
Beispiel #15
0
/* returns 1 if the sudoku has been changed, 0 otherwise */
int removecrossmoves()
{
  int i,j,k;

  for (i = 0; i < 9; i++)
    for (j = 0; j < 9; j++)
      if (!sudoku[i][j].mark)
	for (k = 0; k < 9; k++)
	  if (sudoku[i][j].moves[k])
	    sudoku[i][j].moves[k] = can(j,i,k+1);

}
int can(int r)
{
    for(int i=1;i<=n;i++)
    {
        if(map[r][i] && visit[i] == 0){
            visit[i] = 1;
            if(link[i]==0 || can(link[i])){
                link[i] = r;
                return 1;
            }
        }
    }
    return 0;
}
Beispiel #17
0
int main( int argc, char** argv ) {

    cmnLogger::SetMask( CMN_LOG_ALLOW_ALL );
    cmnLogger::SetMaskFunction( CMN_LOG_ALLOW_ALL );
    cmnLogger::SetMaskDefaultLog( CMN_LOG_ALLOW_ALL );

    if( argc != 3 ) {
        std::cerr << "Usage: " << argv[0] << " can[?] PID" << std::endl;
        return -1;
    }

    osaSocketCAN can( argv[1], osaCANBus::RATE_1000 );
    if( can.Open() != osaCANBus::ESUCCESS ) {
        std::cerr << argv[0] << ": Failed to open device " << argv[1] << std::endl;
        return -1;
    }

    std::istringstream iss( argv[2] );
    int pid;
    iss >> pid;

    osaPuck puck( (osaPuck::ID)pid, &can );

    // Reset the firmware
    if( puck.Reset() != osaPuck::ESUCCESS ) {
        std::cerr << ": Failed to reset the puck." << std::endl;
        return -1;
    }
    osaSleep( 1. );

    // Ready the puck
    if( puck.Ready() != osaPuck::ESUCCESS ) {
        std::cerr << ": Failed to ready the puck." << std::endl;
        return -1;
    }
    osaSleep( 1.0 );

    // configure the puck
    if( puck.InitializeMotor() != osaPuck::ESUCCESS ) {
        std::cerr << argv[0] << ": Failed to initialize puck" << std::endl;
    }

    if( can.Close() != osaCANBus::ESUCCESS ) {
        std::cerr << argv[0] << ": Failed to close device " << argv[1] << std::endl;
        return -1;
    }

    return 0;
}
Beispiel #18
0
int main () {
    MotionController mcontrol;
    mcontrol.pbreak();

    CAN can("IDLE_BOT");
    can.init_member("LED0");

    char data[8];
    data[0] = 0xFF;

    for (int i = 0; i < 7; i++) data[i+1] = 0x00;

    can.setValue("LED0", data);

    return 0;
}
Beispiel #19
0
void HiggsPlot::PlotSExclusion(double rR_max, TString Option){
  styles style; style.setPadsStyle(-1); style.setDefaultStyle();
  gStyle->SetPadTickX(1);             // No ticks at the right
  gStyle->SetPadTickY(1);             // No ticks at the top
  int nBins2D = 300;
  TString hName, epsName = "public_html/Higgs_Favored2D.eps",label;
  TCanvas can("can","Favored Type III 2HDM");
  double rR, rL, rPlus, rMinus;
  TLatex latex; latex.SetNDC(kTRUE); latex.SetTextAlign(21); latex.SetTextSize(style.TitleSize*1.1);

  int nSigmas[] = {3,2,1}, Nsig=3; double dl[5];
  for(int ns=0; ns<Nsig+1; ns++) dl[ns] = 1-IntG(0,1,-nSigmas[ns],nSigmas[ns]);
  int colors[] = {kGreen-9, kGreen-3, kGreen+2, kGreen+2, 0};
  gStyle->SetPalette(Nsig, colors);
  TH2F h2D("h2D","",nBins2D,-6.4,3.5, nBins2D,-3.,rR_max);
  h2D.GetYaxis()->CenterTitle(true); h2D.GetXaxis()->CenterTitle(true);
  h2D.GetYaxis()->SetTitle("rP"); h2D.GetXaxis()->SetTitle("rM");
  for(int binH=1; binH<=nBins2D; binH++){
    for(int binB=1; binB<=nBins2D; binB++){
      rPlus = h2D.GetYaxis()->GetBinCenter(binB);
      rMinus = h2D.GetXaxis()->GetBinCenter(binH);
      rR = (rPlus+rMinus)/2.; rL = (rPlus-rMinus)/2.; 
      h2D.SetCellContent(binH, binB, 1-ProbChi2(4, rR, rL));
    }
  }
  h2D.SetContour(Nsig,dl);
  h2D.Draw(Option);
  TH1F *histo[4];
  double legW = 0.25, legH = 0.08;
  double legX = 1-style.PadRightMargin-0.3, legY = 1-style.PadTopMargin-0.14;
  TLegend *leg = new TLegend(legX-legW, legY-legH, legX, legY);
  leg->SetTextSize(0.075); leg->SetFillColor(0); leg->SetTextFont(style.nFont);
  leg->SetBorderSize(0);
  leg->SetNColumns(3);
  for(int ileg=Nsig-1; ileg>=0; ileg--) {
    TString labhisto = "histo"; labhisto += ileg+1; 
    histo[ileg] = new TH1F(labhisto,"histo",10,0,10);
    histo[ileg]->SetLineColor(colors[ileg]);histo[ileg]->SetFillColor(colors[ileg]);
    labhisto = ""; labhisto += nSigmas[ileg]; labhisto += "#sigma";
    leg->AddEntry(histo[ileg],labhisto);
  }
  leg->Draw();
  latex.DrawLatex(0.52, 0.88, "Favored at");
  can.SaveAs(epsName);
  for(int his=0; his<Nsig; his++) histo[his]->Delete();
}
Beispiel #20
0
 bool canJump(vector<int>& nums) {
     vector<bool> can(nums.size(), false);
     can[0] = true;
     
     for(int i = 0; i < nums.size(); i++) {
         for(int j = i - 1; j >= 0; j--) { // optimize for the test case: [1,1,1,1,1,......,1,1,1,1,1]
         // for(int j = 0; j < i; j++) {
             
             if(can[j] == true && j + nums[j] >= i) {
                 can[i] = true;
                 break;
             }
         }
     }
     
     return can.back();
 }
int solve(int bitmask) {
    if (bitmask == ((1 << m) - 1)) {
        return 0;
    }
    if (dp[bitmask] != -1) return dp[bitmask];
    int ans = 1e9;
    int indexFirst = findFirstUnmarked(bitmask);
    for (int r=1 ; r <= maxRadius ; r++) {
        if (!canUseRadius(r, cod[indexFirst])) continue;
        int newBitmask = can(bitmask, r, indexFirst);
        if (newBitmask) {
            ans = min(ans, 1 + solve(newBitmask));
        }
    }

    return dp[bitmask] = ans;
}
Beispiel #22
0
int main() {
  int v1, v2, v3, px, py, x, y;
  freopen("fg.in", "r", stdin);
  freopen("fg.out", "w", stdout);
  scanf("%d%d", &N, &M);
  for (int i = 0; i < N; i ++) {
    for (int j = 0; j < M; j ++) {
      scanf("%d", &map[i][j]);
      map[i][j] --;
      pos[map[i][j]] = i * M + j;
    }
  }
  memset(bl, 255, sizeof(bl));
  memset(fa, 255, sizeof(fa));
  for (int i = 0; i < N * M; i ++) {
    px = pos[i] / M;
    py = pos[i] % M;
    if (can(px, py)) {
      bl[i] = P ++;
      for (int j = 0; j < 4; j ++) {
        x = px + dx[j]; 
        y = py + dy[j];
        if (x >= 0 && x < N && y >= 0 && y < M && bl[map[x][y]] == -1 && map[x][y] < i) {
          fa[P] = i;
          bfs(x, y, P ++, i);
        }
      }
    }
  }
  scanf("%d", &Q);
  for (int i = 0; i < Q; i ++) {
    scanf("%d%d%d", &v1, &v2, &v3);
    v1 --; v2 --;
    V[bl[map[v1][v2]]] += v3;
  }
  for (int i = N * M - 1; i >= 0; i --) if (!size[bl[i]]) {
    while (true) {
      pour(i);
      if (V[bl[i]] < Eps) break;
    }
  }
  printf("%.2lf\n", ans);
  return 0;
}
int main( int argc, char** argv ){

  mlockall(MCL_CURRENT | MCL_FUTURE);
  RT_TASK task;
  rt_task_shadow( &task, "GroupTest", 99, 0 );

  cmnLogger::SetMask( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskFunction( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskDefaultLog( CMN_LOG_ALLOW_ALL );

  if( argc != 2 ){
    std::cout << "Usage: " << argv[0] << " rtcan[0-1]" << std::endl;
    return -1;
  }

  osaRTSocketCAN can( argv[1], osaCANBus::RATE_1000 );

  if( can.Open() != osaCANBus::ESUCCESS ){
    std::cerr << argv[0] << "Failed to open " << argv[1] << std::endl;
    return -1;
  }

  osaBH8_280 BH( &can );

  if( BH.Initialize() != osaBH8_280::ESUCCESS ){
    std::cerr << "Failed to initialize WAM" << std::endl;
    return -1;
  }
  std::cout << "\n\n\n\n";
  double t1 = osaGetTime();
  size_t cnt=0;

  while( 1 ){

    Eigen::VectorXd q( 4, 0.1 );

    BH.GetPositions( q );
    //BH.SetPositions( q );

    }
    cmnGetChar();
  return 0;
}
Beispiel #24
0
 int ladderLength(string start, string end, unordered_set<string> &dict) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
     
     map<string, int> dict_map;
     vector<string> word_list;
     int dict_index = 0;
     for (unordered_set<string>::iterator it = dict.begin(); it != dict.end(); it++) {
         dict_map[*it] = dict_index ++;
         word_list.push_back(*it);
     }
             
     int n = dict_index;
     vector<vector<int> > d;
     
     int i, j, k;
     d.resize(n);
     for (i = 0; i < n; i++) {
         d[i].resize(n);
         for (j = 0; j < n; j++) {
             if (i == j) d[i][j] = 0;
             else {
             
                 if (can(word_list[i], word_list[j])) 
                     d[i][j] = 1;
                 else
                     d[i][j] = 100000;
             }
         }
     }
     
     for (k = 0; k < n; k++) {
         for (i = 0; i < n; i++) {
             for (j = 0; j < n; j++) {
                if (i == k || j == k || i == j) continue;
                d[i][j] = min(d[i][k] + d[k][j], d[i][j]);
             }
         }
     }
     int ret =  d[dict_map[start]][dict_map[end]] ;
     if (ret > n) return 0; else return ret + 1;
 }
Beispiel #25
0
void ButkevichDrawer::draw() {
  gROOT->SetStyle("Plain");

  TH2D null("null","",1,x0_ph_,x1_ph_,1,y0_ph_,y1_ph_);
  null.SetStats(false);
  null.SetTitle(";Q^{2} (GeV^{2});d#sigma/dQ^{2} (cm^{2}/GeV^{2})");
  null.GetXaxis()->CenterTitle();
  null.GetYaxis()->CenterTitle();
  null.GetYaxis()->SetTitleOffset(1.3);

  TCanvas can("can","canvas",600,600);
  null.Draw();

  graph_fg_ma10_.Draw("lpsame");
  graph_fg_ma12_.Draw("lpsame");
  //graph_sf_ma10_.Draw("lpsame");
  //graph_sf_ma12_.Draw("lpsame");

  can.DrawClone();
}
Beispiel #26
0
int dfs()
{
	int t,w,i;
	t=-1;
	w=0;
	z[t]=num[0];
	while(t<w)
	{
		t=t+1;
		for(i=0;i<nnum;i++)
		{
			//printf("%d:%d ",w+1,num[i]);
			w=w+1;
			z[w]=num[i];
			p[w]=t;
			if (can(w)) return w;
		}
	if (w>=MAXN) return 0;
	}
	return 0;
}
Beispiel #27
0
int main()
{
    freopen("in.txt","r",stdin);
    scanf("%d %d",&n,&m);
    for(int i=0;i<m;++i)
    {
        int a,b;
        scanf("%d %d",&a,&b);
        p[a][b]=p[b][a]=1;
    }
    if(!can())
        printf("no");
    else
    {
        printf("yes\n%d\n",ans);
        for(int i=1;i<=n;++i)
            if(c[i]==1)
                printf("%d ",i);
    }
    return 0;
}
Beispiel #28
0
int main()
{
	//CanrecFile can("../dtest/datadumps/background.dump");
	//CanrecFile can("../dtest/datadumps/rutoruppner.dump");
	//CanrecCan can;
	CanrecDecfile can("data.dumpdec2");
	std::set<Canframe> frameset;
	std::pair<std::set<Canframe>::iterator, bool> increturn;
	unsigned long pkgcount = 0;

	for(;;)
	{	
	
		try
		{
			Canframe frame;
			frame = can.getNextFrame();
			++pkgcount;
			increturn = frameset.insert(frame);
			if (increturn.second)
			{
				std::cout << frame.ident << "    \t";
				for(unsigned int ii = 0; ii < 8; ++ii)
				{
					std::cout << (int)(frame.data[ii]) << "\t";
					//for(unsigned char bit = 128; bit > 0; bit/=2)
					//	std::cout << (int)((frame.data[ii] & bit)/bit);
					//std::cout << " ";
				}
				std::cout << pkgcount << std::endl;
			}

		}
		catch (const char* ch)
		{
			std::cout << std::endl << "Error: " << ch << std::endl;	
		}
	}
}
int main( int argc, char** argv ){

  cmnLogger::SetMask( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskFunction( CMN_LOG_ALLOW_ALL );
  cmnLogger::SetMaskDefaultLog( CMN_LOG_ALLOW_ALL );

  if( argc != 2 ){
    std::cout << "Usage: " << argv[0] << " can[0-1]" << std::endl;
    return -1;
  }

  osaSocketCAN can( argv[1], osaCANBus::RATE_1000 );

  if( can.Open() != osaCANBus::ESUCCESS ){
    CMN_LOG_RUN_ERROR << argv[0] << "Failed to open " << argv[1] << std::endl;
    return -1;
  }

  osaBH8_280 BH( &can );

  if( BH.Initialize() != osaBH8_280::ESUCCESS ){
    CMN_LOG_RUN_ERROR << "Failed to initialize WAM" << std::endl;
    return -1;
  }
  std::cout << "\n\n\n\n";
  double t1 = osaGetTime();
  size_t cnt=0;

  while( 1 ){

    vctDynamicVector<double> q( 4, 0.1 );

    BH.GetPositions( q );
    //BH.SetPositions( q );

    }
    cmnGetChar();
  return 0;
}
Beispiel #30
0
void Special(pPlayer pl)
{
	int ret=0;
	if (can(pl->specialrate)&&pl->batt>pl->specialbatt)
	{

		switch(pl->ship)
		{
		case DREADNAUGHT:
			ret=FireDreadnaught(pl);
			break;
		case FURY:
			ret=SpecialFury(pl);
			break;
		default:
			break;
		}
		if (ret==1)
		{
			pl->batt-=pl->specialbatt;
		}
	}
}