| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- /*
- * test_front.c - Test program for new API
- *
- * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- */
- #include <sys/ioctl.h>
- #include <stdio.h>
- #include <stdint.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <time.h>
- #include <unistd.h>
- #include <ost/dmx.h>
- #include <ost/frontend_old.h>
- #include <ost/sec.h>
- #include <ost/audio.h>
- #include <sys/poll.h>
- int OSTSelftest(int fd)
- {
- int ans;
- if ((ans = ioctl(fd,OST_SELFTEST,0)) < 0) {
- perror("OST SELF TEST: ");
- return -1;
- }
- return 0;
- }
- int OSTSetPowerState(int fd, uint32_t state)
- {
- int ans;
- if ((ans = ioctl(fd,OST_SET_POWER_STATE,state)) < 0) {
- perror("OST SET POWER STATE: ");
- return -1;
- }
- return 0;
- }
- int OSTGetPowerState(int fd, uint32_t *state)
- {
- int ans;
- if ((ans = ioctl(fd,OST_GET_POWER_STATE,state)) < 0) {
- perror("OST GET POWER STATE: ");
- return -1;
- }
- switch(*state){
- case OST_POWER_ON:
- printf("POWER ON (%d)\n",*state);
- break;
- case OST_POWER_STANDBY:
- printf("POWER STANDBY (%d)\n",*state);
- break;
- case OST_POWER_SUSPEND:
- printf("POWER SUSPEND (%d)\n",*state);
- break;
- case OST_POWER_OFF:
- printf("POWER OFF (%d)\n",*state);
- break;
- default:
- printf("unknown (%d)\n",*state);
- break;
- }
- return 0;
- }
- int FEReadStatus(int fd)
- {
- int ans;
- feStatus stat;
- if ((ans = ioctl(fd,FE_READ_STATUS,&stat)) < 0) {
- perror("FE READ STATUS: ");
- return -1;
- }
- if (stat & FE_HAS_POWER)
- printf("FE HAS POWER\n");
- if (stat & FE_HAS_SIGNAL)
- printf("FE HAS SIGNAL\n");
- if (stat & QPSK_SPECTRUM_INV)
- printf("QPSK SPEKTRUM INV\n");
- return 0;
- }
- int FEReadBER(int fd, uint32_t *ber)
- {
- int ans;
- if ((ans = ioctl(fd,FE_READ_BER, ber)) < 0) {
- perror("FE READ_BER: ");
- return -1;
- }
- printf("BER: %d\n",*ber);
- return 0;
- }
- int FEReadSignalStrength(int fd, int32_t *strength)
- {
- int ans;
- if ((ans = ioctl(fd,FE_READ_SIGNAL_STRENGTH, strength)) < 0) {
- perror("FE READ SIGNAL STRENGTH: ");
- return -1;
- }
- printf("SIGNAL STRENGTH: %d\n",*strength);
- return 0;
- }
- int FEReadSNR(int fd, int32_t *snr)
- {
- int ans;
- if ((ans = ioctl(fd,FE_READ_SNR, snr)) < 0) {
- perror("FE READ_SNR: ");
- return -1;
- }
- printf("SNR: %d\n",*snr);
- return 0;
- }
- int FEReadUncorrectedBlocks(int fd, uint32_t *ucb)
- {
- int ans;
- if ((ans = ioctl(fd,FE_READ_UNCORRECTED_BLOCKS, ucb)) < 0) {
- perror("FE READ UNCORRECTED BLOCKS: ");
- return -1;
- }
- printf("UBLOCKS: %d\n",*ucb);
- return 0;
- }
- int FEGetNextFrequency(int fd, uint32_t *nfr)
- {
- int ans;
- if ((ans = ioctl(fd,FE_GET_NEXT_FREQUENCY, nfr)) < 0) {
- perror("FE GET NEXT FREQUENCY: ");
- return -1;
- }
- printf("Next Frequency: %d\n",*nfr);
- return 0;
- }
- int FEGetNextSymbolRate(int fd, uint32_t *nsr)
- {
- int ans;
- if ((ans = ioctl(fd,FE_GET_NEXT_SYMBOL_RATE, nsr)) < 0) {
- perror("FE GET NEXT SYMBOL RATE: ");
- return -1;
- }
- printf("Next Symbol Rate: %d\n",*nsr);
- return 0;
- }
- int QPSKTune(int fd, struct qpskParameters *param)
- {
- int ans;
- if ((ans = ioctl(fd,QPSK_TUNE, param)) < 0) {
- perror("QPSK TUNE: ");
- return -1;
- }
- return 0;
- }
- int QPSKGetEvent (int fd, struct qpskEvent *event)
- {
- int ans;
- if ((ans = ioctl(fd,QPSK_GET_EVENT, event)) < 0) {
- perror("QPSK GET EVENT: ");
- return -1;
- }
- return 0;
- }
- int QPSKFEInfo (int fd, struct qpskFrontendInfo *info)
- {
- int ans;
- if ((ans = ioctl(fd,QPSK_FE_INFO, info)) < 0) {
- perror("QPSK FE INFO: ");
- return -1;
- }
- printf("min Frequency : %d\n", info->minFrequency);
- printf("max Frequency : %d\n", info->maxFrequency);
- printf("min Symbol Rate : %d\n", info->minSymbolRate);
- printf("max Symbol Rate : %d\n", info->maxSymbolRate);
- printf("Hardware Type : %d\n", info->hwType);
- printf("Hardware Version: %d\n", info->hwVersion);
- return 0;
- }
- int SecGetStatus (int fd, struct secStatus *state)
- {
- int ans;
- if ((ans = ioctl(fd,SEC_GET_STATUS, state)) < 0) {
- perror("QPSK GET EVENT: ");
- return -1;
- }
- switch (state->busMode){
- case SEC_BUS_IDLE:
- printf("SEC BUS MODE: IDLE (%d)\n",state->busMode);
- break;
- case SEC_BUS_BUSY:
- printf("SEC BUS MODE: BUSY (%d)\n",state->busMode);
- break;
- case SEC_BUS_OFF:
- printf("SEC BUS MODE: OFF (%d)\n",state->busMode);
- break;
- case SEC_BUS_OVERLOAD:
- printf("SEC BUS MODE: OVERLOAD (%d)\n",state->busMode);
- break;
- default:
- printf("SEC BUS MODE: unknown (%d)\n",state->busMode);
- break;
- }
- switch (state->selVolt){
- case SEC_VOLTAGE_OFF:
- printf("SEC VOLTAGE: OFF (%d)\n",state->selVolt);
- break;
- case SEC_VOLTAGE_LT:
- printf("SEC VOLTAGE: LT (%d)\n",state->selVolt);
- break;
- case SEC_VOLTAGE_13:
- printf("SEC VOLTAGE: 13 (%d)\n",state->selVolt);
- break;
- case SEC_VOLTAGE_13_5:
- printf("SEC VOLTAGE: 13.5 (%d)\n",state->selVolt);
- break;
- case SEC_VOLTAGE_18:
- printf("SEC VOLTAGE: 18 (%d)\n",state->selVolt);
- break;
- case SEC_VOLTAGE_18_5:
- printf("SEC VOLTAGE: 18.5 (%d)\n",state->selVolt);
- break;
- default:
- printf("SEC VOLTAGE: unknown (%d)\n",state->selVolt);
- break;
- }
- printf("SEC CONT TONE: %s\n", (state->contTone ? "ON" : "OFF"));
- return 0;
- }
- main(int argc, char **argv)
- {
- int fd,fd_sec;
- uint32_t state;
- int32_t strength;
- struct qpskFrontendInfo info;
- struct secStatus sec_state;
- if ((fd = open("/dev/ost/qpskfe",O_RDWR)) < 0){
- perror("FRONTEND DEVICE: ");
- return -1;
- }
- if ((fd_sec = open("/dev/ost/sec",O_RDWR)) < 0){
- perror("SEC DEVICE: ");
- return -1;
- }
- OSTSelftest(fd);
- OSTSetPowerState(fd, OST_POWER_ON);
- OSTGetPowerState(fd, &state);
- FEReadStatus(fd);
- FEReadBER(fd, &state);
- FEReadSignalStrength(fd, &strength);
- FEReadSNR(fd, &state);
- FEReadUncorrectedBlocks(fd, &state);
- state = 12567000;
- FEGetNextFrequency(fd, &state);
- FEGetNextSymbolRate(fd, &state);
- QPSKFEInfo (fd, &info);
- SecGetStatus (fd_sec, &sec_state);
- close(fd);
- close(fd_sec);
- }
|