void SetupRf() { string serialPort = GetSerialPortViaPicker(); SerialPort sp = new System.IO.Ports.SerialPort(serialPort, CCRegister.BRIDGE_BAUD_RATE); /*sp.Open(); * sp.Write("{g00}"); * Log.Error(sp.ReadLine());*/ rf = new RF(sp); rf.Reset(); rf.SetupPATABLE(); rf.SetCarrierFrequency(315); txtCarrierFrequency.Text = rf.GetCarrierFrequency().ToString(); rf.SetBaudRate(4153.25); txtBaudRate.Text = rf.GetBaudRate().ToString(); rf.SetupRegisters(); rf.EnterIdleState(); rf.ShortWait(); Log.Info("CC1101 Ready", 1); }
private static void Main(string[] args) { /* * * Parameters required to start in console mode * -h:(data in hex, no affix FF00FF00) * -f:(frequency in mhz 433.9) * -b:(baud rate e.g. 3333) * -p:(serial port name e.g. COM3) * * Example of working params: -h:00FF00AA00FF -f:433.92 -b:3333 -p:COM23 * * / * * /* * * Optional parameter (for console or windowed) * -bb:(bridge baud rate, default 9600) * */ bool canStartInConsoleMode = true; string hexData = GetParameterValue(args, "h"); string frequencyMhz = GetParameterValue(args, "f"); string baudRate = GetParameterValue(args, "b"); string serialPortName = GetParameterValue(args, "p"); string bridgeBaudRate = GetParameterValue(args, "bb"); int bridgeBaudRateInt; double baudRateDouble; double frequencyMhzDouble; List <byte> hexDataBytes = new List <byte>(); // validate if parameters are sane if (int.TryParse(bridgeBaudRate, out bridgeBaudRateInt)) { CCRegister.BRIDGE_BAUD_RATE = bridgeBaudRateInt; Log.Info("Set bridge baud rate to " + CCRegister.BRIDGE_BAUD_RATE.ToString()); } if (!double.TryParse(baudRate, out baudRateDouble)) { canStartInConsoleMode = false; } if (!double.TryParse(frequencyMhz, out frequencyMhzDouble)) { canStartInConsoleMode = false; } if (SerialPort.GetPortNames().Length == 0) { canStartInConsoleMode = false; } bool desiredSerialPortIsAvailable = false; foreach (string availablePort in SerialPort.GetPortNames()) { if (availablePort.ToUpper() == serialPortName.ToUpper()) { SerialPort sp = new SerialPort(serialPortName); if (sp.IsOpen) { Log.Error("Specified serial port is in use!"); Environment.Exit(0); } else { desiredSerialPortIsAvailable = true; break; } sp.Dispose(); } } canStartInConsoleMode &= desiredSerialPortIsAvailable; if (hexData.Length % 2 != 0) { canStartInConsoleMode = false; } else { try { for (int i = 0; i < hexData.Length; i += 2) { hexDataBytes.Add(byte.Parse(hexData[i].ToString() + hexData[i + 1].ToString(), System.Globalization.NumberStyles.HexNumber)); } } catch (Exception ex) { Log.Error(ex.Message); Environment.Exit(0); } } // start in console mode if possible if (canStartInConsoleMode) { Log.Info("Starting CCManager in Console mode"); try { RF rf = new RF(new SerialPort(serialPortName, CCRegister.BRIDGE_BAUD_RATE)); rf.Reset(); rf.SetupPATABLE(); rf.SetCarrierFrequency(frequencyMhzDouble); rf.SetBaudRate(baudRateDouble); rf.SetupRegisters(); rf.EnterIdleState(); rf.ShortWait(); rf.Transmit(hexDataBytes.ToArray()); rf.CloseSerial(); } catch (Exception ex) { Log.Error(ex.Message); } } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } }
void SetupRf() { string serialPort = GetSerialPortViaPicker(); SerialPort sp = new System.IO.Ports.SerialPort(serialPort, CCRegister.BRIDGE_BAUD_RATE); /*sp.Open(); sp.Write("{g00}"); Log.Error(sp.ReadLine());*/ rf = new RF(sp); rf.Reset(); rf.SetupPATABLE(); rf.SetCarrierFrequency(315); txtCarrierFrequency.Text = rf.GetCarrierFrequency().ToString(); rf.SetBaudRate(4153.25); txtBaudRate.Text = rf.GetBaudRate().ToString(); rf.SetupRegisters(); rf.EnterIdleState(); rf.ShortWait(); Log.Info("CC1101 Ready", 1); }
string ShowRegisterViewEdit() { string registerString = ""; foreach (KeyValuePair <string, byte> registerValue in CCRegister.ConfigurationRegisterValues) { registerString += ",\r\n" + registerValue.Key + " = " + StringifyByteWithPadding(registerValue.Value); } if (registerString.Length != 0) { registerString = registerString.Remove(0, 1); } registerString = registerString.Trim(); Form registerDialog = new Form(); registerDialog.Text = "View/Edit Registers"; registerDialog.StartPosition = FormStartPosition.CenterScreen; registerDialog.Height = 580; registerDialog.Width = 328; registerDialog.ShowIcon = false; registerDialog.MinimizeBox = false; TextBox txtRegisterValues = new TextBox(); txtRegisterValues.Multiline = true; txtRegisterValues.Location = new Point(10, 10); txtRegisterValues.Width = 300; txtRegisterValues.Height = 500; txtRegisterValues.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; txtRegisterValues.Text = registerString; txtRegisterValues.Font = new Font("Courier New", 12); txtRegisterValues.ScrollBars = ScrollBars.Vertical; registerDialog.Controls.Add(txtRegisterValues); Button btnOk = new Button(); btnOk.Text = "OK"; btnOk.DialogResult = DialogResult.OK; btnOk.Location = new Point(310 - btnOk.Width, 520); btnOk.Anchor = AnchorStyles.Right | AnchorStyles.Bottom; registerDialog.Controls.Add(btnOk); if (registerDialog.ShowDialog() == DialogResult.OK) { try { string[] registerKeyValues = txtRegisterValues.Text.Split(','); foreach (string registerKeyValueString in registerKeyValues) { string[] registerKeyValueArray = registerKeyValueString.Split('='); string registerKey = registerKeyValueArray[0].Trim().ToUpper(); string registerValue = registerKeyValueArray[1].Trim(); CCRegister.ConfigurationRegisterValues[registerKey] = (byte)Convert.ToInt32(registerValue, 16); } rf.SetupRegisters(); txtBaudRate.Text = rf.GetBaudRate().ToString(); txtCarrierFrequency.Text = rf.GetCarrierFrequency().ToString(); Log.Info("Registers OK", 2); } catch (Exception ex) { Log.Error(ex.Message); } } else { // cancelled } return(null); }