Próbuję stworzyć klienta telnet dla wp7 mango, abym mógł pograć w błoto na moim telefonie deweloperskim. Mam trudności ze znalezieniem przyzwoitej biblioteki emulacji terminala typu open source, która będzie działać dla Silverlight (mango jest mniej więcej odpowiednikiem stosu sl 4). Widzę zabawę, ale to zostało napisane dla wpf i sl, wydaje się, że nie ma tej kontroli układu przepływu, której używa do wyświetlania konsoli telnet. Jakieś sugestie? Jestem już w stanie połączyć się z serwerem telnet i uzyskać dwukierunkowy strumień, ale oczywiście dostaję głównie śmieci bez emulacji terminów.

Edycja: Skończyło się na zaimplementowaniu własnego kodu ucieczki ascii (w zasadzie podzbiór VT100, z nieobsługiwanymi opcjami analizowanymi, ale ignorowanymi) i silnikiem parsowania poleceń serwera telnet (nie było to tak trudne, jak myślałem), a także mój własny kod renderujący przy użyciu kontrolki RichTextBox, co było konieczne ze względu na ograniczenia silverlight na telefonie, których nie ma ani w silverlight dla przeglądarki, ani w WPF w systemie Windows.

0
Jeremy Bell 15 sierpień 2011, 16:14

3 odpowiedzi

Najlepsza odpowiedź

Skończyło się na zaimplementowaniu od podstaw własnego kodu emulacji terminala/negocjacji telnetu.

0
Jeremy Bell 28 wrzesień 2011, 23:23

Możesz spróbować skontaktować się ze Stefanem Olsonem, który zaimplementował przeglądarkę FlowDocument dla Silverlight (niestety nie miał jeszcze czasu, aby to wyczyścić i wydać kod): http://www.olsonsoft.com/blogs /stefanolson/post/Wprowadzenie-do-FlowDocument-for-Silverlight.aspx

1
toolsche 19 sierpień 2011, 15:55

Pytasz o projekt techniczny lub kompletny komponent? Jeśli chodzi o układ przepływu, wszystko, czego potrzebujesz, to reprezentowanie tekstu, więc StackPanel z TextBlockiem powinno działać dobrze.

TextBlock może obsługiwać wiele elementów Run, co w praktyce daje układ przepływu.

Tak czy inaczej, w przypadku telefonu powinieneś dostosować interfejs użytkownika do swoich potrzeb, zamiast oczekiwać, że komponent zrobi to za Ciebie. Gdyby był do tego składnik, najprawdopodobniej byłaby do niego aplikacja, a wtedy nie byłoby powodu, aby pisać do niego inną aplikację, prawda?-)

0
Claus Jørgensen 15 sierpień 2011, 16:18
Cóż, założyłem, że będzie to obejmować TextBlocks lub kontrolkę tekstu sformatowanego, ale potrzebuję implementacji emulacji terminala potrzebnej do działania. Tak więc, nie tylko umieszczając strumień w panelu stosu (już to robię), ale interpretując wszystkie (lub jakiś wystarczająco dobry podzbiór) kodów kontrolnych w standardzie telnet. Jako alternatywę, czy istnieje odniesienie do protokołu telnet/terminal, które ktoś poleciłby?
 – 
Jeremy Bell
15 sierpień 2011, 21:40
Ale powiedziałeś, że już znalazłeś taką bibliotekę. Dlaczego nie po prostu go przenieść?
 – 
Claus Jørgensen
15 sierpień 2011, 22:10
Amuse to aplikacja wpf, a jej implementacja jest specyficzna dla wpf na tyle sposobów, że port do Silverlight w telefonie jest praktycznie przepisany. Jeśli to najlepsza opcja, niech tak będzie. Pytanie dotyczyło jednak pytania, czy ktoś zna bibliotekę specyficzną dla Silverlight lub agnostyczną bibliotekę interfejsu użytkownika.
 – 
Jeremy Bell
16 sierpień 2011, 04:52
Nadal prosisz o aplikację, a nie bibliotekę. Biblioteka dla telnetu nie zawierałaby funkcjonalności interfejsu użytkownika. I znowu, z pewnością funkcjonalność telnet w Amuse nie jest połączona z interfejsem użytkownika? (jeśli tak, suka na autora za bycie gównianym koderem)
 – 
Claus Jørgensen
16 sierpień 2011, 10:27