Я разрабатываю телеметрическую платформу для проекта нанопечати. Моя команда использует Netduino 2 plus (не мой первый выбор, но что вы собираетесь делать?) Я не совсем знаком с C#, и я новичок-программист, чтобы быть уверенным.Использование C# и Netduino для регистрации данных
У нас есть код, который успешно проверяет датчик температуры I2C и использует debug.print для записи на консоль. Я бы хотел, чтобы эти данные записывались в файл.
Есть примеры для передачи файлов с SD-карты на ПК, но это кажется мне ненужным (хотя это может быть совершенно необходимо, чтобы не перегружать буфер?). Есть ли вызов, который просто будет записывать данные в файл вместо записи на консоль?
Насколько я понимаю, нам может потребоваться приложение для прослушивания последовательного порта на ПК. Кажется, нам также понадобится соответствующее приложение для записи с аппаратного обеспечения. Раньше я использовал микроконтроллеры, которые просто открывали серию и отправляли через USB в местоположение файла.
Вот код, который мы используем для печати данных на консоль:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.IO.Ports;
namespace NetduinoApplication1
{
public class Program
{
public static void Main()
{
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
OutputPort p = new OutputPort(Pins.GPIO_PIN_SDA, true);
p.Write(false);
p.Dispose();
// write your code here
byte[] Addr = new byte[1];
Addr[0] = 0x07;
byte[] TxBuff = new byte[9];
byte[] RxBuff = new byte[9];
I2CDevice.Configuration I2C_Configuration = new I2CDevice.Configuration(0x5A, 100);
I2CDevice I2C1 = new I2CDevice(I2C_Configuration);
I2CDevice.I2CTransaction[] WriteTran = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(Addr), I2CDevice.CreateWriteTransaction(TxBuff) };
I2CDevice.I2CTransaction[] ReadTran = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(Addr), I2CDevice.CreateReadTransaction(RxBuff) };
while (true)
{
int iWriteCount = I2C1.Execute(WriteTran, 1000);
//Debug.Print("Write Count: " + iWriteCount.ToString());
led.Write(true);
Thread.Sleep(200);
int iReadCount = I2C1.Execute(ReadTran, 1000);
if (iReadCount >= 2)
{
int iVal = RxBuff[1] * 256 + RxBuff[0];
double Temperature = ((iVal * 0.02) - 273.15) * 9.0/5.0 + 32.0;
Debug.Print("Temperature: " + Temperature.ToString() + " deg F");
}
led.Write(false);
Thread.Sleep(200);
}
}
}
}
Если мне нужно создать приложение, я хотел бы сделать это, но я мог бы реально использовать какое-то направление. Небольшой опыт здесь проделан долгий путь.