Write to HID with Chip Selection with .NET Console App












1















Hi I am writing a simple console app that needs to write bytes to MCP2210 USB to SPI Master
I found this library over here, seems to do good job with connecting the device and reading the metadata.



I am writing message to the board as below



 public static byte Talk()
{
var device = DeviceList.Local.GetHidDevices(1240, 222).FirstOrDefault();
if (device == null)
{
Console.WriteLine($"Could not find a device with Vendor Id:1240, Product Id:222 ");
return null;
}
var reportDescriptor = device.GetReportDescriptor();
foreach (var deviceItem in reportDescriptor.DeviceItems)
{
Console.WriteLine("Opening device for 20 seconds...");
if (!device.TryOpen(out var hidStream))
{
Console.WriteLine("Failed to open device.");
continue;
}

Console.WriteLine("Opened device.");
hidStream.ReadTimeout = Timeout.Infinite;
hidStream.Write(new byte[3] {60, 00, 00});
}


Not sure If I am writing it correctly.
While writing I need to do a chip selection as displayed in this other terminal
enter image description here



Any help is greatly appreciated



Here is the MC I am using https://www.microchip.com/wwwproducts/en/MCP2210










share|improve this question





























    1















    Hi I am writing a simple console app that needs to write bytes to MCP2210 USB to SPI Master
    I found this library over here, seems to do good job with connecting the device and reading the metadata.



    I am writing message to the board as below



     public static byte Talk()
    {
    var device = DeviceList.Local.GetHidDevices(1240, 222).FirstOrDefault();
    if (device == null)
    {
    Console.WriteLine($"Could not find a device with Vendor Id:1240, Product Id:222 ");
    return null;
    }
    var reportDescriptor = device.GetReportDescriptor();
    foreach (var deviceItem in reportDescriptor.DeviceItems)
    {
    Console.WriteLine("Opening device for 20 seconds...");
    if (!device.TryOpen(out var hidStream))
    {
    Console.WriteLine("Failed to open device.");
    continue;
    }

    Console.WriteLine("Opened device.");
    hidStream.ReadTimeout = Timeout.Infinite;
    hidStream.Write(new byte[3] {60, 00, 00});
    }


    Not sure If I am writing it correctly.
    While writing I need to do a chip selection as displayed in this other terminal
    enter image description here



    Any help is greatly appreciated



    Here is the MC I am using https://www.microchip.com/wwwproducts/en/MCP2210










    share|improve this question



























      1












      1








      1








      Hi I am writing a simple console app that needs to write bytes to MCP2210 USB to SPI Master
      I found this library over here, seems to do good job with connecting the device and reading the metadata.



      I am writing message to the board as below



       public static byte Talk()
      {
      var device = DeviceList.Local.GetHidDevices(1240, 222).FirstOrDefault();
      if (device == null)
      {
      Console.WriteLine($"Could not find a device with Vendor Id:1240, Product Id:222 ");
      return null;
      }
      var reportDescriptor = device.GetReportDescriptor();
      foreach (var deviceItem in reportDescriptor.DeviceItems)
      {
      Console.WriteLine("Opening device for 20 seconds...");
      if (!device.TryOpen(out var hidStream))
      {
      Console.WriteLine("Failed to open device.");
      continue;
      }

      Console.WriteLine("Opened device.");
      hidStream.ReadTimeout = Timeout.Infinite;
      hidStream.Write(new byte[3] {60, 00, 00});
      }


      Not sure If I am writing it correctly.
      While writing I need to do a chip selection as displayed in this other terminal
      enter image description here



      Any help is greatly appreciated



      Here is the MC I am using https://www.microchip.com/wwwproducts/en/MCP2210










      share|improve this question
















      Hi I am writing a simple console app that needs to write bytes to MCP2210 USB to SPI Master
      I found this library over here, seems to do good job with connecting the device and reading the metadata.



      I am writing message to the board as below



       public static byte Talk()
      {
      var device = DeviceList.Local.GetHidDevices(1240, 222).FirstOrDefault();
      if (device == null)
      {
      Console.WriteLine($"Could not find a device with Vendor Id:1240, Product Id:222 ");
      return null;
      }
      var reportDescriptor = device.GetReportDescriptor();
      foreach (var deviceItem in reportDescriptor.DeviceItems)
      {
      Console.WriteLine("Opening device for 20 seconds...");
      if (!device.TryOpen(out var hidStream))
      {
      Console.WriteLine("Failed to open device.");
      continue;
      }

      Console.WriteLine("Opened device.");
      hidStream.ReadTimeout = Timeout.Infinite;
      hidStream.Write(new byte[3] {60, 00, 00});
      }


      Not sure If I am writing it correctly.
      While writing I need to do a chip selection as displayed in this other terminal
      enter image description here



      Any help is greatly appreciated



      Here is the MC I am using https://www.microchip.com/wwwproducts/en/MCP2210







      hid usbserial human-interface






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 13 hours ago







      HaBo

















      asked 16 hours ago









      HaBoHaBo

      6,7162686167




      6,7162686167
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I do not see a closing of your stream. This may cause your data to not even being sent (at least not in time).



          Consider using blocks with streams.
          But with out parameters not possible.






          share|improve this answer
























          • that's not the issue. My question is how do I select chip for GPIOs

            – HaBo
            12 hours ago













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54250503%2fwrite-to-hid-with-chip-selection-with-net-console-app%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          I do not see a closing of your stream. This may cause your data to not even being sent (at least not in time).



          Consider using blocks with streams.
          But with out parameters not possible.






          share|improve this answer
























          • that's not the issue. My question is how do I select chip for GPIOs

            – HaBo
            12 hours ago


















          0














          I do not see a closing of your stream. This may cause your data to not even being sent (at least not in time).



          Consider using blocks with streams.
          But with out parameters not possible.






          share|improve this answer
























          • that's not the issue. My question is how do I select chip for GPIOs

            – HaBo
            12 hours ago
















          0












          0








          0







          I do not see a closing of your stream. This may cause your data to not even being sent (at least not in time).



          Consider using blocks with streams.
          But with out parameters not possible.






          share|improve this answer













          I do not see a closing of your stream. This may cause your data to not even being sent (at least not in time).



          Consider using blocks with streams.
          But with out parameters not possible.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 13 hours ago









          RobettoRobetto

          403312




          403312













          • that's not the issue. My question is how do I select chip for GPIOs

            – HaBo
            12 hours ago





















          • that's not the issue. My question is how do I select chip for GPIOs

            – HaBo
            12 hours ago



















          that's not the issue. My question is how do I select chip for GPIOs

          – HaBo
          12 hours ago







          that's not the issue. My question is how do I select chip for GPIOs

          – HaBo
          12 hours ago




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54250503%2fwrite-to-hid-with-chip-selection-with-net-console-app%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Liquibase includeAll doesn't find base path

          How to use setInterval in EJS file?

          Petrus Granier-Deferre