1919#include < SoftwareSerial.h>
2020
2121// Defines the Square Wave Output Pin
22- #define OUT_PIN 2
22+ #define OUT_PIN 12
2323
2424#define _1200 1
2525#define _2400 0
3737#define _FIXPOS_STATUS 4
3838#define _STATUS 5
3939
40+ // Defines the Dorji Control PIN
41+ #define _PTT 7
42+ #define _PD 6
43+ #define _POW 5
44+
45+ #define DRJ_TXD 10
46+ #define DRJ_RXD 11
47+
48+ SoftwareSerial dorji (DRJ_RXD, DRJ_TXD);
49+
4050bool nada = _2400;
4151
4252/*
@@ -405,7 +415,10 @@ void send_packet(char packet_type)
405415{
406416 print_debug (packet_type);
407417
408- digitalWrite (LED_BUILTIN, 1 );
418+ digitalWrite (LED_BUILTIN, HIGH);
419+ digitalWrite (_PTT, HIGH);
420+
421+ delay (100 );
409422
410423 /*
411424 * AX25 FRAME
@@ -429,6 +442,7 @@ void send_packet(char packet_type)
429442 send_crc ();
430443 send_flag (3 );
431444
445+ digitalWrite (_PTT, LOW);
432446 digitalWrite (LED_BUILTIN, 0 );
433447}
434448
@@ -538,8 +552,18 @@ void set_io(void)
538552 pinMode (LED_BUILTIN, OUTPUT);
539553 pinMode (OUT_PIN, OUTPUT);
540554
555+ pinMode (DRJ_RXD, INPUT);
556+ pinMode (DRJ_TXD, OUTPUT);
557+ pinMode (_PTT, OUTPUT);
558+ pinMode (_PD, OUTPUT);
559+ pinMode (_POW, OUTPUT);
560+
561+ digitalWrite (_PTT, LOW);
562+ digitalWrite (_PD, HIGH);
563+ digitalWrite (_POW, LOW);
564+
541565 Serial.begin (115200 );
542- gps .begin (9600 );
566+ dorji .begin (9600 );
543567}
544568
545569void print_code_version (void )
@@ -623,13 +647,66 @@ void print_debug(char type)
623647 Serial.end ();
624648}
625649
650+ /*
651+ *
652+ */
653+ void dorji_init (SoftwareSerial &ser)
654+ {
655+ ser.println (" AT+DMOCONNECT" );
656+ }
657+
658+ void dorji_reset (SoftwareSerial &ser)
659+ {
660+ for (char i=0 ;i<3 ;i++)
661+ ser.println (" AT+DMOCONNECT" );
662+ }
663+
664+ void dorji_setfreq (float txf, float rxf, SoftwareSerial &ser)
665+ {
666+ ser.print (" AT+DMOSETGROUP=0," );
667+ ser.print (txf, 4 );
668+ ser.print (' ,' );
669+ ser.print (rxf, 4 );
670+ ser.println (" ,0000,0,0000" );
671+ }
672+
673+ void dorji_readback (SoftwareSerial &ser)
674+ {
675+ String d;
676+
677+ while (ser.available () < 1 );
678+ if (ser.available () > 0 )
679+ {
680+ d = ser.readString ();
681+ Serial.print (d);
682+ }
683+ }
684+
685+ void dorji_close (SoftwareSerial &ser)
686+ {
687+ ser.end ();
688+ }
689+
626690/*
627691 *
628692 */
629693void setup ()
630694{
631695 set_io ();
632696 print_code_version ();
697+
698+ delay (250 );
699+
700+ dorji_reset (dorji);
701+ dorji_readback (dorji);
702+ delay (1000 );
703+ dorji_setfreq (144.390 , 144.390 , dorji);
704+ dorji_readback (dorji);
705+
706+ Serial.println (' ' );
707+
708+ dorji_close (dorji);
709+ gps.begin (9600 );
633710}
634711
635712void loop ()
0 commit comments