Exemple #1
0
 Log * makeSTATSlog() {
     //Log state.
     std::vector<SExpr> fields;
     fields.push_back(SExpr(CONTENT_TYPE_S, "STATS"));
     
     std::vector<SExpr> fvector = {
         SExpr("flags"),
         SExpr("serv_connected", control::serv_connected,
               control::flags[control::serv_connected]),
         SExpr("control_connected", control::control_connected,
               control::flags[control::control_connected]),
         SExpr("fileio", control::fileio,
               control::flags[control::fileio]),
         SExpr("SENSORS", control::SENSORS,
               control::flags[control::SENSORS]),
         SExpr("GUARDIAN", control::GUARDIAN,
               control::flags[control::GUARDIAN]),
         SExpr("COMM", control::COMM,
               control::flags[control::COMM]),
         SExpr("LOCATION", control::LOCATION,
               control::flags[control::LOCATION]),
         SExpr("ODOMETRY", control::ODOMETRY,
               control::flags[control::ODOMETRY]),
         SExpr("OBSERVATIONS", control::OBSERVATIONS,
               control::flags[control::OBSERVATIONS]),
         SExpr("LOCALIZATION", control::LOCALIZATION,
               control::flags[control::LOCALIZATION]),
         SExpr("BALLTRACK", control::BALLTRACK,
               control::flags[control::BALLTRACK]),
         
         SExpr("VISION", control::VISION,
               control::flags[control::VISION]),
         
         SExpr("tripoint", control::tripoint,
               control::flags[control::tripoint]),
         
         SExpr("thumbnail", control::thumbnail,
               control::flags[control::thumbnail])
     };
     fields.push_back(SExpr(fvector));
     
     
     fields.push_back(SExpr("num_buffers", NUM_LOG_BUFFERS));
     fields.push_back(SExpr("num_cores", (int) NUM_CORES));
     
     SExpr ratios;
     ratios.append(SExpr("ratio"));
     for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
         ratios.append(SExpr(LOG_RATIO[i]));
     }
     fields.push_back(ratios);
     
     SExpr sizes;
     sizes.append(SExpr("size"));
     for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
         sizes.append(SExpr(LOG_BUFFER_SIZES[i]));
     }
     fields.push_back(sizes);
     
     time_t NOW = time(NULL);
     
     fields.push_back(SExpr("con_uptime", control::flags[control::serv_connected] ? difftime(NOW, cio_upstart) : 0));
     fields.push_back(SExpr("cnc_uptime", control::flags[control::control_connected] ? difftime(NOW, cnc_upstart) : 0));
     fields.push_back(SExpr("fio_uptime", control::flags[control::fileio] ? difftime(NOW, fio_upstart) : 0));
     
     fields.push_back(SExpr("log_uptime", difftime(NOW, main_upstart)));
     
     SExpr manages;
     manages.append(SExpr("bufmanage"));
     for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
         manages.append(makeBufManage(i));
     }
     fields.push_back(manages);
     
     /*
      This system of grabbing io state is subject to multi-threading accuracy drift.
      It is therefore only for estimates.
      */
     io_state_t zerostate;
     bzero(&zerostate, sizeof(io_state_t));
     
     SExpr state_total;
     state_total.append(SExpr("total-state"));
     for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
         state_total.append(makeBufState(&zerostate, total + i));
     }
     fields.push_back(state_total);
     
     if (control::flags[control::fileio]) {
         SExpr state_file;
         state_file.append(SExpr("file-state"));
         for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
             state_file.append(makeBufState(fio_start + i, total + i));
         }
         fields.push_back(state_file);
     }
     
     if (control::flags[control::serv_connected]) {
         SExpr state_serv;
         state_serv.append(SExpr("serv-state"));
         for (int i = 0; i < NUM_LOG_BUFFERS; ++i) {
             state_serv.append(makeBufState(cio_start + i, total + i));
         }
         fields.push_back(state_serv);
     }
     
     std::vector<SExpr> contents = {SExpr(fields)};
     
     return new Log(LOG_FIRST_ATOM_S, "makeSTATSlog()", time(NULL), LOG_VERSION, contents, "");
 };
Exemple #2
0
    uint32_t cnc_setCameraParams(Log * arg) {
        size_t u = arg->data().size();
        bool success = receivedParams.ParseFromString(arg->data());
        if(!success) {
            std::cerr<<"Failed to Parse Params\n";
        } else {
            SExpr s;

            SExpr h = SExpr("hflip",receivedParams.h_flip());
            SExpr v = SExpr("vflip",receivedParams.v_flip());
            SExpr ae = SExpr("autoexposure",receivedParams.auto_exposure());
            SExpr b = SExpr("brightness",receivedParams.brightness());
            SExpr c = SExpr("contrast",receivedParams.contrast());
            SExpr sat = SExpr("saturation",receivedParams.saturation());
            SExpr hue = SExpr("hue",receivedParams.hue());
            SExpr sharp = SExpr("sharpness",receivedParams.sharpness());
            SExpr gamma = SExpr("gamma",receivedParams.gamma());
            SExpr awb = SExpr("auto_whitebalance",receivedParams.autowhitebalance());
            SExpr expo = SExpr("exposure",receivedParams.exposure());
            SExpr gain = SExpr("gain",receivedParams.gain());
            SExpr wb = SExpr("white_balance",receivedParams.whitebalance());
            SExpr ftb = SExpr("fade_to_black",receivedParams.fadetoblack());

            s.append(h);
            s.append(v);
            s.append(ae);
            s.append(b);
            s.append(c);
            s.append(sat);
            s.append(hue);
            s.append(sharp);
            s.append(gamma);
            s.append(awb);
            s.append(expo);
            s.append(gain);
            s.append(wb);
            s.append(ftb);

            std::string stringToWrite = s.serialize();

            #ifdef V5_ROBOT
                std::cout<<"Saving as V5"<<std::endl;
                if(receivedParams.whichcamera() == "TOP"){
                    std::cout<<"TOP Params Received"<<std::endl;
                    std::ofstream file("/home/nao/nbites/Config/V5topCameraParams.txt");
                    std::cout<<stringToWrite<<std::endl;
                    file << stringToWrite;
                    file.close();
                    std::cout<<"Saving Done"<<std::endl;
                } else  {
                    std::cout<<"Bottom Params Received"<<std::endl;
                    std::ofstream file("/home/nao/nbites/Config/V5bottomCameraParams.txt");
                    std::cout<<stringToWrite<<std::endl;
                    file << stringToWrite;
                    file.close();
                    std::cout<<"Saving Done"<<std::endl;
                }
            #else
                std::cout<<"Saving as V4"<<std::endl;
                if(receivedParams.whichcamera() == "TOP"){
                    std::cout<<"TOP Params Received"<<std::endl;
                    std::ofstream file("/home/nao/nbites/Config/V4topCameraParams.txt");
                    file << stringToWrite;
                    file.close();
                    std::cout<<"Saving Done"<<std::endl;
                } else  {
                    std::cout<<"Bottom Params Received"<<std::endl;
                    std::ofstream file("/home/nao/nbites/Config/V4bottomCameraParams.txt");
                    file << stringToWrite;
                    file.close();
                    std::cout<<"Saving Done"<<std::endl;
                }
            #endif
        }
        return 0;
    }