HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0729
hkr棒読みちゃんのステータス取得3解決


hkr

リンク

2013/7/29(Mon) 21:19:27|NO.55966

過去ログ(http://goo.gl/3nbwsf)を基に棒読みちゃんとの連携を試しているのですが、
読み上げ文字列の送信は上手くできても、ステータスの取得(読み上げ状態、待ち行数等)
がうまくいかなくて困っています。

具体的にはPORT50001に対してSockmakeを掛けても、stat=3(Socketのバインドに失敗した)が
帰ってきて途方に暮れています。

どなたかうまく通信できてる方いらっしゃいますか?



この記事に返信する


(’’

リンク

2013/7/30(Tue) 09:34:32|NO.55970

棒読みちゃんの仕様書に

・GetTaskCount(残りタスク数の取得)
 送信データフォーマット
  [0-1] 16bit コマンド(0x0130)

 受信データフォーマット
  [0-3] 32bit 残りタスク数

とあるので0x0130を送ってすぐ受信すればいけるのかと思いましたがいけません・・・
どこが悪いのでしょう

#include "hspsock.as"
#define GetNowPlaying 0x0120 #define GetTaskCount 0x0130 port=50001 text="こんにちは。HSP。" speed = -1 ;標準の設定 tone = -1 ;標準の設定 volume = -1 ;標準の設定 voice = 0 ;0:棒読みちゃん画面上の設定、1:女性1、2:女性2、3:男性1、4:男性2、5:中性、6:ロボット、7:機械1、8:機械2、10001〜:SAPI5 だそう。 code = 2 ;0:UTF-8, 1:Unicode, 2:Shift-JIS len = strlen(text) ;文字数 sdim buf, 15 ;ってもHSPの仕様上64byte確保されるけど。 wpoke buf, 0, $0001 wpoke buf, 2, speed wpoke buf, 4, tone wpoke buf, 6, volume wpoke buf, 8, voice poke buf,10, code lpoke buf,11, len sockopen 0, "localhost", port sockputb buf, 0, 15, 0 sockput text, 0 ;情報の取得 wait 10 sdim mpost,2 mpost=GetTaskCount sdim mget,1 sockputb mpost,0,2, sockgetb mget,0,1,0 wait 10 mes mget sockclose



(’’

リンク

2013/7/30(Tue) 09:55:08|NO.55971

ポートを解放してなくて送ったバイナリが前の命令の続きになっちゃってるだけでした

修正版
#include "hspsock.as"
#define GetNowPlaying 0x0120 #define GetTaskCount 0x0130 port=50001 text="こんにちは。HSP。" speed = -1 ;標準の設定 tone = -1 ;標準の設定 volume = -1 ;標準の設定 voice = 0 ;0:棒読みちゃん画面上の設定、1:女性1、2:女性2、3:男性1、4:男性2、5:中性、6:ロボット、7:機械1、8:機械2、10001〜:SAPI5 だそう。 code = 2 ;0:UTF-8, 1:Unicode, 2:Shift-JIS len = strlen(text) ;文字数 sdim buf, 15 ;ってもHSPの仕様上64byte確保されるけど。 wpoke buf, 0, $0001 wpoke buf, 2, speed wpoke buf, 4, tone wpoke buf, 6, volume wpoke buf, 8, voice poke buf,10, code lpoke buf,11, len sdim null,64 sockopen 0, "localhost", port sockputb buf, 0, 15, 0 sockput text, 0 sockclose 0 ;情報の取得 wait 100 sdim mpost,2 wpoke mpost,0,GetNowPlaying sdim mget,1 sockopen 1, "localhost", port sockputb mpost,0,2,1 sockgetb mget,0,1,1 sockclose 1 wait 10 mes "読み上げ状態:"+peek(mget,0)

詳しい事は仕様書(棒読みちゃんフォルダ\SampleSrc\SampleSrc.txt)に書いてあります



hkr

リンク

2013/7/30(Tue) 13:43:01|NO.55976

ありがとうございます!

sockopenで開いたソケットにはputしか出来ないと勘違いしていて、
一旦閉じてsockmakeし直してsockgetしようとしてましたー。



ONION software Copyright 1997-2023(c) All rights reserved.