public static bool Init() { if (F1500 == null) { Flex1500USB.D_ATTACH_DETACH_CALLBACK attach = attachCallback; Flex1500USB.D_ATTACH_DETACH_CALLBACK detach = detachCallback; F1500 = new Flex1500USB(attach, detach); Thread.Sleep(1000); } foreach (IntPtr key in Flex1500USB.radioArray.Keys) { string sn = ""; Flex1500USB.radioArray[key].GetSerialNumber(out sn); if (sn == PROD_TEST_SN) { if (prod_test == IntPtr.Zero) { prod_test = key; PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK stub_cb_del = CallbackStub; PowerSDR.Flex1500USB.D_INTERCHANGE_BUFFER_CALLBACK AudioCallback = AudioCallbackStub; Flex1500USB.radioArray[prod_test].Init(CallbackStub, CallbackStub, CallbackStub, CallbackStub, AudioCallback, true, false, true, (uint)Audio.BlockSize); // set gen to 10MHz Flex1500USB.radioArray[prod_test].WriteOp((uint)USBHID.Opcode.USB_OP_SET_RX1_FREQ_TW, 0x6AAAAAA, 0); } } } return(true); }
/*// cleanup previous active radio * if (r != IntPtr.Zero) * { * Flex1500USB.radioArray[r].StopAudioListener(); * Flex1500USB.radioArray[r].StopListener(); * } * * bool found = false; * foreach (IntPtr key in Flex1500USB.radioArray.Keys) * { * string serial = ""; * Flex1500USB.radioArray[key].GetSerialNumber(out serial); * if (sn == serial) * { * found = true; * * r = key; * PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK PTT_Callback = MicPTT; * PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK FlexPTT_Callback = FlexPTT; * PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK Dash_Callback = Dash; * PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK Dot_Callback = Dot; * PowerSDR.Flex1500USB.D_INTERCHANGE_BUFFER_CALLBACK AudioCallback = Audio.Callback1500; * Flex1500USB.radioArray[r].Init(MicPTT, FlexPTT, Dash, Dot, AudioCallback, true, false, false, (uint)Audio.BlockSize); * break; * } * } * * return found; * }*/ public static bool SetActiveRadio(IntPtr key) { if (!Flex1500USB.radioArray.ContainsKey(key)) { return(false); } r = key; PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK PTT_Callback = MicPTT; PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK FlexPTT_Callback = FlexPTT; PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK Dash_Callback = Dash; PowerSDR.Flex1500USB.D_STATE_CHANGE_CALLBACK Dot_Callback = Dot; PowerSDR.Flex1500USB.D_INTERCHANGE_BUFFER_CALLBACK AudioCallback = Audio.Callback1500; Flex1500USB.radioArray[r].Init(MicPTT, FlexPTT, Dash, Dot, AudioCallback, true, false, true, (uint)Audio.BlockSize); return(true); }