static int host_init(dig_params_t *params) { // Initialize params with dig defaults. int ret = dig_init(params); if (ret != KNOT_EOK) { return ret; } // Set host specific defaults. free(params->config->port); params->config->port = strdup(DEFAULT_DNS_PORT); params->config->retries = DEFAULT_RETRIES_HOST; params->config->wait = DEFAULT_TIMEOUT_HOST; params->config->servfail_stop = false; params->config->class_num = KNOT_CLASS_IN; params->config->style = DEFAULT_STYLE_HOST; // Check port. if (params->config->port == NULL) { query_free(params->config); return KNOT_ENOMEM; } return KNOT_EOK; }
int main( void ) { uint16_t mtr_cnt[4] = {0,0,0,0}; cli(); palsetimer_init(); /* タイマ1インプットキャプチャ設定 */ timer2_init(); /* タイマ2割り込み設定 */ dig_init(); /* 出力ポート指定、初期化 */ sei(); /* SREG の設定 - 割り込み有効 */ rpm = 4321; count = 0; wait_time = 0; /* タイマークリア */ while(1) { dig_putrpm(); /* 前の RPM を1sec表示。その間にモーターカウント。 */ /* RPM を算出 * 実測値より、5パルスあたり1回転のため、 * rpm = mtr_cnt × 60 ÷ (5*サンプリングsec) */ mtr_cnt[sec_cnt] = count; count = 0; /* 1secのカウント開始 */ rpm = (mtr_cnt[0] + mtr_cnt[1] + mtr_cnt[2] + mtr_cnt[3]) * (60/(5*RPM_SAMPLING_SEC)); sec_cnt++; sec_cnt &= 0x3; /* 0-3を繰り返す */ } }
FILE *open_vect(char *name, char *mapset) { FILE *fd; char msg[128]; fd = G_fopen_vector_old(name, mapset); if (fd == NULL) { sprintf(msg, "can't open vector map [%s]", name); G_fatal_error(msg); } if (dig_init(fd) < 0) { sprintf(msg, "can't initialize vector map [%s]", name); G_fatal_error(msg); } return fd; }