Compare commits
2 commits
31611bd096
...
e097927d5d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e097927d5d | ||
|
|
ae5b55f5c6 |
4 changed files with 60 additions and 0 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -14,3 +14,6 @@ irenarc.py
|
||||||
irenafile
|
irenafile
|
||||||
*/data
|
*/data
|
||||||
ahepamfile
|
ahepamfile
|
||||||
|
*.log
|
||||||
|
nm64file
|
||||||
|
mustang
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,7 @@ int main(int argc, const char * const * argv)
|
||||||
case 0xc264:
|
case 0xc264:
|
||||||
case 0xc364: x = nm_counters(h1); break;
|
case 0xc364: x = nm_counters(h1); break;
|
||||||
default:
|
default:
|
||||||
|
if ((h1 & 0xfff0)==0x12c0) { x = i2c(h1); break; }
|
||||||
switch (h1 & 0xfffc) {
|
switch (h1 & 0xfffc) {
|
||||||
case 0x5710: x = dorn_hk(h1, n_adcs, 1); break;
|
case 0x5710: x = dorn_hk(h1, n_adcs, 1); break;
|
||||||
case 0x5714: x = dorn_samples(h1, n_adcs, 1); break;
|
case 0x5714: x = dorn_samples(h1, n_adcs, 1); break;
|
||||||
|
|
|
||||||
|
|
@ -391,6 +391,61 @@ int mcs_pulse(unsigned int h1)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int i2c_seth();
|
||||||
|
|
||||||
|
int i2c(unsigned int h1)
|
||||||
|
{
|
||||||
|
unsigned int magic = h1 & 0xf;
|
||||||
|
unsigned int size = next(1);
|
||||||
|
if (size & 0xff00 || !size) {
|
||||||
|
printf("\nXI²C 0x%04x 0x%04x", h1, size);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (size==132 && magic==5)
|
||||||
|
return i2c_seth();
|
||||||
|
printf("\nI²C %u %u", magic, --size);
|
||||||
|
while (size--)
|
||||||
|
printf(" %04x", next(1));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void seth_vector(unsigned short *d, const char *sensor, int idx)
|
||||||
|
{
|
||||||
|
printf("\nI2C-%s %2u %5d %5d %5d",
|
||||||
|
sensor, idx, d[0], d[1], d[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int i2c_seth()
|
||||||
|
{
|
||||||
|
unsigned short d[131];
|
||||||
|
for (int i=0; i<131; i++)
|
||||||
|
d[i] = next(1);
|
||||||
|
unsigned short mag_status = d[0];
|
||||||
|
short mag_temp = d[4];
|
||||||
|
unsigned short acc_aux = d[5];
|
||||||
|
short acc_adc1 = d[6];
|
||||||
|
short acc_adc2 = d[7];
|
||||||
|
short acc_temp = d[8];
|
||||||
|
unsigned short acc_fifo = d[63];
|
||||||
|
unsigned short acc_status = d[64];
|
||||||
|
const char *ok = "✓";
|
||||||
|
if (mag_status != 0xffa7
|
||||||
|
|| acc_status != 0xffa7
|
||||||
|
|| acc_aux != 0xff87
|
||||||
|
|| (acc_fifo & 0xff) != 0x2f)
|
||||||
|
ok = "!";
|
||||||
|
printf("\nISETH %s %04x %04x %04x %u %d %d %d %d", ok,
|
||||||
|
mag_status, acc_status, acc_aux, acc_fifo>>8,
|
||||||
|
mag_temp+25, acc_temp+25, acc_adc1, acc_adc2 );
|
||||||
|
seth_vector(d+1, "MAG", 0);
|
||||||
|
for (int i=0; i<18; i++)
|
||||||
|
seth_vector(d+9+3*i, "MAG", i+1);
|
||||||
|
seth_vector(d+128, "MAG", 19);
|
||||||
|
for (int i=0; i<21; i++)
|
||||||
|
seth_vector(d+65+3*i, "ACC", i);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const char libirena_usage[] =
|
const char libirena_usage[] =
|
||||||
" [opts] < infile > outfile\n"
|
" [opts] < infile > outfile\n"
|
||||||
" -f --follow follow mode\n"
|
" -f --follow follow mode\n"
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ static inline unsigned short next(int inp)
|
||||||
extern int n_counters;
|
extern int n_counters;
|
||||||
extern int nm_counter_gap[];
|
extern int nm_counter_gap[];
|
||||||
int nm_counters(unsigned int h1);
|
int nm_counters(unsigned int h1);
|
||||||
|
int i2c(unsigned int h1);
|
||||||
|
|
||||||
static inline unsigned long uftoi(unsigned int f, unsigned int m)
|
static inline unsigned long uftoi(unsigned int f, unsigned int m)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue