Announcement

Collapse
No announcement yet.

Sending data to 2d - 3d visualizer programs?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sending data to 2d - 3d visualizer programs?

    I want to send data as live snapshot or datalog to many 2D and 3D data imaging programs such as fs future and snuffler. Can any friends who have knowledge on this subject help me?

    For example, they can simply send data to the fs future program as much as we see on Arabic channels. But I want to know what the communication protocols they send this data to are, what format they send the data in.

    In fact, we can find an answer to this question by simply listening to the data exchange between a gradiometer device and serial port terminals.



    For example, now I can send data to a snuffler program such as an EPE resistive meter.

    I am wondering how and in what format will I send the data to the fs future device?​​

  • #2
    Chip type : ATmega16A
    Program type : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model : Small
    External RAM size : 0
    Data Stack size : 256
    ***********/

    #include <mega16a.h>

    #include <delay.h>

    // Declare your global variables here
    int x;

    // Standard Input/Output functions
    #include <stdio.h>

    // Voltage Reference: AVCC pin
    #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (1<<ADLAR))

    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | ADC_VREF_TYPE;
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=(1<<ADSC);
    // Wait for the AD conversion to complete
    while ((ADCSRA & (1<<ADIF))==0);
    ADCSRA|=(1<<ADIF);
    return ADCH;
    }

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

    // Port B initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

    // Port C initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

    // Port D initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0 output: Disconnected
    TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Disconnected
    // OC1B output: Disconnected
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
    TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0<<AS2;
    TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
    TCNT2=0x00;
    OCR2=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=(0<<ISC11)
    ?
    | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
    MCUCSR=(0<<ISC2);

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 2400
    UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
    UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB | (0<<TXB;
    UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
    UBRRH=0x00;
    UBRRL=0xCF;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // The Analog Comparator's positive input is
    // connected to the AIN0 pin
    // The Analog Comparator's negative input is
    // connected to the AIN1 pin
    ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

    // ADC initialization
    // ADC Clock frequency: 1000.000 kHz
    // ADC Voltage Reference: AVCC pin
    // ADC Auto Trigger Source: ADC Stopped
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE;
    ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
    SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);

    // SPI initialization
    // SPI disabled
    SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

    // TWI initialization
    // TWI disabled
    TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

    printf("%d\r\n",100);
    delay_ms(250);
    printf("%d\r\n",100);
    delay_ms(250);
    printf("%d\r\n",100);
    delay_ms(250);
    printf("%d\r\n",15);
    delay_ms(250);
    printf("%d\r\n",15);
    delay_ms(250);
    printf("%d\r\n",15);
    delay_ms(250);
    printf("%d\r\n",83);
    delay_ms(250);
    printf("%d\r\n",83);
    delay_ms(250);
    printf("%d\r\n",83);
    delay_ms(250);
    printf("%d\r\n",105);
    delay_ms(250);
    printf("%d\r\n",105);
    delay_ms(250);
    printf("%d\r\n",105);
    delay_ms(250);
    printf("%d\r\n",67);
    delay_ms(250);
    printf("%d\r\n",67);
    delay_ms(250);
    printf("%d\r\n",67);
    delay_ms(250);

    while (1)
    {
    // Place your code here
    x=read_adc(0);
    delay_ms(100);
    printf("%d\r\n",x);


    }
    }​



    this software helps you

    Comment


    • #3
      a0 balance
      a1 verify
      a2 scan
      a3 stop

      // Declare your global variables here
      int flagu,flagv,flagw,flagx,flagy,flagz,n,t=1,x=1,L=1, k,v,z,flaga,flagb,i,j,n;
      char str[20],str2[20],str3[20],str4[20];

      void balance(int t){
      for(n=0;n<=t;n++){
      printf("%d\r\n",128/x);
      delay_ms(250);
      flagu=0;
      }}
      void verify(void){
      printf("%d\r\n",100);
      delay_ms(25);
      printf("%d\r\n",100);
      delay_ms(25);
      printf("%d\r\n",100);
      delay_ms(25);
      printf("%d\r\n",15);
      delay_ms(25);
      printf("%d\r\n",15);
      delay_ms(25);
      printf("%d\r\n",15);
      delay_ms(25);
      printf("%d\r\n",83);
      delay_ms(25);
      printf("%d\r\n",83);
      delay_ms(25);
      printf("%d\r\n",83);
      delay_ms(25);
      printf("%d\r\n",105);
      delay_ms(25);
      printf("%d\r\n",105);
      delay_ms(25);
      printf("%d\r\n",105);
      delay_ms(25);
      printf("%d\r\n",67);
      delay_ms(25);
      printf("%d\r\n",67);
      delay_ms(25);
      printf("%d\r\n",67);
      delay_ms(250);
      }



      while (1)
      {
      lcd_gotoxy(0,0);sprintf(str,"impulse=%d ",t);lcd_puts(str);
      lcd_gotoxy(0,1);sprintf(str2,"sensivity=%d ",x);lcd_puts(str2);
      lcd_gotoxy(0,2);sprintf(str3,"LINE=%d ",L);lcd_puts(str3);

      // Place your code here
      if((PINC.0==0)&&(t<10)&&(flaga==0)&&(flagb==0)){wh ile(PINC.0==0);delay_ms(100);t++;lcd_gotoxy(0,0);s printf(str,"impulse=%d ",t);lcd_puts(str);flagu=1;}
      if((PINC.1==0)&&(t>1)&&(flaga==0)&&(flagb==0)){whi le(PINC.1==0);delay_ms(100);t--;lcd_gotoxy(0,0);sprintf(str,"impulse=%d ",t);lcd_puts(str);flagv=1;}
      if((PINC.2==0)&&(x<10)&&(flaga==0)&&(flagb==0)){wh ile(PINC.2==0);delay_ms(100);x++;lcd_gotoxy(0,1);s printf(str2,"sensivity=%d ",x);lcd_puts(str2);flagw=1;}
      if((PINC.3==0)&&(x>1)&&(flaga==0)&&(flagb==0)){whi le(PINC.3==0);delay_ms(100);x--;lcd_gotoxy(0,1);sprintf(str2,"sensivity=%d ",x);lcd_puts(str2);flagx=1;}
      if((PINC.4==0)&&(L<10)&&(flaga==0)&&(flagb==0)){wh ile(PINC.4==0);delay_ms(100);L++;lcd_gotoxy(0,2);s printf(str3,"LINE=%d ",L);lcd_puts(str3);flagy=1;}
      if((PINC.5==0)&&(L>1)&&(flaga==0)&&(flagb==0)){whi le(PINC.5==0);delay_ms(100);L--;lcd_gotoxy(0,2);sprintf(str3,"LINE=%d ",L);lcd_puts(str3);flagz=1;}

      v=(read_adc(7))/x;

      if((PINA.0==0)&&(PINA.1==1)&&(PINA.2==1)&&(flaga== 0)&&(flagb==0)){
      k=(read_adc(7)-12/x;
      delay_ms(250);
      lcd_gotoxy(0,3);sprintf(str4,"balance=%d ",k);lcd_puts(str4);
      flaga=1;}

      if((PINA.1==0)&&(flaga==1)){
      flaga=0;
      verify();
      balance(t);
      PORTD.2=1;
      delay_ms(1000);
      PORTD.2=0;
      delay_ms(1000);
      flagb=1;}

      if((PINA.2==0)&&(flagb==1)&&(j<L)){
      z=v-k;
      if(z>=(255/x)){z=(255/x);}
      if(z<=0){z=0;}
      printf("%d\r\n",z);
      delay_ms(250);
      PORTD.3=1;
      delay_ms(1000);
      PORTD.3=0;
      delay_ms(1000);
      i++;
      if(i==t){PORTD.4=1;delay_ms(1000);PORTD.4=0;j++;i= 0;}}

      if((PINA.0==1)&&(PINA.1==1)&&(PINA.2==1)&&(PINA.3= =0)){flaga=0;flagb=0;j=0;}
      }
      }

      Comment

      Working...
      X