* the rig may be in rig_init state, but not opened */
| 67 | * the rig may be in rig_init state, but not opened |
| 68 | */ |
| 69 | int dumpstate(RIG *rig, FILE *fout) |
| 70 | { |
| 71 | const struct rig_caps *caps; |
| 72 | struct rig_state *rs = STATE(rig); |
| 73 | int status, i; |
| 74 | int can_esplit, can_echannel; |
| 75 | char freqbuf[20]; |
| 76 | int backend_warnings = 0; |
| 77 | char warnbuf[4096]; |
| 78 | char prntbuf[4096]; /* a malloc would be better.. */ |
| 79 | char *label1, *label2, *label3, *label4, *label5; |
| 80 | char *labelrx1; // , *labelrx2, *labelrx3, *labelrx4, *labelrx5; |
| 81 | |
| 82 | warnbuf[0] = 0; |
| 83 | prntbuf[0] = 0; |
| 84 | |
| 85 | if (!rig || !rig->caps) |
| 86 | { |
| 87 | return -RIG_EINVAL; |
| 88 | } |
| 89 | |
| 90 | caps = rig->caps; |
| 91 | |
| 92 | fprintf(fout, "Caps dump for model: %u\n", rs->rig_model); |
| 93 | fprintf(fout, "Model name:\t%s\n", rs->model_name); |
| 94 | fprintf(fout, "Mfg name:\t%s\n", rs->mfg_name); |
| 95 | fprintf(fout, "Hamlib version:\t%s\n", hamlib_version2); |
| 96 | fprintf(fout, "Backend version:\t%s\n", rs->version); |
| 97 | fprintf(fout, "Backend copyright:\t%s\n", rs->copyright); |
| 98 | fprintf(fout, "Backend status:\t%s\n", rig_strstatus(rs->status)); |
| 99 | fprintf(fout, "Rig type:\t"); |
| 100 | |
| 101 | char *unknown = "Unknown"; |
| 102 | |
| 103 | for (i = 0; rig_type[i].type != -1; ++i) |
| 104 | { |
| 105 | if ((rig_type[i].type & rs->rig_type) == rig_type[i].type) |
| 106 | { |
| 107 | fprintf(fout, "%s ", rig_type[i].description); |
| 108 | unknown = ""; |
| 109 | } |
| 110 | } |
| 111 | |
| 112 | fprintf(fout, "%s\n", unknown); |
| 113 | |
| 114 | if (strlen(unknown) > 0) |
| 115 | { |
| 116 | strcat(warnbuf, " RIG_TYPE"); |
| 117 | backend_warnings++; |
| 118 | } |
| 119 | |
| 120 | fprintf(fout, "PTT type:\t"); |
| 121 | |
| 122 | switch (rs->ptt_type) |
| 123 | { |
| 124 | case RIG_PTT_NONE: |
| 125 | fprintf(fout, "None\n"); |
| 126 | break; |
no test coverage detected